Title: [232650] trunk
- Revision
- 232650
- Author
- [email protected]
- Date
- 2018-06-08 16:30:57 -0700 (Fri, 08 Jun 2018)
Log Message
REGRESSION: Cannot listen to audio on Google Translate with side switch set to "vibrate"
https://bugs.webkit.org/show_bug.cgi?id=186415
<rdar://problem/40584651>
Reviewed by Eric Carlson.
Source/WebCore:
Test: platform/mac/media/audio-session-category-audio-autoplay.html
Make sure that the PlatformMediaSession's state has already been set when calling updateSessionStates().
* platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::setState):
* platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
(WebCore::PlatformMediaSessionManager::sessionStateChanged):
LayoutTests:
* platform/mac/media/audio-session-category-audio-autoplay-expected.txt: Added.
* platform/mac/media/audio-session-category-audio-autoplay.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (232649 => 232650)
--- trunk/LayoutTests/ChangeLog 2018-06-08 23:26:21 UTC (rev 232649)
+++ trunk/LayoutTests/ChangeLog 2018-06-08 23:30:57 UTC (rev 232650)
@@ -1,3 +1,14 @@
+2018-06-07 Jer Noble <[email protected]>
+
+ REGRESSION: Cannot listen to audio on Google Translate with side switch set to "vibrate"
+ https://bugs.webkit.org/show_bug.cgi?id=186415
+ <rdar://problem/40584651>
+
+ Reviewed by Eric Carlson.
+
+ * platform/mac/media/audio-session-category-audio-autoplay-expected.txt: Added.
+ * platform/mac/media/audio-session-category-audio-autoplay.html: Added.
+
2018-06-08 Brendan McLoughlin <[email protected]>
Sync web-platform-tests repo to 197cdad
Added: trunk/LayoutTests/platform/mac/media/audio-session-category-audio-autoplay-expected.txt (0 => 232650)
--- trunk/LayoutTests/platform/mac/media/audio-session-category-audio-autoplay-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/mac/media/audio-session-category-audio-autoplay-expected.txt 2018-06-08 23:30:57 UTC (rev 232650)
@@ -0,0 +1,8 @@
+
+RUN(internals.settings.setShouldManageAudioSessionCategory(true))
+RUN(audio.autoplay = true)
+RUN(audio.src = "" "../../../media/content/test"))
+EVENT(playing)
+EXPECTED (internals.audioSessionCategory() == 'MediaPlayback') OK
+END OF TEST
+
Added: trunk/LayoutTests/platform/mac/media/audio-session-category-audio-autoplay.html (0 => 232650)
--- trunk/LayoutTests/platform/mac/media/audio-session-category-audio-autoplay.html (rev 0)
+++ trunk/LayoutTests/platform/mac/media/audio-session-category-audio-autoplay.html 2018-06-08 23:30:57 UTC (rev 232650)
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>audio-session-category-track-change</title>
+ <script src=""
+ <script src=""
+ <script>
+ function go() {
+ audio = video = mediaElement = document.querySelector('audio');
+ run('internals.settings.setShouldManageAudioSessionCategory(true)');
+ run('audio.autoplay = true');
+ run('audio.src = "" "../../../media/content/test")');
+ waitForEvent('playing', playing);
+ }
+
+ function playing() {
+ testExpected('internals.audioSessionCategory()', 'MediaPlayback');
+ endTest();
+ }
+ </script>
+</head>
+<body _onload_="go()">
+ <audio controls></video>
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (232649 => 232650)
--- trunk/Source/WebCore/ChangeLog 2018-06-08 23:26:21 UTC (rev 232649)
+++ trunk/Source/WebCore/ChangeLog 2018-06-08 23:30:57 UTC (rev 232650)
@@ -1,3 +1,21 @@
+2018-06-07 Jer Noble <[email protected]>
+
+ REGRESSION: Cannot listen to audio on Google Translate with side switch set to "vibrate"
+ https://bugs.webkit.org/show_bug.cgi?id=186415
+ <rdar://problem/40584651>
+
+ Reviewed by Eric Carlson.
+
+ Test: platform/mac/media/audio-session-category-audio-autoplay.html
+
+ Make sure that the PlatformMediaSession's state has already been set when calling updateSessionStates().
+
+ * platform/audio/PlatformMediaSession.cpp:
+ (WebCore::PlatformMediaSession::setState):
+ * platform/audio/PlatformMediaSessionManager.cpp:
+ (WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
+ (WebCore::PlatformMediaSessionManager::sessionStateChanged):
+
2018-06-08 Dean Jackson <[email protected]>
'setRenderPipelineState:' is unavailable: not available on iOS
Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp (232649 => 232650)
--- trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp 2018-06-08 23:26:21 UTC (rev 232649)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp 2018-06-08 23:30:57 UTC (rev 232650)
@@ -112,8 +112,12 @@
void PlatformMediaSession::setState(State state)
{
+ if (state == m_state)
+ return;
+
INFO_LOG(LOGIDENTIFIER, state);
m_state = state;
+ PlatformMediaSessionManager::sharedManager().sessionStateChanged(*this);
}
void PlatformMediaSession::beginInterruption(InterruptionType type)
Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp (232649 => 232650)
--- trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp 2018-06-08 23:26:21 UTC (rev 232649)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp 2018-06-08 23:30:57 UTC (rev 232650)
@@ -213,7 +213,6 @@
oneSession.pauseSession();
});
- updateSessionState();
return true;
}
@@ -249,6 +248,11 @@
LOG(Media, "PlatformMediaSessionManager::sessionWillEndPlayback - session moved from index %zu to %zu", pausingSessionIndex, lastPlayingSessionIndex);
}
+void PlatformMediaSessionManager::sessionStateChanged(PlatformMediaSession&)
+{
+ updateSessionState();
+}
+
void PlatformMediaSessionManager::setCurrentSession(PlatformMediaSession& session)
{
LOG(Media, "PlatformMediaSessionManager::setCurrentSession - %p", &session);
Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h (232649 => 232650)
--- trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h 2018-06-08 23:26:21 UTC (rev 232649)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h 2018-06-08 23:30:57 UTC (rev 232650)
@@ -94,6 +94,7 @@
virtual bool sessionWillBeginPlayback(PlatformMediaSession&);
virtual void sessionWillEndPlayback(PlatformMediaSession&);
+ virtual void sessionStateChanged(PlatformMediaSession&);
virtual void sessionDidEndRemoteScrubbing(const PlatformMediaSession&) { };
virtual void clientCharacteristicsChanged(PlatformMediaSession&) { }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes