Changeset 268878 in webkit
- Timestamp:
- Oct 22, 2020, 11:36:38 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 7 edited
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/UIProcess/API/C/WKPage.cpp (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (modified) (1 diff)
-
Source/WebKit/UIProcess/WebPageProxy.cpp (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebPageProxy.h (modified) (2 diffs)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (modified) (4 diffs)
-
Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaMutedState.mm (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r268872 r268878 1 2020-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 1 28 2020-10-22 Youenn Fablet <youenn@apple.com> 2 29 -
trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp
r268074 r268878 2820 2820 WKMediaState WKPageGetMediaState(WKPageRef page) 2821 2821 { 2822 WebCore::MediaProducer::MediaStateFlags coreState = toImpl(page)->reportedMedia CaptureState();2822 WebCore::MediaProducer::MediaStateFlags coreState = toImpl(page)->reportedMediaState(); 2823 2823 WKMediaState state = kWKMediaIsNotPlaying; 2824 2824 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
r268428 r268878 3022 3022 - (_WKMediaCaptureState)_mediaCaptureState 3023 3023 { 3024 return WebKit::toWKMediaCaptureState(_page->reportedMedia CaptureState());3024 return WebKit::toWKMediaCaptureState(_page->reportedMediaState()); 3025 3025 } 3026 3026 -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r268793 r268878 8958 8958 void WebPageProxy::updateReportedMediaCaptureState() 8959 8959 { 8960 if (m_reportedMediaCaptureState == m_mediaState) 8960 auto activeCaptureState = m_mediaState & MediaProducer::MediaCaptureMask; 8961 if (m_reportedMediaCaptureState == activeCaptureState) 8961 8962 return; 8962 8963 8963 8964 bool haveReportedCapture = m_reportedMediaCaptureState & MediaProducer::MediaCaptureMask; 8964 bool willReportCapture = m_mediaState & MediaProducer::MediaCaptureMask;8965 bool willReportCapture = activeCaptureState; 8965 8966 8966 8967 if (haveReportedCapture && !willReportCapture && m_delayStopCapturingReportingTimer.isActive()) … … 8968 8969 8969 8970 if (!haveReportedCapture && willReportCapture) { 8970 m_delayStopCapturingReporting = true;8971 8971 m_delayStopCapturingReportingTimer.doTask([this] { 8972 m_delayStopCapturingReporting = false;8973 8972 updateReportedMediaCaptureState(); 8974 8973 }, m_mediaCaptureReportingDelay); 8975 8974 } 8976 8975 8977 m_reportedMediaCaptureState = m_mediaState;8976 m_reportedMediaCaptureState = activeCaptureState; 8978 8977 m_uiClient->mediaCaptureStateDidChange(m_mediaState); 8979 8978 } -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r268793 r268878 1452 1452 bool hasActiveAudioStream() const { return m_mediaState & WebCore::MediaProducer::HasActiveAudioCaptureDevice; } 1453 1453 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); } 1456 1455 WebCore::MediaProducer::MutedStateFlags mutedStateFlags() const { return m_mutedState; } 1457 1456 … … 2755 2754 WebCore::MediaProducer::MediaStateFlags m_reportedMediaCaptureState { WebCore::MediaProducer::IsNotPlaying }; 2756 2755 WebCore::DeferrableTaskTimer m_delayStopCapturingReportingTimer; 2757 bool m_delayStopCapturingReporting { false };2758 2756 static constexpr Seconds DefaultMediaCaptureReportingDelay { 3_s }; 2759 2757 Seconds m_mediaCaptureReportingDelay { DefaultMediaCaptureReportingDelay }; -
trunk/Tools/ChangeLog
r268870 r268878 1 2020-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 1 17 2020-10-22 Angelos Oikonomopoulos <angelos@igalia.com> 2 18 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r268384 r268878 65 65 07E1F6A31FFC4B760096C7EC /* GetDisplayMedia.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07E1F6A01FFC3A080096C7EC /* GetDisplayMedia.mm */; }; 66 66 07E499911F9E56DF002F1EF3 /* GetUserMediaReprompt.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07E499901F9E56A1002F1EF3 /* GetUserMediaReprompt.mm */; }; 67 07EF76D52540FC060053ED53 /* MediaMutedState.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07EF76D42540FC060053ED53 /* MediaMutedState.mm */; }; 67 68 07F4E92E20AF59E2002E3803 /* UserMediaSimulateFailedSandbox.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07F4E92D20AF58D3002E3803 /* UserMediaSimulateFailedSandbox.mm */; }; 68 69 0E404A8C2166DE0A008271BA /* InjectedBundleNodeHandleIsSelectElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0E404A8A2166DDF8008271BA /* InjectedBundleNodeHandleIsSelectElement.mm */; }; … … 1702 1703 07E499901F9E56A1002F1EF3 /* GetUserMediaReprompt.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = GetUserMediaReprompt.mm; sourceTree = "<group>"; }; 1703 1704 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>"; }; 1704 1706 07F4E92D20AF58D3002E3803 /* UserMediaSimulateFailedSandbox.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = UserMediaSimulateFailedSandbox.mm; sourceTree = "<group>"; }; 1705 1707 0BCD833414857CE400EA2003 /* HashMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HashMap.cpp; sourceTree = "<group>"; }; … … 3293 3295 95B6B3B6251EBF2F00FC4382 /* MediaDocument.mm */, 3294 3296 CD0370E224A44B7A00BA3CAE /* MediaLoading.mm */, 3297 07EF76D42540FC060053ED53 /* MediaMutedState.mm */, 3295 3298 51BE9E652376089500B4E117 /* MediaType.mm */, 3296 3299 5165FE03201EE617009F7EC3 /* MessagePortProviders.mm */, … … 5275 5278 95B6B3B7251EBF2F00FC4382 /* MediaDocument.mm in Sources */, 5276 5279 CD0370E324A44D9600BA3CAE /* MediaLoading.mm in Sources */, 5280 07EF76D52540FC060053ED53 /* MediaMutedState.mm in Sources */, 5277 5281 CDA315981ED53651009F60D3 /* MediaPlaybackSleepAssertion.mm in Sources */, 5278 5282 CDC9442E1EF1FC080059C3C4 /* MediaStreamTrackDetached.mm in Sources */,
Note:
See TracChangeset
for help on using the changeset viewer.