Changeset 256844 in webkit
- Timestamp:
- Feb 18, 2020 11:42:31 AM (4 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 13 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r256840 r256844 1 2020-02-18 Youenn Fablet <youenn@apple.com> 2 3 Remove PlatformMediaSessionClient dependency on Document 4 https://bugs.webkit.org/show_bug.cgi?id=207892 5 6 Reviewed by Eric Carlson. 7 8 Move DocumentIdentifier to Platform folder. 9 Use DocumentIdentifier instead of Document in PlatformMediaSession/Manager. 10 No change of behavior. 11 12 * Headers.cmake: 13 * Modules/mediastream/MediaStreamTrack.cpp: 14 (WebCore::MediaStreamTrack::hostingDocumentIdentifier const): 15 * Modules/mediastream/MediaStreamTrack.h: 16 * Modules/webaudio/AudioContext.cpp: 17 (WebCore::AudioContext::hostingDocumentIdentifier const): 18 (WebCore::AudioContext::hostingDocument const): Deleted. 19 * Modules/webaudio/AudioContext.h: 20 * WebCore.xcodeproj/project.pbxproj: 21 * dom/Document.cpp: 22 (WebCore::Document::stopAllMediaPlayback): 23 (WebCore::Document::suspendAllMediaPlayback): 24 (WebCore::Document::resumeAllMediaPlayback): 25 (WebCore::Document::suspendAllMediaBuffering): 26 (WebCore::Document::resumeAllMediaBuffering): 27 * html/HTMLMediaElement.h: 28 * platform/DocumentIdentifier.h: Renamed from Source/WebCore/dom/DocumentIdentifier.h. 29 * platform/audio/PlatformMediaSession.cpp: 30 (WebCore::PlatformMediaSession::PlatformMediaSession): 31 * platform/audio/PlatformMediaSession.h: 32 * platform/audio/PlatformMediaSessionManager.cpp: 33 (WebCore::PlatformMediaSessionManager::stopAllMediaPlaybackForDocument): 34 (WebCore::PlatformMediaSessionManager::suspendAllMediaPlaybackForDocument): 35 (WebCore::PlatformMediaSessionManager::resumeAllMediaPlaybackForDocument): 36 (WebCore::PlatformMediaSessionManager::suspendAllMediaBufferingForDocument): 37 (WebCore::PlatformMediaSessionManager::resumeAllMediaBufferingForDocument): 38 (WebCore::PlatformMediaSessionManager::sessionsMatching const): 39 (WebCore::PlatformMediaSessionManager::forEachDocumentSession): 40 * platform/audio/PlatformMediaSessionManager.h: 41 1 42 2020-02-18 Zalan Bujtas <zalan@apple.com> 2 43 -
trunk/Source/WebCore/Headers.cmake
r256834 r256844 381 381 dom/DocumentFragment.h 382 382 dom/DocumentFullscreen.h 383 dom/DocumentIdentifier.h384 383 dom/DocumentMarker.h 385 384 dom/DocumentMarkerController.h … … 926 925 platform/Decimal.h 927 926 platform/DeferrableTask.h 927 platform/DocumentIdentifier.h 928 928 platform/DragData.h 929 929 platform/DragImage.h -
trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
r253178 r256844 629 629 } 630 630 631 DocumentIdentifier MediaStreamTrack::hostingDocumentIdentifier() const 632 { 633 auto* document = downcast<Document>(m_scriptExecutionContext); 634 return document ? document->identifier() : DocumentIdentifier { }; 635 } 636 631 637 #if !RELEASE_LOG_DISABLED 632 638 WTFLogChannel& MediaStreamTrack::logChannel() const -
trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h
r252981 r256844 203 203 String sourceApplicationIdentifier() const final; 204 204 bool canProduceAudio() const final; 205 Document * hostingDocument() const final { return document(); }205 DocumentIdentifier hostingDocumentIdentifier() const final; 206 206 bool processingUserGestureForMedia() const final; 207 207 bool shouldOverridePauseDuringRouteChange() const final { return true; } -
trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp
r251537 r256844 367 367 } 368 368 369 Document* AudioContext::hostingDocument() const 370 { 371 return downcast<Document>(m_scriptExecutionContext); 369 DocumentIdentifier AudioContext::hostingDocumentIdentifier() const 370 { 371 auto* document = downcast<Document>(m_scriptExecutionContext); 372 return document ? document->identifier() : DocumentIdentifier { }; 372 373 } 373 374 -
trunk/Source/WebCore/Modules/webaudio/AudioContext.h
r256353 r256844 108 108 Document* document() const; // ASSERTs if document no longer exists. 109 109 110 Document * hostingDocument() const final;110 DocumentIdentifier hostingDocumentIdentifier() const final; 111 111 112 112 AudioDestinationNode* destination() { return m_destinationNode.get(); } -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r256839 r256844 1102 1102 41815C1F138319830057AAA4 /* WebCoreTestSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 41815C1D138319830057AAA4 /* WebCoreTestSupport.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1103 1103 418205471E53E98C00D62207 /* RTCController.h in Headers */ = {isa = PBXBuildFile; fileRef = 418205451E53C8CD00D62207 /* RTCController.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1104 41826BF223FB597700B922B1 /* DocumentIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 41826BF123FB597000B922B1 /* DocumentIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1104 1105 4184F5161EAF05A800F18BF0 /* OrientationNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 4184F5151EAF059800F18BF0 /* OrientationNotifier.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1105 1106 4186BD3E213EE3400001826F /* LibWebRTCUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41D1A049213EDDFD0063FB6B /* LibWebRTCUtils.cpp */; }; … … 1253 1254 46E0C0DE23C006E9005E47AE /* DragEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 46E0C0DA23C006B3005E47AE /* DragEvent.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1254 1255 46E139F823D8B8EB0075848E /* HTTPCookieAcceptPolicyCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 46E139F623D8B8E70075848E /* HTTPCookieAcceptPolicyCocoa.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1255 46E1666E1FCC86A200C9710B /* DocumentIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 46E1666C1FCC868700C9710B /* DocumentIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; };1256 1256 46E791491F97E01A00199739 /* JSVisibilityState.h in Headers */ = {isa = PBXBuildFile; fileRef = 46E791461F97E01700199739 /* JSVisibilityState.h */; }; 1257 1257 46EB37CA1F97CCD200B65523 /* JSServiceWorkerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 46EB37C31F97CCCB00B65523 /* JSServiceWorkerClient.h */; }; … … 7379 7379 418205451E53C8CD00D62207 /* RTCController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCController.h; sourceTree = "<group>"; }; 7380 7380 418205481E53EAAD00D62207 /* RTCController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RTCController.cpp; sourceTree = "<group>"; }; 7381 41826BF123FB597000B922B1 /* DocumentIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentIdentifier.h; sourceTree = "<group>"; }; 7381 7382 4184F5151EAF059800F18BF0 /* OrientationNotifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OrientationNotifier.h; sourceTree = "<group>"; }; 7382 7383 4186BD3B213EDE380001826F /* LibWebRTCRtpReceiverBackend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = LibWebRTCRtpReceiverBackend.h; path = libwebrtc/LibWebRTCRtpReceiverBackend.h; sourceTree = "<group>"; }; … … 7743 7744 46E0C0DD23C006B4005E47AE /* DragEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DragEvent.idl; sourceTree = "<group>"; }; 7744 7745 46E139F623D8B8E70075848E /* HTTPCookieAcceptPolicyCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPCookieAcceptPolicyCocoa.h; sourceTree = "<group>"; }; 7745 46E1666C1FCC868700C9710B /* DocumentIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentIdentifier.h; sourceTree = "<group>"; };7746 7746 46E791451F97E01700199739 /* JSVisibilityState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVisibilityState.cpp; sourceTree = "<group>"; }; 7747 7747 46E791461F97E01700199739 /* JSVisibilityState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVisibilityState.h; sourceTree = "<group>"; }; … … 25864 25864 45FEA5CE156DDE8C00654101 /* Decimal.h */, 25865 25865 CD83D35A211110820076E11C /* DeferrableTask.h */, 25866 41826BF123FB597000B922B1 /* DocumentIdentifier.h */, 25866 25867 A79546420B5C4CB4007B438F /* DragData.cpp */, 25867 25868 A7B6E69D0B291A9600D0529F /* DragData.h */, … … 28045 28046 CD92F5102260FFEE00F87BB3 /* DocumentFullscreen.h */, 28046 28047 CD92F50F2260FFEE00F87BB3 /* DocumentFullscreen.idl */, 28047 46E1666C1FCC868700C9710B /* DocumentIdentifier.h */,28048 28048 ED2BA83B09A24B91006C0AC4 /* DocumentMarker.h */, 28049 28049 CE057FA31220731100A476D5 /* DocumentMarkerController.cpp */, … … 29672 29672 A8185F3D09765766005826D9 /* DocumentFragment.h in Headers */, 29673 29673 CD92F5132260FFEE00F87BB3 /* DocumentFullscreen.h in Headers */, 29674 46E1666E1FCC86A200C9710B /* DocumentIdentifier.h in Headers */,29675 29674 656D37360ADBA5DE00A4554D /* DocumentLoader.h in Headers */, 29676 29675 ED2BA83C09A24B91006C0AC4 /* DocumentMarker.h in Headers */, … … 30543 30542 9479493A1E0459FA00018D85 /* JSDeprecatedCSSOMValueList.h in Headers */, 30544 30543 31FB1A66120A5D3F00DC02A0 /* JSDeviceMotionEvent.h in Headers */, 30544 41826BF223FB597700B922B1 /* DocumentIdentifier.h in Headers */, 30545 30545 59A86008119DAFA100DEF1EF /* JSDeviceOrientationEvent.h in Headers */, 30546 30546 659DDC8309E198BA001BF3C6 /* JSDocument.h in Headers */, -
trunk/Source/WebCore/dom/Document.cpp
r256838 r256844 1774 1774 { 1775 1775 if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists()) 1776 platformMediaSessionManager->stopAllMediaPlaybackForDocument( *this);1776 platformMediaSessionManager->stopAllMediaPlaybackForDocument(identifier()); 1777 1777 } 1778 1778 … … 1780 1780 { 1781 1781 if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists()) 1782 platformMediaSessionManager->suspendAllMediaPlaybackForDocument( *this);1782 platformMediaSessionManager->suspendAllMediaPlaybackForDocument(identifier()); 1783 1783 } 1784 1784 … … 1786 1786 { 1787 1787 if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists()) 1788 platformMediaSessionManager->resumeAllMediaPlaybackForDocument( *this);1788 platformMediaSessionManager->resumeAllMediaPlaybackForDocument(identifier()); 1789 1789 } 1790 1790 … … 1792 1792 { 1793 1793 if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists()) 1794 platformMediaSessionManager->suspendAllMediaBufferingForDocument( *this);1794 platformMediaSessionManager->suspendAllMediaBufferingForDocument(identifier()); 1795 1795 } 1796 1796 … … 1798 1798 { 1799 1799 if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists()) 1800 platformMediaSessionManager->resumeAllMediaBufferingForDocument( *this);1800 platformMediaSessionManager->resumeAllMediaBufferingForDocument(identifier()); 1801 1801 } 1802 1802 -
trunk/Source/WebCore/html/HTMLMediaElement.h
r254964 r256844 205 205 bool inActiveDocument() const { return m_inActiveDocument; } 206 206 207 Document * hostingDocument() const final { return &document(); }207 DocumentIdentifier hostingDocumentIdentifier() const final { return document().identifier(); } 208 208 209 209 // DOM API -
trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp
r255116 r256844 119 119 , m_notifyingClient(false) 120 120 #if !RELEASE_LOG_DISABLED 121 , m_logger(client. hostingDocument()->logger())121 , m_logger(client.logger()) 122 122 , m_logIdentifier(uniqueLogIdentifier()) 123 123 #endif -
trunk/Source/WebCore/platform/audio/PlatformMediaSession.h
r255116 r256844 1 1 /* 2 * Copyright (C) 2014-20 15Apple Inc. All rights reserved.2 * Copyright (C) 2014-2020 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 # ifndef PlatformMediaSession_h27 #define PlatformMediaSession_h 28 26 #pragma once 27 28 #include "DocumentIdentifier.h" 29 29 #include "Timer.h" 30 30 #include <wtf/LoggerHelper.h> … … 261 261 virtual bool isPlayingOnSecondScreen() const { return false; } 262 262 263 virtual Document * hostingDocument() const = 0;263 virtual DocumentIdentifier hostingDocumentIdentifier() const = 0; 264 264 virtual String sourceApplicationIdentifier() const = 0; 265 265 … … 271 271 272 272 virtual bool shouldOverridePauseDuringRouteChange() const { return false; } 273 274 #if !RELEASE_LOG_DISABLED 275 virtual const Logger& logger() const = 0; 276 #endif 273 277 274 278 protected: … … 311 315 312 316 } // namespace WTF 313 314 #endif // PlatformMediaSession_h -
trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp
r255116 r256844 454 454 } 455 455 456 void PlatformMediaSessionManager::stopAllMediaPlaybackForDocument( const Document& document)457 { 458 forEachDocumentSession(document , [](auto& session) {456 void PlatformMediaSessionManager::stopAllMediaPlaybackForDocument(DocumentIdentifier documentIdentifier) 457 { 458 forEachDocumentSession(documentIdentifier, [](auto& session) { 459 459 session.pauseSession(); 460 460 }); … … 468 468 } 469 469 470 void PlatformMediaSessionManager::suspendAllMediaPlaybackForDocument( const Document& document)471 { 472 forEachDocumentSession(document , [](auto& session) {470 void PlatformMediaSessionManager::suspendAllMediaPlaybackForDocument(DocumentIdentifier documentIdentifier) 471 { 472 forEachDocumentSession(documentIdentifier, [](auto& session) { 473 473 session.beginInterruption(PlatformMediaSession::PlaybackSuspended); 474 474 }); 475 475 } 476 476 477 void PlatformMediaSessionManager::resumeAllMediaPlaybackForDocument( const Document& document)478 { 479 forEachDocumentSession(document , [](auto& session) {477 void PlatformMediaSessionManager::resumeAllMediaPlaybackForDocument(DocumentIdentifier documentIdentifier) 478 { 479 forEachDocumentSession(documentIdentifier, [](auto& session) { 480 480 session.endInterruption(PlatformMediaSession::MayResumePlaying); 481 481 }); 482 482 } 483 483 484 void PlatformMediaSessionManager::suspendAllMediaBufferingForDocument( const Document& document)485 { 486 forEachDocumentSession(document , [](auto& session) {484 void PlatformMediaSessionManager::suspendAllMediaBufferingForDocument(DocumentIdentifier documentIdentifier) 485 { 486 forEachDocumentSession(documentIdentifier, [](auto& session) { 487 487 session.suspendBuffering(); 488 488 }); 489 489 } 490 490 491 void PlatformMediaSessionManager::resumeAllMediaBufferingForDocument( const Document& document)492 { 493 forEachDocumentSession(document , [](auto& session) {491 void PlatformMediaSessionManager::resumeAllMediaBufferingForDocument(DocumentIdentifier documentIdentifier) 492 { 493 forEachDocumentSession(documentIdentifier, [](auto& session) { 494 494 session.resumeBuffering(); 495 495 }); 496 496 } 497 497 498 Vector<WeakPtr<PlatformMediaSession>> PlatformMediaSessionManager::sessionsMatching(const WTF::Function<bool(const PlatformMediaSession&)>& filter) const498 Vector<WeakPtr<PlatformMediaSession>> PlatformMediaSessionManager::sessionsMatching(const Function<bool(const PlatformMediaSession&)>& filter) const 499 499 { 500 500 Vector<WeakPtr<PlatformMediaSession>> matchingSessions; … … 515 515 } 516 516 517 void PlatformMediaSessionManager::forEachDocumentSession( const Document& document, const Function<void(PlatformMediaSession&)>& callback)518 { 519 forEachMatchingSession([ &document](auto& session) {520 return session.client().hostingDocument () == &document;517 void PlatformMediaSessionManager::forEachDocumentSession(DocumentIdentifier documentIdentifier, const Function<void(PlatformMediaSession&)>& callback) 518 { 519 forEachMatchingSession([documentIdentifier](auto& session) { 520 return session.client().hostingDocumentIdentifier() == documentIdentifier; 521 521 }, [&callback](auto& session) { 522 522 callback(session); -
trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h
r255116 r256844 28 28 29 29 #include "AudioHardwareListener.h" 30 #include "DocumentIdentifier.h" 30 31 #include "PlatformMediaSession.h" 31 32 #include "RemoteCommandListener.h" … … 37 38 namespace WebCore { 38 39 39 class Document;40 class HTMLMediaElement;41 40 class PlatformMediaSession; 42 41 class RemoteCommandListener; … … 89 88 WEBCORE_EXPORT void processDidResume(); 90 89 91 void stopAllMediaPlaybackForDocument( const Document&);90 void stopAllMediaPlaybackForDocument(DocumentIdentifier); 92 91 WEBCORE_EXPORT void stopAllMediaPlaybackForProcess(); 93 92 94 void suspendAllMediaPlaybackForDocument( const Document&);95 void resumeAllMediaPlaybackForDocument( const Document&);96 void suspendAllMediaBufferingForDocument( const Document&);97 void resumeAllMediaBufferingForDocument( const Document&);93 void suspendAllMediaPlaybackForDocument(DocumentIdentifier); 94 void resumeAllMediaPlaybackForDocument(DocumentIdentifier); 95 void suspendAllMediaBufferingForDocument(DocumentIdentifier); 96 void resumeAllMediaBufferingForDocument(DocumentIdentifier); 98 97 99 98 enum SessionRestrictionFlags { … … 146 145 147 146 void forEachSession(const Function<void(PlatformMediaSession&)>&); 148 void forEachDocumentSession( const Document&, const Function<void(PlatformMediaSession&)>&);147 void forEachDocumentSession(DocumentIdentifier, const Function<void(PlatformMediaSession&)>&); 149 148 bool anyOfSessions(const Function<bool(const PlatformMediaSession&)>&) const; 150 149
Note: See TracChangeset
for help on using the changeset viewer.