[webkit-changes] [WebKit/WebKit] a5482e: Add experimental support for AudioSession Web API
youennf
noreply at github.com
Thu Dec 8 01:41:35 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a5482e6f1937ce88085b0e181423e77c129b010b
https://github.com/WebKit/WebKit/commit/a5482e6f1937ce88085b0e181423e77c129b010b
Author: Youenn Fablet <youennf at gmail.com>
Date: 2022-12-08 (Thu, 08 Dec 2022)
Changed paths:
M LayoutTests/fast/dom/navigator-detached-no-crash-expected.txt
A LayoutTests/media/audioSession/audioSessionState-expected.txt
A LayoutTests/media/audioSession/audioSessionState.html
A LayoutTests/media/audioSession/audioSessionType-expected.txt
A LayoutTests/media/audioSession/audioSessionType.html
A LayoutTests/media/audioSession/getUserMedia-expected.txt
A LayoutTests/media/audioSession/getUserMedia.html
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/mac-wk1/TestExpectations
M LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt
M LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt
M Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml
M Source/WTF/wtf/PlatformEnableCocoa.h
M Source/WebCore/CMakeLists.txt
M Source/WebCore/DerivedSources-input.xcfilelist
M Source/WebCore/DerivedSources-output.xcfilelist
M Source/WebCore/DerivedSources.make
A Source/WebCore/Modules/audiosession/DOMAudioSession.cpp
A Source/WebCore/Modules/audiosession/DOMAudioSession.h
A Source/WebCore/Modules/audiosession/DOMAudioSession.idl
A Source/WebCore/Modules/audiosession/Navigator+AudioSession.idl
A Source/WebCore/Modules/audiosession/NavigatorAudioSession.cpp
A Source/WebCore/Modules/audiosession/NavigatorAudioSession.h
M Source/WebCore/Modules/mediastream/MediaDevices.cpp
M Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/bindings/js/WebCoreBuiltinNames.h
M Source/WebCore/dom/EventTargetFactory.in
M Source/WebCore/platform/audio/AudioSession.cpp
M Source/WebCore/platform/audio/AudioSession.h
M Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp
M Source/WebCore/platform/audio/PlatformMediaSessionManager.h
M Source/WebCore/testing/Internals.cpp
M Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp
Log Message:
-----------
Add experimental support for AudioSession Web API
https://bugs.webkit.org/show_bug.cgi?id=248811
rdar://problem/103019883
Reviewed by Eric Carlson.
Add experimental support for a Web API to better control AudioSession states, in particular category and interruptions.
Covered by added tests.
* LayoutTests/fast/dom/navigator-detached-no-crash-expected.txt:
* LayoutTests/media/audioSession/audioSessionState-expected.txt: Added.
* LayoutTests/media/audioSession/audioSessionState.html: Added.
* LayoutTests/media/audioSession/audioSessionType-expected.txt: Added.
* LayoutTests/media/audioSession/audioSessionType.html: Added.
* LayoutTests/media/audioSession/getUserMedia-expected.txt: Added.
* LayoutTests/media/audioSession/getUserMedia.html: Added.
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
* LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
* Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml:
* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WebCore/DerivedSources-input.xcfilelist:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Modules/audiosession/DOMAudioSession.cpp: Added.
(WebCore::fromDOMAudioSessionType):
(WebCore::DOMAudioSession::create):
(WebCore::DOMAudioSession::DOMAudioSession):
(WebCore::DOMAudioSession::~DOMAudioSession):
(WebCore::DOMAudioSession::setType):
(WebCore::DOMAudioSession::type const):
(WebCore::DOMAudioSession::state const):
(WebCore::DOMAudioSession::stop):
(WebCore::DOMAudioSession::activeDOMObjectName const):
(WebCore::DOMAudioSession::virtualHasPendingActivity const):
(WebCore::DOMAudioSession::beginAudioSessionInterruption):
(WebCore::DOMAudioSession::endAudioSessionInterruption):
(WebCore::DOMAudioSession::activeStateChanged):
(WebCore::DOMAudioSession::scheduleStateChangeEvent):
* Source/WebCore/Modules/audiosession/DOMAudioSession.h: Added.
* Source/WebCore/Modules/audiosession/DOMAudioSession.idl: Added.
* Source/WebCore/Modules/audiosession/Navigator+AudioSession.idl: Added.
* Source/WebCore/Modules/audiosession/NavigatorAudioSession.cpp: Added.
(WebCore::NavigatorAudioSession::NavigatorAudioSession):
(WebCore::NavigatorAudioSession::audioSession):
(WebCore::NavigatorAudioSession::from):
(WebCore::NavigatorAudioSession::supplementName):
* Source/WebCore/Modules/audiosession/NavigatorAudioSession.h: Added.
* Source/WebCore/Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::getUserMedia):
* Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::allow):
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/bindings/js/WebCoreBuiltinNames.h:
* Source/WebCore/dom/ActiveDOMObject.cpp:
(WebCore::ActiveDOMObject::queueTaskToDispatchEventInternal):
* Source/WebCore/dom/EventTargetFactory.in:
* Source/WebCore/platform/audio/AudioSession.cpp:
(WebCore::AudioSession::tryToSetActive):
(WebCore::AudioSession::activeStateChanged):
* Source/WebCore/platform/audio/AudioSession.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
* Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp:
(WebKit::RemoteAudioSession::configurationChanged):
Canonical link: https://commits.webkit.org/257552@main
More information about the webkit-changes
mailing list