New issue
Advanced search Search tips

Issue 880842 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Sep 5
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Autoplay policy is not working as documented, not reliable and not easy to understand

Reported by jakub.g....@gmail.com, Sep 5

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36

Steps to reproduce the problem:
[Perhaps this should be split into several tickets]

component:Blink>Media>Autoplay 

Autoplay policy is not working as documented, not reliable and not easy to understand

Description:
-----------

Maybe I'm reading something wrong, but AFAIU, according to the documents below, autoplay with audio should be disabled by default on Chrome 66+, until the user interacts with a given domain. This does not seem to be the case. Moreover the behavior is not always 100% deterministic. (Follow the test scenarios below).

https://www.chromium.org/audio-video/autoplay
https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
https://docs.google.com/document/d/1EH7qZatVnTXsBGvQc_53R97Z0xqm6zRblKg3eVmNp30/edit#

Also:
- It's not clear if incognito sessions use the same IME index as regular sessions, or not. Probably this should be documented in the first two URLs.
- In some of the tests I did previously it seemed that opening devtools was affecting the ability to autoplay or not (with devtools on I had a higher success ratio), but maybe it was linked to something else.

Environment:
-----------

Windows 10
Version 69.0.3497.81 (Official Build) (64-bit)
Version 71.0.3543.0 (Official Build) canary (64-bit)
(Same behavior on both)
Output from chrome://version/ - see at the end of the ticket

Steps to reproduce:
-----------

0. Clear all history: Ctrl+Shift+Del > Advanced > All time > check "Browsing history"
1. Make sure there's no media engagement entry for any domain, and that strict autoplay policy is enabled.

=====================================================================
chrome://media-engagement/

Media Engagement
Setting Name  Setting Value
Min Sessions  20
Lower Threshold 0.2
Upper Threshold 0.3
Record MEI data Enabled
Bypass autoplay based on MEI  Enabled
Preload MEI data  Enabled
Autoplay Policy document-user-activation-required
Preload version 1.0.3.0

Origin  Sessions  Sessions with playback  Audible Playbacks*  Significant Playbacks*  Last Playback Is High Is High Changes Score
* These columns are experimental and do not currently affect the MEI score.
=====================================================================

2. Open new tab and load https://www.youtube.com/watch?v=9bZkp7q19f0&t=90
Result: Autoplay succeeded, with audio (not expected)
3. Open new tab and load https://videojs.github.io/autoplay-tests/plain/attr/autoplay.html and wait a few seconds
4. Autoplay failed (expected).
5. Click F5, wait a few seconds, repeat 10 times
Result: Autoplay succeeded 10 times (not expected)
6 .Click CTRL-R, wait a few seconds, repeat 10 times.
Result: Autoplay succeeded 5 times and failed 5 times (totally unexpected)
7. Open new tab and load https://videojs.github.io/autoplay-tests/plain/attr/autoplay.html and wait a few seconds. Repeat 10 times.
Result: Autoplay failed 10 times.

Output from chrome://version/

Chrome 69

c134752e-95b424ac
d01ab0d3-ca7d8d80
3e006338-f23d1dea
1a0d11d4-2f9febdf
ebeb14fc-3f4a17df
b7e2524c-beca8d39
a6674cf-3fcacf88
b1681d28-803f8fc4
cc20827f-ca7d8d80
8fe39baa-3f4a17df
38eb801c-3f4a17df
c27fec31-2d5b6ed9
7c1bc906-f55a7974
47e5d3db-3d47f4f4
125b7f68-a3dbe669
d442dfb7-41afa35c
9ca1387e-3f4a17df
41e765a5-f23d1dea
1149accc-f23d1dea
4dc30737-b8a5ea08
a582a1b8-ad75ce17
8ee5ed19-ff871d28
74658432-ca7d8d80
3042ad4b-ca54bb47
e56c5101-ad2fa222
44827ee5-3f4a17df
88a387d2-feba5af7
5e3a236d-59e286d0
345b5b61-f23d1dea
edbcf7c5-ddf1844d
5485fc4d-ca7d8d80
de47491b-33c3eba5
93731dca-3d47f4f4
9b4c4257-592e7888
9e5c75f1-edd79b4d
6872f671-991e1e1
2594bdf4-f1cfee3a
2b86fd96-3f4a17df
45df16ca-ca7d8d80
f79cb77b-3f4a17df
4ea303a6-ecbb250e
6e6e0c7e-f23d1dea
d92562a9-cfe3c2ea
7aa46da5-c946b150
4da5ae82-3f4a17df
6973a1cf-3f4a17df
cc54eb06-f23d1dea
58a025e3-36e97b2c
ad6d27cc-15e2aa9a
df072bba-9a6c5085
ff29b1bd-54dd8886
4bc337ce-69465896
9a2f4e5b-ca7d8d80
17507c76-3d47f4f4
494d8760-52325d43
3ac60855-486e2a9c
f296190c-e00d173c
4442aae2-a90023b1
ed1d377-e1cc0f14
12e17bc5-e1cc0f14
75f0f0a0-d7f6b13c
e2b18481-a90023b1
e7e71889-e1cc0f14
5e60f31d-1410f10
3a4029d-ca7d8d80
94e68624-1410f10
cc73f8a1-a3a14831
10a311eb-f23d1dea
8834fcca-f23d1dea

