Title: [247182] trunk/Source/WebCore
Revision
247182
Author
jer.no...@apple.com
Date
2019-07-05 15:24:07 -0700 (Fri, 05 Jul 2019)

Log Message

Revert change to block playback when process is ostensibly "suspended".
https://bugs.webkit.org/show_bug.cgi?id=199530

Reviewed by Eric Carlson.

In r243958, a drive-by-fix was added that blocked playback when the WebProcess thought it
was susposed to be suspended. The intent was to keep the AVAudioSession for the process
from being activated just before the process was suspended, and thus avoid receiving an
"interruption" and having the AVAudioSession deactivated out from under us upon resuming.

Unfortunately, this caused problems when another process resumes the WebContent process
in order to start playback; namely the Now Playing UI's play button. Because we may receive
the play command long before whe notice that we've been resumed, the WebContent process
may refuse to honor the play command because it thinks its supposed to be suspended.

* platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (247181 => 247182)


--- trunk/Source/WebCore/ChangeLog	2019-07-05 22:13:29 UTC (rev 247181)
+++ trunk/Source/WebCore/ChangeLog	2019-07-05 22:24:07 UTC (rev 247182)
@@ -1,3 +1,23 @@
+2019-07-05  Jer Noble  <jer.no...@apple.com>
+
+        Revert change to block playback when process is ostensibly "suspended".
+        https://bugs.webkit.org/show_bug.cgi?id=199530
+
+        Reviewed by Eric Carlson.
+
+        In r243958, a drive-by-fix was added that blocked playback when the WebProcess thought it
+        was susposed to be suspended. The intent was to keep the AVAudioSession for the process
+        from being activated just before the process was suspended, and thus avoid receiving an
+        "interruption" and having the AVAudioSession deactivated out from under us upon resuming.
+
+        Unfortunately, this caused problems when another process resumes the WebContent process
+        in order to start playback; namely the Now Playing UI's play button. Because we may receive
+        the play command long before whe notice that we've been resumed, the WebContent process
+        may refuse to honor the play command because it thinks its supposed to be suspended.
+
+        * platform/audio/PlatformMediaSessionManager.cpp:
+        (WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
+
 2019-07-05  Ryosuke Niwa  <rn...@webkit.org>
 
         [iOS] Crash in WebKit::WebPage::positionInformation via Range::startPosition

Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp (247181 => 247182)


--- trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp	2019-07-05 22:13:29 UTC (rev 247181)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp	2019-07-05 22:24:07 UTC (rev 247182)
@@ -209,11 +209,6 @@
         return false;
     }
 
-    if (m_processIsSuspended) {
-        ALWAYS_LOG(LOGIDENTIFIER, session.logIdentifier(), " returning false because process is suspended");
-        return false;
-    }
-
 #if USE(AUDIO_SESSION)
     if (activeAudioSessionRequired()) {
         if (!AudioSession::sharedSession().tryToSetActive(true)) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to