[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