Hacker News new | ask | show | jobs
by kuschku 3213 days ago
Then Chrome should have an option to stop the resize handler from firing when entering PiP mode. The user should always have the right to override what the website is doing.
3 comments

So you would like us to not tell the page what the render is doing? I'm not sure how that would play out for any number of API's that exist on the web. Developer's have consistently had the means to override the default actions of the browser (think drag and drop) but I don't think hiding side-effects or user actions helps anyone.
I'd like to be able to tell my browser what it should tell the pages it's loading, especially if pages are leveraging it to do things against my will.

That applies to blocking Google ads, as well as fixing Youtube malfeatures.

Of course, it's understandable you won't see this from a browser paid for by Google. But you can't paint in broad brush strokes like "I don't think hiding side-effects or user actions helps anyone."

I'm disputing the fact there was a casual offhand design, and I don't think hiding the state of the render or the browser helps anyone not least developers who need the information about the state of their page.

I'm not saying that there can't be meaningful response from the browser to user hostile actions, I don't think anyone disagrees.

There's a broader question about a user's will and the sites intent especially when it comes to business plans of the site that I'm not sure if access to features native in the browser is aligned with say ad blocking or tracking etc... I don't know.

> There's a broader question about a user's will and the sites intent especially when it comes to business plans of the site

The site's business plans are not my problem. Basically, my phone and my computer should do what I want. Why is there even an API to make a video player enter/exit full-screen mode ? That's 100% a user decision and there is no valid reason why that should ever be exposed to JS.

>Why is there even an API to make a video player enter/exit full-screen mode ? That's 100% a user decision and there is no valid reason why that should ever be exposed to JS.

There absolutely are valid reasons and responsible uses for the browser to expose that API. Instead the argument should be around the irresponsible uses justifying hiding that part of the API.

Valid reasons to expose full-screen to the API:

* An "Always full-screen videos when I play them" button. * Remote control of demo displays, kiosks, etc. Force them to all fullscreen and play a video synced up. * Disable unnecessary features when website is full screen (e.g. stop polling website for changes) * Exit full-screen on certain conditions. For example on a shared streaming site like Rabb.it, maybe if someone joins your chat room (assume this is configurable by the user)

In short, you can use JS to respectfully enact user decisions.

I'll also mention a related case. On Safari iOS, you can't autoplay a <video> element unless the user has interacted with it via tapping it. The goal, obviously, is to stop autoplaying videos. The goal, of stopping annoying autoplaying videos, is noble, but at the cost of removing the possibility of responsible usage. Maybe it's worth it, maybe it's not, but there is an undeniable tradeoff.

There is a long history of browsers disabling or crippling features because they get abused by web pages. In fact is is almost a rule that if a feature can be abused, it will be abused.

