Bug 1419349 - delay autoplay only when we enable it. draft
authorAlastor Wu <alwu@mozilla.com>
Wed, 22 Nov 2017 00:44:34 +0800
changeset 701430 9329f96a725eb752c9dd179b61fcc8924aba7cfd
parent 701427 dfc18a19de45ec1d5feae6333f9ce35ef77554d3
child 741158 42999455437daeb55ab0f51b003bb7a34af30bf6
push id90153
push useralwu@mozilla.com
push dateTue, 21 Nov 2017 16:44:47 +0000
bugs1419349
milestone59.0a1
Bug 1419349 - delay autoplay only when we enable it. If we don't enable autoplay, we have no need to delay it. MozReview-Commit-ID: DgYCi1UyF5O
dom/base/nsGlobalWindow.cpp
toolkit/content/widgets/browser.xml
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -333,18 +333,20 @@ nsPIDOMWindow<T>::nsPIDOMWindow(nsPIDOMW
   mMutationBits(0), mActivePeerConnections(0), mIsDocumentLoaded(false),
   mIsHandlingResizeEvent(false), mIsInnerWindow(aOuterWindow != nullptr),
   mMayHavePaintEventListener(false), mMayHaveTouchEventListener(false),
   mMayHaveSelectionChangeEventListener(false),
   mMayHaveMouseEnterLeaveEventListener(false),
   mMayHavePointerEnterLeaveEventListener(false),
   mInnerObjectsFreed(false),
   mIsActive(false), mIsBackground(false),
-  mMediaSuspend(Preferences::GetBool("media.block-autoplay-until-in-foreground", true) ?
-    nsISuspendedTypes::SUSPENDED_BLOCK : nsISuspendedTypes::NONE_SUSPENDED),
+  mMediaSuspend(
+    Preferences::GetBool("media.block-autoplay-until-in-foreground", true) &&
+    Preferences::GetBool("media.autoplay.enabled", true) ?
+      nsISuspendedTypes::SUSPENDED_BLOCK : nsISuspendedTypes::NONE_SUSPENDED),
   mAudioMuted(false), mAudioVolume(1.0), mAudioCaptured(false),
   mDesktopModeViewport(false), mIsRootOuterWindow(false), mInnerWindow(nullptr),
   mOuterWindow(aOuterWindow),
   // Make sure no actual window ends up with mWindowID == 0
   mWindowID(NextWindowID()), mHasNotifiedGlobalCreated(false),
   mMarkedCCGeneration(0), mServiceWorkersTestingEnabled(false),
   mLargeAllocStatus(LargeAllocStatus::NONE),
   mHasTriedToCacheTopInnerWindow(false),
--- a/toolkit/content/widgets/browser.xml
+++ b/toolkit/content/widgets/browser.xml
@@ -779,17 +779,18 @@
       <property name="audioMuted"
                 onget="return this._audioMuted;"
                 readonly="true"/>
 
       <field name="_mediaBlocked">true</field>
       <property name="mediaBlocked" readonly="true">
         <getter>
           <![CDATA[
-            if (this.mPrefs.getBoolPref("media.block-autoplay-until-in-foreground", true)) {
+            if (this.mPrefs.getBoolPref("media.block-autoplay-until-in-foreground", true) &&
+                this.mPrefs.getBoolPref("media.autoplay.enabled", true)) {
               return this._mediaBlocked;
             }
             return false;
           ]]>
         </getter>
       </property>
 
       <field name="_hasAnyPlayingMediaBeenBlocked">false</field>