Chrome 71

2c707b42-a772a0e8
411b6d4e-f23d1dea
fe69e053-f23d1dea
9d7f502c-46eeaf2f
d01ab0d3-fd932296
3e006338-3f4a17df
16e0dd70-3f4a17df
66df3e9d-112b0163
ebeb14fc-3f4a17df
b7e2524c-f23d1dea
a6674cf-10e61f62
a07e695a-3f4a17df
da89714-530a9b9c
64da5c1e-ca7d8d80
61832c80-f23d1dea
cc20827f-ca7d8d80
9041608a-f23d1dea
5852bcb0-f23d1dea
8502ae4f-6b5e5ddf
6025934e-3f4a17df
c27fec31-2d5b6ed9
7c1bc906-b5809d46
9def365c-f23d1dea
125b7f68-a3dbe669
d442dfb7-41afa35c
9ca1387e-f23d1dea
41e765a5-f23d1dea
1149accc-3f4a17df
ab3d6cfd-3f4a17df
34d450b1-4d77dcf
15d89564-80f9a33e
f75ce29e-f23d1dea
a582a1b8-ad75ce17
495970ba-81bf28f3
3042ad4b-f23d1dea
31e1328a-27212adc
e56c5101-ad2fa222
249dd49a-1410f10
44827ee5-3f4a17df
88a387d2-3d47f4f4
345b5b61-3f4a17df
edbcf7c5-2d3ce014
5485fc4d-3f4a17df
de47491b-33c3eba5
93731dca-3d47f4f4
e111fcd-3f4a17df
9b4c4257-6ad6e56e
43f62d3b-cf4f6ead
c992f345-ca7d8d80
9e5c75f1-b707807e
6872f671-991e1e1
2594bdf4-f1cfee3a
6fa07eb4-ca7d8d80
4934552d-3f4a17df
7a5ba892-f23d1dea
d1cd70a5-ca7d8d80
4ea303a6-da9d8333
6e6e0c7e-3f17a7d8
95876445-ca7d8d80
d92562a9-cfe3c2ea
7aa46da5-c946b150
dc5b1f29-dc5b1f29
58a025e3-36e97b2c
ad6d27cc-c6d02f41
df072bba-9a6c5085
ff29b1bd-bec021b5
8576baf1-f23d1dea
f3ea30a0-ca7d8d80
51b9b54d-f23d1dea
7345ea6-3f4a17df
344833e9-1525b35b
3f273a97-e3ad1896
4bc337ce-a1f4f53d
9a2f4e5b-ca7d8d80
494d8760-52325d43
3ac60855-486e2a9c
f296190c-e41722ab
4442aae2-4ad60575
ed1d377-e1cc0f14
12e17bc5-e1cc0f14
75f0f0a0-6bdfffe7
e2b18481-92bb99a9
e7e71889-4ad60575
5e60f31d-803f8fc4
6e3b857e-b94298be
6a51bb09-ca7d8d80
e4eef83b-3384fa37
94e68624-3f4a17df
cc73f8a1-a3a14831
b4e8892d-f23d1dea
10a311eb-cf4f6ead
8834fcca-f23d1dea
b94fb7ef-3f4a17df

