Autoplay policy is not working as documented, not reliable and not easy to understand
Reported by
jakub.g....@gmail.com,
Sep 5
|
||
Issue descriptionUserAgent: 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:
,
Sep 5
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.
,
Sep 5
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.
,
Sep 5
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).
,
Sep 5
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?
,
Sep 5
- 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).
,
Sep 5
Great, thanks for the responses.
,
Sep 5
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 |
||
Comment 1 by jakub.g....@gmail.com
, Sep 5