⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 268878 in webkit


Ignore:
Timestamp:
Oct 22, 2020, 11:36:38 AM (6 years ago)
Author:
eric.carlson@apple.com
Message:

UIClient isn't notified when page muted state changes
https://bugs.webkit.org/show_bug.cgi?id=218085
<rdar://problem/70462420>

Reviewed by Youenn Fablet.

Source/WebKit:

API test: WKWebView.MediaMuted

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetMediaState): reportedMediaCaptureState -> reportedMediaState.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _mediaCaptureState]): Ditto.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateReportedMediaCaptureState): Only record current capture
state in m_reportedMediaCaptureState. m_delayStopCapturingReporting isn't necessary,
remove it.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::reportedMediaState const): Renamed from reportedMediaCaptureState
to reflect what it returns.
(WebKit::WebPageProxy::mediaStateFlags const): Deleted.
(WebKit::WebPageProxy::reportedMediaCaptureState const): Deleted.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
  • TestWebKitAPI/Tests/WebKitCocoa/MediaMutedState.mm: Added.

(-[AudioStateObserver initWithWebView:]):
(-[AudioStateObserver observeValueForKeyPath:ofObject:change:context:]):
(-[AudioStateTestView setMuted:]):
(TestWebKitAPI::TEST):

Location:
trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r268872 r268878  
     12020-10-22  Eric Carlson  <eric.carlson@apple.com>
     2
     3        UIClient isn't notified when page muted state changes
     4        https://bugs.webkit.org/show_bug.cgi?id=218085
     5        <rdar://problem/70462420>
     6
     7        Reviewed by Youenn Fablet.
     8
     9        API test: WKWebView.MediaMuted
     10
     11        * UIProcess/API/C/WKPage.cpp:
     12        (WKPageGetMediaState): reportedMediaCaptureState -> reportedMediaState.
     13
     14        * UIProcess/API/Cocoa/WKWebView.mm:
     15        (-[WKWebView _mediaCaptureState]): Ditto.
     16
     17        * UIProcess/WebPageProxy.cpp:
     18        (WebKit::WebPageProxy::updateReportedMediaCaptureState): Only record current capture
     19        state in m_reportedMediaCaptureState. m_delayStopCapturingReporting isn't necessary,
     20        remove it.
     21
     22        * UIProcess/WebPageProxy.h:
     23        (WebKit::WebPageProxy::reportedMediaState const): Renamed from reportedMediaCaptureState
     24        to reflect what it returns.
     25        (WebKit::WebPageProxy::mediaStateFlags const): Deleted.
     26        (WebKit::WebPageProxy::reportedMediaCaptureState const): Deleted.
     27
    1282020-10-22  Youenn Fablet  <youenn@apple.com>
    229
  • trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp

    r268074 r268878  
    28202820WKMediaState WKPageGetMediaState(WKPageRef page)
    28212821{
    2822     WebCore::MediaProducer::MediaStateFlags coreState = toImpl(page)->reportedMediaCaptureState();
     2822    WebCore::MediaProducer::MediaStateFlags coreState = toImpl(page)->reportedMediaState();
    28232823    WKMediaState state = kWKMediaIsNotPlaying;
    28242824
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

    r268428 r268878  
    30223022- (_WKMediaCaptureState)_mediaCaptureState
    30233023{
    3024     return WebKit::toWKMediaCaptureState(_page->reportedMediaCaptureState());
     3024    return WebKit::toWKMediaCaptureState(_page->reportedMediaState());
    30253025}
    30263026
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r268793 r268878  
    89588958void WebPageProxy::updateReportedMediaCaptureState()
    89598959{
    8960     if (m_reportedMediaCaptureState == m_mediaState)
     8960    auto activeCaptureState = m_mediaState & MediaProducer::MediaCaptureMask;
     8961    if (m_reportedMediaCaptureState == activeCaptureState)
    89618962        return;
    89628963
    89638964    bool haveReportedCapture = m_reportedMediaCaptureState & MediaProducer::MediaCaptureMask;
    8964     bool willReportCapture = m_mediaState & MediaProducer::MediaCaptureMask;
     8965    bool willReportCapture = activeCaptureState;
    89658966
    89668967    if (haveReportedCapture && !willReportCapture && m_delayStopCapturingReportingTimer.isActive())
     
    89688969
    89698970    if (!haveReportedCapture && willReportCapture) {
    8970         m_delayStopCapturingReporting = true;
    89718971        m_delayStopCapturingReportingTimer.doTask([this] {
    8972             m_delayStopCapturingReporting = false;
    89738972            updateReportedMediaCaptureState();
    89748973        }, m_mediaCaptureReportingDelay);
    89758974    }
    89768975
    8977     m_reportedMediaCaptureState = m_mediaState;
     8976    m_reportedMediaCaptureState = activeCaptureState;
    89788977    m_uiClient->mediaCaptureStateDidChange(m_mediaState);
    89798978}
  • trunk/Source/WebKit/UIProcess/WebPageProxy.h

    r268793 r268878  
    14521452    bool hasActiveAudioStream() const { return m_mediaState & WebCore::MediaProducer::HasActiveAudioCaptureDevice; }
    14531453    bool hasActiveVideoStream() const { return m_mediaState & WebCore::MediaProducer::HasActiveVideoCaptureDevice; }
    1454     WebCore::MediaProducer::MediaStateFlags mediaStateFlags() const { return m_mediaState; }
    1455     WebCore::MediaProducer::MediaStateFlags reportedMediaCaptureState() const { return m_reportedMediaCaptureState; }
     1454    WebCore::MediaProducer::MediaStateFlags reportedMediaState() const { return m_reportedMediaCaptureState | (m_mediaState & ~WebCore::MediaProducer::MediaCaptureMask); }
    14561455    WebCore::MediaProducer::MutedStateFlags mutedStateFlags() const { return m_mutedState; }
    14571456
     
    27552754    WebCore::MediaProducer::MediaStateFlags m_reportedMediaCaptureState { WebCore::MediaProducer::IsNotPlaying };
    27562755    WebCore::DeferrableTaskTimer m_delayStopCapturingReportingTimer;
    2757     bool m_delayStopCapturingReporting { false };
    27582756    static constexpr Seconds DefaultMediaCaptureReportingDelay { 3_s };
    27592757    Seconds m_mediaCaptureReportingDelay { DefaultMediaCaptureReportingDelay };
  • trunk/Tools/ChangeLog

    r268870 r268878  
     12020-10-22  Eric Carlson  <eric.carlson@apple.com>
     2
     3        UIClient isn't notified when page muted state changes
     4        https://bugs.webkit.org/show_bug.cgi?id=218085
     5        <rdar://problem/70462420>
     6
     7        Reviewed by Youenn Fablet.
     8
     9        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     10        * TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
     11        * TestWebKitAPI/Tests/WebKitCocoa/MediaMutedState.mm: Added.
     12        (-[AudioStateObserver initWithWebView:]):
     13        (-[AudioStateObserver observeValueForKeyPath:ofObject:change:context:]):
     14        (-[AudioStateTestView setMuted:]):
     15        (TestWebKitAPI::TEST):
     16
    1172020-10-22  Angelos Oikonomopoulos  <angelos@igalia.com>
    218
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r268384 r268878  
    6565                07E1F6A31FFC4B760096C7EC /* GetDisplayMedia.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07E1F6A01FFC3A080096C7EC /* GetDisplayMedia.mm */; };
    6666                07E499911F9E56DF002F1EF3 /* GetUserMediaReprompt.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07E499901F9E56A1002F1EF3 /* GetUserMediaReprompt.mm */; };
     67                07EF76D52540FC060053ED53 /* MediaMutedState.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07EF76D42540FC060053ED53 /* MediaMutedState.mm */; };
    6768                07F4E92E20AF59E2002E3803 /* UserMediaSimulateFailedSandbox.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07F4E92D20AF58D3002E3803 /* UserMediaSimulateFailedSandbox.mm */; };
    6869                0E404A8C2166DE0A008271BA /* InjectedBundleNodeHandleIsSelectElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0E404A8A2166DDF8008271BA /* InjectedBundleNodeHandleIsSelectElement.mm */; };
     
    17021703                07E499901F9E56A1002F1EF3 /* GetUserMediaReprompt.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = GetUserMediaReprompt.mm; sourceTree = "<group>"; };
    17031704                07EDEFAC1EB9400C00D43292 /* UserMediaDisabled.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = UserMediaDisabled.mm; sourceTree = "<group>"; };
     1705                07EF76D42540FC060053ED53 /* MediaMutedState.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MediaMutedState.mm; sourceTree = "<group>"; };
    17041706                07F4E92D20AF58D3002E3803 /* UserMediaSimulateFailedSandbox.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = UserMediaSimulateFailedSandbox.mm; sourceTree = "<group>"; };
    17051707                0BCD833414857CE400EA2003 /* HashMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HashMap.cpp; sourceTree = "<group>"; };
     
    32933295                                95B6B3B6251EBF2F00FC4382 /* MediaDocument.mm */,
    32943296                                CD0370E224A44B7A00BA3CAE /* MediaLoading.mm */,
     3297                                07EF76D42540FC060053ED53 /* MediaMutedState.mm */,
    32953298                                51BE9E652376089500B4E117 /* MediaType.mm */,
    32963299                                5165FE03201EE617009F7EC3 /* MessagePortProviders.mm */,
     
    52755278                                95B6B3B7251EBF2F00FC4382 /* MediaDocument.mm in Sources */,
    52765279                                CD0370E324A44D9600BA3CAE /* MediaLoading.mm in Sources */,
     5280                                07EF76D52540FC060053ED53 /* MediaMutedState.mm in Sources */,
    52775281                                CDA315981ED53651009F60D3 /* MediaPlaybackSleepAssertion.mm in Sources */,
    52785282                                CDC9442E1EF1FC080059C3C4 /* MediaStreamTrackDetached.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.