^
Why are we doing this? Will not iframes start decoding and producing the sound programmatically?
How could an iframe produce a sound programmatically? The idea is that it shouldn't be possible without a user gesture.
Actually we have already applied the same restriction to WebAudio, so a cross-origin iframe is not able to play sound programmatically without a user gesture.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/df72ed087b3083bdea9b882bf473f8a9f4dc1276 commit df72ed087b3083bdea9b882bf473f8a9f4dc1276 Author: zqzhang <zqzhang@chromium.org> Date: Thu Dec 08 16:07:55 2016 Adding an experimental flag to block autoplay with sound in cross-origin iframes This CL adds an experimental flag to block autoplay with sound in cross-origin iframes on Desktop. The experimental flag is disabled by default, and will override the "MediaPlaybaRequiresUserGesture" flag. Currently, the default behavior is unchanged, and a follow-up CL will collect metrics pretending the flag is on. Design doc: https://docs.google.com/a/google.com/document/d/1g05pahL0py0TSWIDwli1MLJiRuuJoleitl572DGGESs/edit?usp=sharing BUG= 665456 Review-Url: https://codereview.chromium.org/2496593002 Cr-Commit-Position: refs/heads/master@{#437254} [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/chrome/app/generated_resources.grd [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/chrome/browser/about_flags.cc [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/content/browser/renderer_host/render_view_host_impl.cc [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/content/child/runtime_features.cc [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/content/public/common/common_param_traits_macros.h [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/content/public/common/content_features.cc [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/content/public/common/content_features.h [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/content/public/common/web_preferences.cc [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/content/public/common/web_preferences.h [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/content/renderer/render_view_impl.cc [add] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/third_party/WebKit/LayoutTests/http/tests/media/autoplay-crossorigin.html [add] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/third_party/WebKit/LayoutTests/http/tests/media/resources/autoplay-crossorigin-iframe.html [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/third_party/WebKit/Source/core/frame/Settings.in [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/third_party/WebKit/Source/web/WebSettingsImpl.cpp [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/third_party/WebKit/Source/web/WebSettingsImpl.h [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/third_party/WebKit/public/web/WebSettings.h [modify] https://crrev.com/df72ed087b3083bdea9b882bf473f8a9f4dc1276/tools/metrics/histograms/histograms.xml
Comment 1 by pfeldman@chromium.org
, Nov 29 2016