What is the expected behavior?
Autoplay with audio should have always been blocked on a first interaction with a domain, with empty browsing history

What went wrong?
It's not clear when and why autoplay with audio can happen and when it can't. The behavior seems buggy and not deterministic.

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 69.0.3497.81  Channel: stable
OS Version: 10.0
Flash Version:
 
Update, after reading some comments from here https://bugs.chromium.org/p/chromium/issues/detail?id=853333#c6 :

A. https://www.chromium.org/audio-video/autoplay
> Will autoplay work if a user leaves my site after watching video and returns later in a browsing session. Assuming the MEI threshold hasn't been met, autoplay will not work in that context. The user interaction requirement only applies to contiguous navigations. 

This explains why opening new tabs prevents autoplay in step 7. But it doesn't explain the random behavior of CTRL-R, nor why F5 is always triggering autoplay, even below IME threshold.

B. https://www.chromium.org/audio-video/autoplay
> Can my site be exempted from the policy? Unfortunately, Chrome cannot provide any whitelist exceptions to the autoplay policy.

https://www.blog.google/products/chrome/improving-autoplay-chrome/

> Chrome does this by learning your preferences. If you don’t have browsing history, Chrome allows autoplay for over 1,000 sites where we see that the highest percentage of visitors play media with sound. As you browse the web, that list changes as Chrome learns and enables autoplay on sites where you play media with sound during most of your visits, and disables it on sites where you don’t. This way, Chrome gives you a personalized, predictable browsing experience.

Those things are contradicting, I believe https://www.chromium.org/audio-video/autoplay and https://developers.google.com/web/updates/2017/09/autoplay-policy-changes should be updated to accommodate this info.

Also, where can this list be found?

Regards
Jakub
Disregarding that youtube issue (this is a known whitelisted site among like 100 or 1000 others), it certainly looks like a bug in Chrome's heuristics because even if I completely watch that videojs test video (46 seconds is longer than the required minimum of 7 seconds as stated in the documentation) and Chrome adds videojs domain in chrome://media-engagement, it still won't autoplay for me on the next refreshes of the page not even once. Funnily, it always autoplays after reopening a closed tab - even if it's my first time opening that page in a fresh user profile and I didn't interact with the page yet.
Cc: mlamouri@chromium.org
Components: -Blink>Media Blink>Media>Autoplay
Status: WontFix (was: Unconfirmed)
Depending on your platform and timing, refreshing with keyboard shortcuts will send a keyboard event to the page and therefore "activate" it.

Devtools allowing autoplay is a bug that is now fixed. I am not sure if it is in 69 or 70.

Those are the two bug reports I've seen parsing your messages. Please let me know if I missed something.
Re #2: I think (AFAIU) that you need to have more than 20 sessions (as stated on top of chrome://media-engagement) with a given page for Chrome to start taking the MEI score into account, and below this threshold for a given domain, Chrome uses the info from the "top 1000 domains" list. (Someone please correct me if I'm wrong).
Re #3 Thanks Mounir for quick response.

The remaining questions I have:
- It's not clear if incognito sessions use the same IME index as regular sessions? What is the behavior in incognito mode? I believe this should be better documented.
- Where can the "top domains" list be found? Is it static or updated every day?
- It's not clear if incognito sessions use the same IME index as regular sessions? What is the behavior in incognito mode? I believe this should be better documented.

MEI is "copied" from the main session when going in incognito and is then forked. A long live incognito session will have a different MEI from the main profile but otherwise will be the same.

- Where can the "top domains" list be found? Is it static or updated every day?

The list isn't public as it's meant to be updated regularly (but not daily).
Great, thanks for the responses.
mlamouri@ what about the funny case I've described above? In a new empty profile open that videojs page, immediately close it via keyboard (Ctrl-W), immediately reopen it via keyboard (Ctrl-Shift-T) - and the video starts autoplaying. Even if for some arcane reason Chrome considers closing of a page an interaction, the other criteria weren't met AFAICT so do we have a bug there?

Sign in to add a comment