[HN Gopher] Show HN: A browser extension to use picture-in-pictu...
___________________________________________________________________
Show HN: A browser extension to use picture-in-picture with any
website
Author : ba32107
Score : 33 points
Date : 2021-02-20 17:55 UTC (5 hours ago)
(HTM) web link (www.tabfloater.io)
(TXT) w3m dump (www.tabfloater.io)
| forgotmypw17 wrote:
| I use a browser which allows me to override "fullscreen" mode to
| only go full-screen within the browser window, but not actually
| expand to the full screen. After that, it's just a matter of
| setting it "always on top", which the window manager makes easy.
| However, for videos I actually want to watch, I prefer to just
| download them and watch in mpv.
| raw_code69 wrote:
| How confident are you that this solution does not impose any
| security/privacy implications ?
| ba32107 wrote:
| Depends on what you mean. If we are talking about whether or
| not TabFloater itself can be trusted, then I'm 100% confident
| since I wrote it :) It's fully open source, the companion
| binaries are built through GitHub Actions, so I have no chance
| of introducing malicious code. The Chrome extension is also
| published through GitHub Actions. All this means that you can
| be sure you're running the same code that you read on GitHub.
| Publishing the Firefox addon is manual at the moment (they
| don't offer a great API for automated publishing), but Firefox
| requires me to submit source code alongside the extension, and
| they review it.
|
| If you meant an unintentional security issue, then I think we
| are still good. The only thing the extension communicates to
| the native application is the title of the current browser tab,
| which is arguably personal information. However the native
| application is running on your machine, and you chose to
| install it. There's no way for remote machines to get your info
| this way. The only scenario I can see for leaking private info
| is if someone creates a malware that mimics TabFloater
| Companion and somehow manages to get it on your machine without
| you knowing. Then, they will get the titles of the sites you
| use TabFloater on. There are so many better ways for attackers
| to get the same information - I think this risk is negligible.
|
| Of course, if you see any other issue that I might have missed,
| do let me know!
|
| Also have a look at the privacy policy if you haven't already:
| https://www.tabfloater.io/privacy
| ba32107 wrote:
| Hello everybody! I created a browser extension called TabFloater,
| which can replicate the picture-in-picture functionality with any
| website. It moves a chosen tab into a smaller window, which is
| going to remain always on top, so you can interact with both
| websites at the same time.
|
| This is my very first post on HN. I have been working on this pet
| project for a bit over a year now. The motivation for it was
| simple: because I use my browser in a single, fully maximized
| window, many times I found myself switching back and forth
| between two tabs, for example to copy something from one website
| and use it on another. I know there are many extensions that can
| rearrange tabs for you, but I wanted something a little bit
| different. I really liked how picture-in-picture works for videos
| - I wanted to do the same!
|
| Easy enough, I thought. I just need to create a new browser
| window, move the given tab into it, then... I just need to make
| it always on top. Right? Well, turns out, the browser API doesn't
| allow you to do that. So after a lot of trial end error, I came
| up with a way to achieve it: I implemented a small app in C++
| that can manipulate the browser window and set the always-on-top
| property. Then "all I needed" was to hook it up with the browser
| extension and voila.
|
| I also implemented a feature I call "Smart positioning": if you
| enable it, the extension will analyze the DOM structure of a
| given site and tries to identify the largest empty area and puts
| the floating tab there. This way, it doesn't cover up any text,
| pictures or videos. It more or less works :)
|
| Sounds pretty simple, but I spent a LOT of time trying out
| different things. I use Linux, so naturally I implemented it for
| that platform first, but I knew it would never be useful for
| other people if there wasn't a Windows version as well - so I did
| that too. I worked on this project on evenings and weekends, and
| I learned a lot. This was my first proper pet project and I'm
| really glad I was able to see it through!
|
| The extension is available for Chrome and Firefox, and you can
| use it on Windows and most Linux distros. The native application
| doesn't have an OS/X version - sorry :) I don't own a Mac and I
| don't know anything about the Apple ecosystem. I'm looking for
| help in that department, if you're interested! :)
|
| Reminder: in addition to the browser extension, you must also
| install the native application (called Companion).
|
| Site: https://www.tabfloater.io/
|
| GitHub: https://github.com/tabfloater/tabfloater
|
| Chrome Web Store:
| https://chrome.google.com/webstore/detail/iojgbjjdoanmhcmmih...
|
| Firefox Addon: https://addons.mozilla.org/en-
| US/firefox/addon/tabfloater/
|
| Thanks!
| userbinator wrote:
| As someone who has used http://www.vanmiddlesworth.org/vitrite/
| to toggle always-on-top and transparency for a _long_ time, it
| is strange to see this -- browser-specific -- reinvention of
| basic window management.
|
| On the other hand, my desktop is 2560 pixels wide, and as a
| result, I've never had the need nor desire to maximise
| anything. I also rarely use multiple tabs, preferring separate
| windows instead, which I can then arrange as I please. I wonder
| if the popularisation of tabbed browsing has decreased the
| desire/visibility of comparing/contrasting in general, since as
| you mentioned, it is much more difficult when you can only see
| one site at a time.
| ba32107 wrote:
| I have the same resolution size :) I agree that the
| usefulness of this app depends on how you use your browser. I
| do the exact opposite of you, at any time I have at least
| 20-30 tabs open and I regularly switch back and forth.
|
| I prefer to think of TabFloater as not an app that
| creates/moves/manipulates extra browser windows (even though
| that is what actually happens), but an app that adds an extra
| browser functionality (picture-in-picture). In this sense, I
| think it makes sense that it brings its own "always-on-
| topness".
|
| I'm also aware that this app solves a pretty niche use-case -
| but it was fun developing it and I learned a lot!
| scottfr wrote:
| Interestingly Chrome use to support always on top windows in
| extensions. They eventually got removed
|
| There is a very interesting comment from one of the developers
| on the removal bug
| (https://bugs.chromium.org/p/chromium/issues/detail?id=467808):
|
| > While closing this issue as "Fixed", I feel I need to offer a
| couple of words of personal explanation to the users of Trello
| who were directed here by the developer of the app, as well as
| others who can be interested.
|
| > I'm the original developer of Panels in Chrome, and I'm the
| engineer who's lead a team to maintain them. I also finally
| removed them. Panels were a part of my life in form of time,
| thoughts, inspiration and passion. Our initial plans were to
| enable panels to all apps which wanted to use them, and we saw
| how those can be useful of course. It is with sadness but also
| with appreciation of the experience that I had to remove the
| feature from Chrome M54.
|
| > The time passes and things change, we all learn. In case of
| Panels, we "proved" by practice that it takes a team of a few
| engineers full time to be able to catch up with teams of OS
| developers in Windows, OSX, Linux and even our own ChromeOS.
| The window management and graphics/input subsystems are
| constantly evolving and it is more or less prohibitively
| expensive for a small team to try to build and keep a high
| quality but non-standard window management mode. OSes have too
| many mechanisms that are linked to a specific windows behaviors
| (focus, window switching, active windows treatment, titlebars,
| where input goes, shortcuts, animations, multiple desktops,
| other OS gadgets etc), and usually OSes do not provide 'hooks'
| or APIs to integrate with those, which makes it necessary to
| 'reverse-engineer' and hack around. While it can be done, it
| quickly leads to 'card house' design that falls down even
| easier with the next major OS update... So the costs of
| development and testing rise.
|
| > There was another factor that kept us from enabling panels
| for all apps. The specific UI Panels provide does not scale
| well if/when multiple apps are using it. It is very easy to get
| in trouble with multiple always-on-top windows popping up from
| multiple apps. Several independent apps using panels at the
| same time actually makes the interface annoying and hard to
| control. We had several apps using Panels at the same time and
| it was hard to manage windows because they were all intermixed.
| There were several design ideas on how to build some 'panel
| managers' and corresponding APIs but they increased the
| complexity significantly, especially considering those would be
| in addition to APIs OS provides for other windows. So we never
| were able to enable it for every app.
|
| > Now, if the major OSes would adopt the concept and built into
| their window managers, it'd be much much easier to support it
| in Chrome. But it's not the case, except for ChromeOS where
| panels stay.
|
| > So at the end, this was a great experiment. We are now way
| past the point where additional discussion can move the needle
| much. Google Hangouts app had millions of users and some of
| them loved Panels. Apparently Plus for Trello has passionate
| followers. The YouTube viewers is a neat idea. But we all need
| to move forward, the platforms change much faster and generally
| to the better :) Hope developers of your favorite apps will
| figure out even better ways to implement great UI their users
| demand!
| ba32107 wrote:
| Indeed, I did not found this particular thread, but I have
| come across the fact that it was supported in the past. I
| guess my solution will also be a bit fragile, but so far, it
| works :)
|
| I was also contemplating removing the borders and title bar
| of the floating window, so that it would much more like a
| panel, but on Windows, Chrome actually draws its own title
| bar, so you cannot remove it using the Windows API.
| difosfor wrote:
| Was also disappointed to find that browser picture in picture
| support was limited to a video element. Wish I could just use it
| on any element, like with fullscreen.
|
| I can imagine some complexity as explained. But for example it
| seems reasonable to me to limit browser panel/PiP support to a
| single element at a time like it is now for video to avoid some
| of that.
|
| This looks interesting!
___________________________________________________________________
(page generated 2021-02-20 23:01 UTC)