News for hackers. Stuff that matters.
Re:Android 8.0 Oreo, thoroughly reviewed by kuschku on Tuesday September 05, 2017 @07:58AM (#15174293)
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.
Re:Android 8.0 Oreo, thoroughly reviewed by kinlan on Tuesday September 05, 2017 @08:08AM (#15174353)
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.
Re:Android 8.0 Oreo, thoroughly reviewed by avaer on Tuesday September 05, 2017 @08:37AM (#15174504)
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."

Re:Android 8.0 Oreo, thoroughly reviewed by kinlan on Tuesday September 05, 2017 @09:30AM (#15174861)
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.

Re:Android 8.0 Oreo, thoroughly reviewed by Aaargh20318 on Tuesday September 05, 2017 @10:31AM (#15175550)
> 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.

Re:Android 8.0 Oreo, thoroughly reviewed by acoard on Tuesday September 05, 2017 @05:25PM (#15179254)
>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.

Re:Android 8.0 Oreo, thoroughly reviewed by gpderetta on Wednesday September 06, 2017 @05:08AM (#15182193)
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).

Re:Android 8.0 Oreo, thoroughly reviewed by Touche on Tuesday September 05, 2017 @10:50AM (#15175748)
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?
Re:Android 8.0 Oreo, thoroughly reviewed by pas on Tuesday September 05, 2017 @11:23AM (#15176101)
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.)

Re:Android 8.0 Oreo, thoroughly reviewed by Touche on Tuesday September 05, 2017 @12:32PM (#15176749)
Sounds like you are advocating for something very different than the current APIs. You're asking that the browser define its own UI for an exit button. How does it know where to put that? What if it is a game in a `<canvas>` element and the button overlays some important UI in the game?

I think you're overreacting to one bad-actor. Inevitably your suggestion here leads to good-actor pages having much less power to present good UI to its users. The browser has to think of all use-cases and have options for that, rather than defining lower-level hooks that pages can do what they want with.

Would it make you feel better that there already many other ways that pages can do user-hostile things? Have you ever visited a page that blocks right-click? Would you want to forbid Mouse Events because of this?

Re:Android 8.0 Oreo, thoroughly reviewed by pas on Thursday September 07, 2017 @07:46AM (#15190893)
I like the trust model that current browsers do. If I trust a page they can use the full viewport or screen, and a lot of keys, etc.

> You're asking that the browser define its own UI for an exit button.

Yes. Currently firefox puts a "to exit full screen press esc" OSD already on videos, that also interferes with visual presentation of sites/directors. So ... directors already don't put shit there.

The same thing goes for walled gardens (like Apple's - they don't allow some things), the problem is not that it's curated, the problem is that there are insufficient tools available for users to put their walls where they want.

Yes, by default I don't want to allow blocking right click. (You might be familiar with the saga of this bug https://bugzilla.mozilla.org/show_bug.cgi?id=78414 . )

Re:Android 8.0 Oreo, thoroughly reviewed by Aaargh20318 on Tuesday September 05, 2017 @03:17PM (#15178274)
> ave you ever visited a page that blocks right-click? Would you want to forbid Mouse Events because of this?

No, the left mouse button is for interaction with the webpage, the right mouse button is mine. Just don't send any events for the right mouse button.

Re:Android 8.0 Oreo, thoroughly reviewed by codefined on Tuesday September 05, 2017 @04:15PM (#15178740)
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.
Re:Android 8.0 Oreo, thoroughly reviewed by Aaargh20318 on Tuesday September 05, 2017 @03:15PM (#15178252)
There already is one as part of the video player component, at least on iOS, right next to the button that toggles full-screen.
Re:Android 8.0 Oreo, thoroughly reviewed by Touche on Tuesday September 05, 2017 @03:25PM (#15178345)
The fullscreen API is not just for video elements.
Re:Android 8.0 Oreo, thoroughly reviewed by Touche on Tuesday September 05, 2017 @10:48AM (#15175710)
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.
Re:Android 8.0 Oreo, thoroughly reviewed by kuschku on Tuesday September 05, 2017 @11:08AM (#15175946)
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...

Re:Android 8.0 Oreo, thoroughly reviewed by Touche on Tuesday September 05, 2017 @12:35PM (#15176788)
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.

Re:Android 8.0 Oreo, thoroughly reviewed by ariwilson on Tuesday September 05, 2017 @11:45AM (#15176326)
Do you have some legal references to this? Curious. The site also has the legal right to refuse to serve you content, of course.
Re:Android 8.0 Oreo, thoroughly reviewed by kuschku on Tuesday September 05, 2017 @02:24PM (#15177824)
ArsTechnica had a list of 6 of the recent court cases between AdBlock Plus and media corporations: https://arstechnica.com/tech-policy/2016/11/adblock-plus-win...

There’s been countless cases brought against ad blockers, and all that were about ad blocking, were decided favourable for the blockers.

Re:Android 8.0 Oreo, thoroughly reviewed by Touche on Tuesday September 05, 2017 @03:05PM (#15178174)
What does any of this have to do with YouTube blocking PIP?
Re:Android 8.0 Oreo, thoroughly reviewed by kuschku on Tuesday September 05, 2017 @03:58PM (#15178599)
Simple, it means that if the browser would decide to force YouTube into allowing PIP, that would be the browsers legal (and moral right).

Additionally, there’s a precedent that users want to be able to control what a site does, and are willing to take extra steps to achieve this, so a browser should implement such functionality ideally in the first place.

Re:Android 8.0 Oreo, thoroughly reviewed by Touche on Tuesday September 05, 2017 @04:02PM (#15178627)
There are already numerous examples where browsers intervene to stop user-hostile pages. The reason pop-up ads largely don't exist any more is because browsers intervened to kill them.
Re:Android 8.0 Oreo, thoroughly reviewed by kuschku on Tuesday September 05, 2017 @06:50PM (#15179742)
Exactly, and the same should happen here. Users should be able to force PiP.
Re:Android 8.0 Oreo, thoroughly reviewed by zeveb on Tuesday September 05, 2017 @03:48PM (#15178526)
> 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.

Re:Android 8.0 Oreo, thoroughly reviewed by awesomepeter on Wednesday September 06, 2017 @01:27PM (#15185456)
Well you do determine what is executed. Don't use chrome, don't open the website.
Re:Android 8.0 Oreo, thoroughly reviewed by kuschku on Tuesday September 05, 2017 @08:52AM (#15174605)
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.

Re:Android 8.0 Oreo, thoroughly reviewed by annnnd on Tuesday September 05, 2017 @09:06AM (#15174704)
I agree with you, but that is probably something that belongs to a plugin.
Re:Android 8.0 Oreo, thoroughly reviewed by kuschku on Tuesday September 05, 2017 @10:18AM (#15175404)
Which Chrome for Android does not support.
Re:Android 8.0 Oreo, thoroughly reviewed by AndrewDucker on Tuesday September 05, 2017 @11:34AM (#15176235)
Then use Firefox for Android.
Re:Android 8.0 Oreo, thoroughly reviewed by Mindwipe on Tuesday September 05, 2017 @08:39AM (#15174519)
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.
Re:Android 8.0 Oreo, thoroughly reviewed by izacus on Tuesday September 05, 2017 @08:44AM (#15174554)
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?
Re:Android 8.0 Oreo, thoroughly reviewed by dashundchen on Tuesday September 05, 2017 @10:51AM (#15175754)
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.

Re:Android 8.0 Oreo, thoroughly reviewed by sorenjan on Tuesday September 05, 2017 @11:55AM (#15176426)
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.
Re:Android 8.0 Oreo, thoroughly reviewed by noisem4ker on Tuesday September 05, 2017 @02:03PM (#15177622)
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...

Re:Android 8.0 Oreo, thoroughly reviewed by khc on Tuesday September 05, 2017 @12:47PM (#15176895)
Can't you already do that by using multiple tabs?
Re:Android 8.0 Oreo, thoroughly reviewed by Mindwipe on Tuesday September 05, 2017 @10:37AM (#15175607)
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?

Re:Android 8.0 Oreo, thoroughly reviewed by andrepd on Tuesday September 05, 2017 @09:09AM (#15174718)
Use Newpipe, now you can.
Re:Android 8.0 Oreo, thoroughly reviewed by arjie on Tuesday September 05, 2017 @08:52AM (#15174610)
If you're in the US, you can do that with Youtube Red.
Re:Android 8.0 Oreo, thoroughly reviewed by izacus on Tuesday September 05, 2017 @12:56PM (#15176985)
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.
Re:Android 8.0 Oreo, thoroughly reviewed by noisem4ker on Tuesday September 05, 2017 @02:39PM (#15177972)
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.
Re:Android 8.0 Oreo, thoroughly reviewed by nol13 on Tuesday September 05, 2017 @05:44PM (#15179374)
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?
Re:Android 8.0 Oreo, thoroughly reviewed by noisem4ker on Tuesday September 05, 2017 @06:26PM (#15179599)
Good question. As they normally serve their content as separate audio and video streams, it should be perfectly feasible to do that. I wouldn't bet on it, however.
Re:Android 8.0 Oreo, thoroughly reviewed by arjie on Wednesday September 06, 2017 @06:43PM (#15187736)
I believe if you use the Youtube Music app to play things, you'll get audio only.
Re:Android 8.0 Oreo, thoroughly reviewed by avaer on Tuesday September 05, 2017 @09:03AM (#15174675)
Amusingly, this does answer the parent question.
Re:Android 8.0 Oreo, thoroughly reviewed by kuschku on Tuesday September 05, 2017 @08:53AM (#15174616)
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.

Re:Android 8.0 Oreo, thoroughly reviewed by noisem4ker on Tuesday September 05, 2017 @02:20PM (#15177786)
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

Re:Android 8.0 Oreo, thoroughly reviewed by apostacy on Tuesday September 05, 2017 @08:42PM (#15180269)
Thank you for sharing this. These are exactly the types of pain points where Mozilla could distinguish itself.
Re:Android 8.0 Oreo, thoroughly reviewed by fixermark on Tuesday September 05, 2017 @10:10AM (#15175321)
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.

Re:Android 8.0 Oreo, thoroughly reviewed by kuschku on Tuesday September 05, 2017 @10:18AM (#15175398)
Chrome for Android does not support extensions.