A possible solution is having a "responsible app mode" in browsers. Whitelisted webpages have full access to these privileged APIs which would otherwise be stubbed out and non-functional (hopefully in a way that a webpage can't detect).

What if I want to present an X button that the user can click to exit fullscreen? How would I do that without a programmable API?
That should be a browser option. (Show exit full-screen button or not.)

Also, especially for video, the browser should be able to play it full screen without any distractions.

Of course, there are optional enhancements (subtitles, or different audio tracks) driven via JS. And for those the controls have to go somewhere.

Ideally, if there were a standard for those, the browser could handle it. (But then we're at the problem of an ever bloating browser.)

Why not just restrict it to user-initiated events that can exit or enter full screen? Similar to how you have to press a button to enter full screen mode. It seems to make sense to do the same thing to exit, or other various actions.
There already is one as part of the video player component, at least on iOS, right next to the button that toggles full-screen.
Thank you for staying level-headed here. This is indeed a gray area question, and it's worth having a debate over. No one is clearly in the right.
Well, the legal answer clearly places one side in the right (the user has the right to modify websites that are shown on their system however they wish to, and the right to circumvent all measures on that site, as in the countless ABP vs. ... cases has been ruled).

The historical answer does the same, as browsers were explicitly designated User Agents, as their whole purpose is to act in the name of the user, and fulfill whatever the user wishes to, which also clearly places the will of the user over everything a website may wish to.

How you interpret this is obviously left to you...

This is not a legal discussion, no one is saying that the user doesn't have a right to block this behavior.

> The historical answer does the same, as browsers were explicitly designated User Agents, as their whole purpose is to act in the name of the user, and fulfill whatever the user wishes to, which also clearly places the will of the user over everything a website may wish to.

The browser is a User Agent, I agree. This doesn't mean they can predict all user hostile behavior and fix it before it ever happens. Browsers often fix bad behaving websites over time. Recently there's been a lot of effort to fix pages that cause scrolling jank when they load ads in the background.

Do you have some legal references to this? Curious. The site also has the legal right to refuse to serve you content, of course.
> I don't think hiding the state of the render or the browser helps anyone not least developers who need the information about the state of their page.

I don't care about helping developers who want to hinder my usage of my browser on my hardware. It's my CPU they are executing on, and thus it should be I & I alone who determines what is executed.

Well you do determine what is executed. Don't use chrome, don't open the website.
Actually, yes. I want that the user is able to force a page to do whatever the user wants, if they choose to do so.

Just like my browser blocks popups, and my browser blocks those sites that try to prevent right-click, and my browser blocks those sites that spawn dialogs when you try to leave them, Just in the same way I want my browser to force websites to allow PiP.

I agree with you, but that is probably something that belongs to a plugin.
Which Chrome for Android does not support.
Then use Firefox for Android.
That would be an excellent way to force Google to switch distribution of all content via YouTube to HTML5 EME with Widevine DRM, given it's pretty clear their music agreements prohibit permitting this.
Most of YouTube content isn't music though. Why are they so user hostile - e.g. why can't I listen to talks/podcasters in the background while browsing the internet?
Try Firefox for Android - it allows background nedia streaming, and even puts controls in the notification drawer. It also allows adblocking, extensions, has the amazing reader mode which makes the most unusable websites readable again.

The current version 55 is a little slower than Chrome on my 3 year old phone, but performance in the past few major versions has definitely improved. The nighty developer build of Firefox 57 absolutely flies.

Mozilla is doing an amazing job with their Firefox modernization, it's a shame how little attention it gets on Android.

Another reason to use Firefox is to resist the monoculture of just one dominating browser, that's also made by the same company that makes the most common mobile OS and a lot of dominating web services, like Youtube. Allo for the web still only works in Chrome, because Google know they can get away with it.
Nice suggestion, but note that, since Google started abusing the page visibility API for their scummy ends, using Firefox is not enough by itself in order to play YouTube media in background. To restore its ability to do so, you also need this add-on:

Video Background Play Fix https://addons.mozilla.org/en-US/firefox/addon/video-backgro...

Can't you already do that by using multiple tabs?
I'm not sure that's actually true in practice.

I think a better question is why would a talk/podcaster be using YouTube for distribution?

Use Newpipe, now you can.
If you're in the US, you can do that with Youtube Red.
But I'm not, so I'm not allowed to. I wouldn't have a problem with it if I could - paying for ad-free YouTube with added features seems like a fair deal to me.
I wouldn't call "letting me turn off the screen or switch to another application while still consuming media" an "additional feature". Especially since they must go out of their way in the first place to detect when that is happening and to prevent me from doing so, as they do on their mobile website.
Curious to know if with youtube red, if i play in the background is it smart enough to switch to an audio only stream, or still full bandwidth?
Amusingly, this does answer the parent question.
That’s their problem. A browser should always give a user the upper hand.

Browser block popups, forcefully enable right-click on sites that disable it, browsers allow users to forcefully enable zoom, or background playback.

And just like that, browsers should also allow users to forcefully enable PiP.

In a similar fashion, Firefox for Android should prevent YouTube from pausing when it detects it has lost focus, as that's clearly an abuse of power with the shameless intent to inhibit non-Chrome browser functionality. See my other comment a little up the tree.

Too bad Mozilla won't ever dare to defend themselves from Google's bullying and will happily accept having background playback on YouTube, until now one of the primary motives for people to try Fennec out, being taken away.

https://bugzilla.mozilla.org/show_bug.cgi?id=1355407

RESOLVED WONTFIX

Thank you for sharing this. These are exactly the types of pain points where Mozilla could distinguish itself.
Is that something that can be done with a Chrome extension?

If not, then since Chromium is open-source, I imagine you could hack it in to a personal copy.

Chrome for Android does not support extensions.