Diff
Modified: trunk/Source/WebCore/ChangeLog (256843 => 256844)
--- trunk/Source/WebCore/ChangeLog 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/ChangeLog 2020-02-18 19:42:31 UTC (rev 256844)
@@ -1,3 +1,44 @@
+2020-02-18 Youenn Fablet <you...@apple.com>
+
+ Remove PlatformMediaSessionClient dependency on Document
+ https://bugs.webkit.org/show_bug.cgi?id=207892
+
+ Reviewed by Eric Carlson.
+
+ Move DocumentIdentifier to Platform folder.
+ Use DocumentIdentifier instead of Document in PlatformMediaSession/Manager.
+ No change of behavior.
+
+ * Headers.cmake:
+ * Modules/mediastream/MediaStreamTrack.cpp:
+ (WebCore::MediaStreamTrack::hostingDocumentIdentifier const):
+ * Modules/mediastream/MediaStreamTrack.h:
+ * Modules/webaudio/AudioContext.cpp:
+ (WebCore::AudioContext::hostingDocumentIdentifier const):
+ (WebCore::AudioContext::hostingDocument const): Deleted.
+ * Modules/webaudio/AudioContext.h:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/Document.cpp:
+ (WebCore::Document::stopAllMediaPlayback):
+ (WebCore::Document::suspendAllMediaPlayback):
+ (WebCore::Document::resumeAllMediaPlayback):
+ (WebCore::Document::suspendAllMediaBuffering):
+ (WebCore::Document::resumeAllMediaBuffering):
+ * html/HTMLMediaElement.h:
+ * platform/DocumentIdentifier.h: Renamed from Source/WebCore/dom/DocumentIdentifier.h.
+ * platform/audio/PlatformMediaSession.cpp:
+ (WebCore::PlatformMediaSession::PlatformMediaSession):
+ * platform/audio/PlatformMediaSession.h:
+ * platform/audio/PlatformMediaSessionManager.cpp:
+ (WebCore::PlatformMediaSessionManager::stopAllMediaPlaybackForDocument):
+ (WebCore::PlatformMediaSessionManager::suspendAllMediaPlaybackForDocument):
+ (WebCore::PlatformMediaSessionManager::resumeAllMediaPlaybackForDocument):
+ (WebCore::PlatformMediaSessionManager::suspendAllMediaBufferingForDocument):
+ (WebCore::PlatformMediaSessionManager::resumeAllMediaBufferingForDocument):
+ (WebCore::PlatformMediaSessionManager::sessionsMatching const):
+ (WebCore::PlatformMediaSessionManager::forEachDocumentSession):
+ * platform/audio/PlatformMediaSessionManager.h:
+
2020-02-18 Zalan Bujtas <za...@apple.com>
[LFC][Quirk] Add additional escape reason to cover the case when body needs access to both the body and the ICB geometry
Modified: trunk/Source/WebCore/Headers.cmake (256843 => 256844)
--- trunk/Source/WebCore/Headers.cmake 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/Headers.cmake 2020-02-18 19:42:31 UTC (rev 256844)
@@ -380,7 +380,6 @@
dom/Document.h
dom/DocumentFragment.h
dom/DocumentFullscreen.h
- dom/DocumentIdentifier.h
dom/DocumentMarker.h
dom/DocumentMarkerController.h
dom/DocumentStorageAccess.h
@@ -925,6 +924,7 @@
platform/DateComponents.h
platform/Decimal.h
platform/DeferrableTask.h
+ platform/DocumentIdentifier.h
platform/DragData.h
platform/DragImage.h
platform/DragItem.h
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (256843 => 256844)
--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2020-02-18 19:42:31 UTC (rev 256844)
@@ -628,6 +628,12 @@
return document() ? document()->processingUserGestureForMedia() : false;
}
+DocumentIdentifier MediaStreamTrack::hostingDocumentIdentifier() const
+{
+ auto* document = downcast<Document>(m_scriptExecutionContext);
+ return document ? document->identifier() : DocumentIdentifier { };
+}
+
#if !RELEASE_LOG_DISABLED
WTFLogChannel& MediaStreamTrack::logChannel() const
{
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (256843 => 256844)
--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h 2020-02-18 19:42:31 UTC (rev 256844)
@@ -202,7 +202,7 @@
bool shouldOverrideBackgroundPlaybackRestriction(PlatformMediaSession::InterruptionType) const final { return false; }
String sourceApplicationIdentifier() const final;
bool canProduceAudio() const final;
- Document* hostingDocument() const final { return document(); }
+ DocumentIdentifier hostingDocumentIdentifier() const final;
bool processingUserGestureForMedia() const final;
bool shouldOverridePauseDuringRouteChange() const final { return true; }
Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp (256843 => 256844)
--- trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp 2020-02-18 19:42:31 UTC (rev 256844)
@@ -366,9 +366,10 @@
return downcast<Document>(m_scriptExecutionContext);
}
-Document* AudioContext::hostingDocument() const
+DocumentIdentifier AudioContext::hostingDocumentIdentifier() const
{
- return downcast<Document>(m_scriptExecutionContext);
+ auto* document = downcast<Document>(m_scriptExecutionContext);
+ return document ? document->identifier() : DocumentIdentifier { };
}
String AudioContext::sourceApplicationIdentifier() const
Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.h (256843 => 256844)
--- trunk/Source/WebCore/Modules/webaudio/AudioContext.h 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.h 2020-02-18 19:42:31 UTC (rev 256844)
@@ -107,7 +107,7 @@
Document* document() const; // ASSERTs if document no longer exists.
- Document* hostingDocument() const final;
+ DocumentIdentifier hostingDocumentIdentifier() const final;
AudioDestinationNode* destination() { return m_destinationNode.get(); }
size_t currentSampleFrame() const { return m_destinationNode ? m_destinationNode->currentSampleFrame() : 0; }
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (256843 => 256844)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2020-02-18 19:42:31 UTC (rev 256844)
@@ -1101,6 +1101,7 @@
41815C1E138319830057AAA4 /* WebCoreTestSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41815C1C138319830057AAA4 /* WebCoreTestSupport.cpp */; };
41815C1F138319830057AAA4 /* WebCoreTestSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 41815C1D138319830057AAA4 /* WebCoreTestSupport.h */; settings = {ATTRIBUTES = (Private, ); }; };
418205471E53E98C00D62207 /* RTCController.h in Headers */ = {isa = PBXBuildFile; fileRef = 418205451E53C8CD00D62207 /* RTCController.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 41826BF223FB597700B922B1 /* DocumentIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 41826BF123FB597000B922B1 /* DocumentIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
4184F5161EAF05A800F18BF0 /* OrientationNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 4184F5151EAF059800F18BF0 /* OrientationNotifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
4186BD3E213EE3400001826F /* LibWebRTCUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41D1A049213EDDFD0063FB6B /* LibWebRTCUtils.cpp */; };
4186BD3F213EE3430001826F /* LibWebRTCRtpSenderBackend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41D1A04B213EDDFE0063FB6B /* LibWebRTCRtpSenderBackend.cpp */; };
@@ -1252,7 +1253,6 @@
46DFF49C1DC2620B00B80B48 /* JSShadowRootMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 46DFF49A1DC261F900B80B48 /* JSShadowRootMode.h */; };
46E0C0DE23C006E9005E47AE /* DragEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 46E0C0DA23C006B3005E47AE /* DragEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
46E139F823D8B8EB0075848E /* HTTPCookieAcceptPolicyCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 46E139F623D8B8E70075848E /* HTTPCookieAcceptPolicyCocoa.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 46E1666E1FCC86A200C9710B /* DocumentIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 46E1666C1FCC868700C9710B /* DocumentIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
46E791491F97E01A00199739 /* JSVisibilityState.h in Headers */ = {isa = PBXBuildFile; fileRef = 46E791461F97E01700199739 /* JSVisibilityState.h */; };
46EB37CA1F97CCD200B65523 /* JSServiceWorkerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 46EB37C31F97CCCB00B65523 /* JSServiceWorkerClient.h */; };
46EB37CC1F97CCD200B65523 /* JSServiceWorkerClients.h in Headers */ = {isa = PBXBuildFile; fileRef = 46EB37C51F97CCCB00B65523 /* JSServiceWorkerClients.h */; };
@@ -7378,6 +7378,7 @@
4181707D1386EDF20057AAA4 /* WebCoreTestSupport.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = WebCoreTestSupport.xcconfig; sourceTree = "<group>"; };
418205451E53C8CD00D62207 /* RTCController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCController.h; sourceTree = "<group>"; };
418205481E53EAAD00D62207 /* RTCController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RTCController.cpp; sourceTree = "<group>"; };
+ 41826BF123FB597000B922B1 /* DocumentIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentIdentifier.h; sourceTree = "<group>"; };
4184F5151EAF059800F18BF0 /* OrientationNotifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OrientationNotifier.h; sourceTree = "<group>"; };
4186BD3B213EDE380001826F /* LibWebRTCRtpReceiverBackend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = LibWebRTCRtpReceiverBackend.h; path = libwebrtc/LibWebRTCRtpReceiverBackend.h; sourceTree = "<group>"; };
4186BD3D213EDE390001826F /* LibWebRTCRtpSenderBackend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = LibWebRTCRtpSenderBackend.h; path = libwebrtc/LibWebRTCRtpSenderBackend.h; sourceTree = "<group>"; };
@@ -7742,7 +7743,6 @@
46E0C0DC23C006B4005E47AE /* DragEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DragEvent.cpp; sourceTree = "<group>"; };
46E0C0DD23C006B4005E47AE /* DragEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DragEvent.idl; sourceTree = "<group>"; };
46E139F623D8B8E70075848E /* HTTPCookieAcceptPolicyCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPCookieAcceptPolicyCocoa.h; sourceTree = "<group>"; };
- 46E1666C1FCC868700C9710B /* DocumentIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentIdentifier.h; sourceTree = "<group>"; };
46E791451F97E01700199739 /* JSVisibilityState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVisibilityState.cpp; sourceTree = "<group>"; };
46E791461F97E01700199739 /* JSVisibilityState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVisibilityState.h; sourceTree = "<group>"; };
46EB37C21F97CCCB00B65523 /* JSServiceWorkerClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSServiceWorkerClient.cpp; sourceTree = "<group>"; };
@@ -25863,6 +25863,7 @@
45FEA5CD156DDE8C00654101 /* Decimal.cpp */,
45FEA5CE156DDE8C00654101 /* Decimal.h */,
CD83D35A211110820076E11C /* DeferrableTask.h */,
+ 41826BF123FB597000B922B1 /* DocumentIdentifier.h */,
A79546420B5C4CB4007B438F /* DragData.cpp */,
A7B6E69D0B291A9600D0529F /* DragData.h */,
A7CFB3CF0B7ED10A0070C32D /* DragImage.cpp */,
@@ -28044,7 +28045,6 @@
1A494ED50A123F1A00FDAFC1 /* DocumentFragment.idl */,
CD92F5102260FFEE00F87BB3 /* DocumentFullscreen.h */,
CD92F50F2260FFEE00F87BB3 /* DocumentFullscreen.idl */,
- 46E1666C1FCC868700C9710B /* DocumentIdentifier.h */,
ED2BA83B09A24B91006C0AC4 /* DocumentMarker.h */,
CE057FA31220731100A476D5 /* DocumentMarkerController.cpp */,
CE057FA41220731100A476D5 /* DocumentMarkerController.h */,
@@ -29671,7 +29671,6 @@
A8185F4009765766005826D9 /* Document.h in Headers */,
A8185F3D09765766005826D9 /* DocumentFragment.h in Headers */,
CD92F5132260FFEE00F87BB3 /* DocumentFullscreen.h in Headers */,
- 46E1666E1FCC86A200C9710B /* DocumentIdentifier.h in Headers */,
656D37360ADBA5DE00A4554D /* DocumentLoader.h in Headers */,
ED2BA83C09A24B91006C0AC4 /* DocumentMarker.h in Headers */,
CE057FA61220731100A476D5 /* DocumentMarkerController.h in Headers */,
@@ -30542,6 +30541,7 @@
947949381E0459FA00018D85 /* JSDeprecatedCSSOMValue.h in Headers */,
9479493A1E0459FA00018D85 /* JSDeprecatedCSSOMValueList.h in Headers */,
31FB1A66120A5D3F00DC02A0 /* JSDeviceMotionEvent.h in Headers */,
+ 41826BF223FB597700B922B1 /* DocumentIdentifier.h in Headers */,
59A86008119DAFA100DEF1EF /* JSDeviceOrientationEvent.h in Headers */,
659DDC8309E198BA001BF3C6 /* JSDocument.h in Headers */,
ADDA94C219687AA500453029 /* JSDocumentCustom.h in Headers */,
Modified: trunk/Source/WebCore/dom/Document.cpp (256843 => 256844)
--- trunk/Source/WebCore/dom/Document.cpp 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/dom/Document.cpp 2020-02-18 19:42:31 UTC (rev 256844)
@@ -1773,31 +1773,31 @@
void Document::stopAllMediaPlayback()
{
if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists())
- platformMediaSessionManager->stopAllMediaPlaybackForDocument(*this);
+ platformMediaSessionManager->stopAllMediaPlaybackForDocument(identifier());
}
void Document::suspendAllMediaPlayback()
{
if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists())
- platformMediaSessionManager->suspendAllMediaPlaybackForDocument(*this);
+ platformMediaSessionManager->suspendAllMediaPlaybackForDocument(identifier());
}
void Document::resumeAllMediaPlayback()
{
if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists())
- platformMediaSessionManager->resumeAllMediaPlaybackForDocument(*this);
+ platformMediaSessionManager->resumeAllMediaPlaybackForDocument(identifier());
}
void Document::suspendAllMediaBuffering()
{
if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists())
- platformMediaSessionManager->suspendAllMediaBufferingForDocument(*this);
+ platformMediaSessionManager->suspendAllMediaBufferingForDocument(identifier());
}
void Document::resumeAllMediaBuffering()
{
if (auto* platformMediaSessionManager = PlatformMediaSessionManager::sharedManagerIfExists())
- platformMediaSessionManager->resumeAllMediaBufferingForDocument(*this);
+ platformMediaSessionManager->resumeAllMediaBufferingForDocument(identifier());
}
#endif
Deleted: trunk/Source/WebCore/dom/DocumentIdentifier.h (256843 => 256844)
--- trunk/Source/WebCore/dom/DocumentIdentifier.h 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/dom/DocumentIdentifier.h 2020-02-18 19:42:31 UTC (rev 256844)
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include <wtf/ObjectIdentifier.h>
-
-namespace WebCore {
-
-enum DocumentIdentifierType { };
-using DocumentIdentifier = ObjectIdentifier<DocumentIdentifierType>;
-
-}
Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (256843 => 256844)
--- trunk/Source/WebCore/html/HTMLMediaElement.h 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h 2020-02-18 19:42:31 UTC (rev 256844)
@@ -204,7 +204,7 @@
bool inActiveDocument() const { return m_inActiveDocument; }
- Document* hostingDocument() const final { return &document(); }
+ DocumentIdentifier hostingDocumentIdentifier() const final { return document().identifier(); }
// DOM API
// error state
Copied: trunk/Source/WebCore/platform/DocumentIdentifier.h (from rev 256842, trunk/Source/WebCore/dom/DocumentIdentifier.h) (0 => 256844)
--- trunk/Source/WebCore/platform/DocumentIdentifier.h (rev 0)
+++ trunk/Source/WebCore/platform/DocumentIdentifier.h 2020-02-18 19:42:31 UTC (rev 256844)
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <wtf/ObjectIdentifier.h>
+
+namespace WebCore {
+
+enum DocumentIdentifierType { };
+using DocumentIdentifier = ObjectIdentifier<DocumentIdentifierType>;
+
+}
Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp (256843 => 256844)
--- trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp 2020-02-18 19:42:31 UTC (rev 256844)
@@ -118,7 +118,7 @@
, m_stateToRestore(Idle)
, m_notifyingClient(false)
#if !RELEASE_LOG_DISABLED
- , m_logger(client.hostingDocument()->logger())
+ , m_logger(client.logger())
, m_logIdentifier(uniqueLogIdentifier())
#endif
{
Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSession.h (256843 => 256844)
--- trunk/Source/WebCore/platform/audio/PlatformMediaSession.h 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSession.h 2020-02-18 19:42:31 UTC (rev 256844)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014-2015 Apple Inc. All rights reserved.
+ * Copyright (C) 2014-2020 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -23,9 +23,9 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef PlatformMediaSession_h
-#define PlatformMediaSession_h
+#pragma once
+#include "DocumentIdentifier.h"
#include "Timer.h"
#include <wtf/LoggerHelper.h>
#include <wtf/Noncopyable.h>
@@ -260,7 +260,7 @@
virtual bool isPlayingOnSecondScreen() const { return false; }
- virtual Document* hostingDocument() const = 0;
+ virtual DocumentIdentifier hostingDocumentIdentifier() const = 0;
virtual String sourceApplicationIdentifier() const = 0;
virtual bool processingUserGestureForMedia() const = 0;
@@ -271,6 +271,10 @@
virtual bool shouldOverridePauseDuringRouteChange() const { return false; }
+#if !RELEASE_LOG_DISABLED
+ virtual const Logger& logger() const = 0;
+#endif
+
protected:
virtual ~PlatformMediaSessionClient() = default;
};
@@ -310,5 +314,3 @@
};
} // namespace WTF
-
-#endif // PlatformMediaSession_h
Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp (256843 => 256844)
--- trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp 2020-02-18 19:42:31 UTC (rev 256844)
@@ -453,9 +453,9 @@
updateSessionState();
}
-void PlatformMediaSessionManager::stopAllMediaPlaybackForDocument(const Document& document)
+void PlatformMediaSessionManager::stopAllMediaPlaybackForDocument(DocumentIdentifier documentIdentifier)
{
- forEachDocumentSession(document, [](auto& session) {
+ forEachDocumentSession(documentIdentifier, [](auto& session) {
session.pauseSession();
});
}
@@ -467,35 +467,35 @@
});
}
-void PlatformMediaSessionManager::suspendAllMediaPlaybackForDocument(const Document& document)
+void PlatformMediaSessionManager::suspendAllMediaPlaybackForDocument(DocumentIdentifier documentIdentifier)
{
- forEachDocumentSession(document, [](auto& session) {
+ forEachDocumentSession(documentIdentifier, [](auto& session) {
session.beginInterruption(PlatformMediaSession::PlaybackSuspended);
});
}
-void PlatformMediaSessionManager::resumeAllMediaPlaybackForDocument(const Document& document)
+void PlatformMediaSessionManager::resumeAllMediaPlaybackForDocument(DocumentIdentifier documentIdentifier)
{
- forEachDocumentSession(document, [](auto& session) {
+ forEachDocumentSession(documentIdentifier, [](auto& session) {
session.endInterruption(PlatformMediaSession::MayResumePlaying);
});
}
-void PlatformMediaSessionManager::suspendAllMediaBufferingForDocument(const Document& document)
+void PlatformMediaSessionManager::suspendAllMediaBufferingForDocument(DocumentIdentifier documentIdentifier)
{
- forEachDocumentSession(document, [](auto& session) {
+ forEachDocumentSession(documentIdentifier, [](auto& session) {
session.suspendBuffering();
});
}
-void PlatformMediaSessionManager::resumeAllMediaBufferingForDocument(const Document& document)
+void PlatformMediaSessionManager::resumeAllMediaBufferingForDocument(DocumentIdentifier documentIdentifier)
{
- forEachDocumentSession(document, [](auto& session) {
+ forEachDocumentSession(documentIdentifier, [](auto& session) {
session.resumeBuffering();
});
}
-Vector<WeakPtr<PlatformMediaSession>> PlatformMediaSessionManager::sessionsMatching(const WTF::Function<bool(const PlatformMediaSession&)>& filter) const
+Vector<WeakPtr<PlatformMediaSession>> PlatformMediaSessionManager::sessionsMatching(const Function<bool(const PlatformMediaSession&)>& filter) const
{
Vector<WeakPtr<PlatformMediaSession>> matchingSessions;
for (auto& session : m_sessions) {
@@ -514,10 +514,10 @@
}
}
-void PlatformMediaSessionManager::forEachDocumentSession(const Document& document, const Function<void(PlatformMediaSession&)>& callback)
+void PlatformMediaSessionManager::forEachDocumentSession(DocumentIdentifier documentIdentifier, const Function<void(PlatformMediaSession&)>& callback)
{
- forEachMatchingSession([&document](auto& session) {
- return session.client().hostingDocument() == &document;
+ forEachMatchingSession([documentIdentifier](auto& session) {
+ return session.client().hostingDocumentIdentifier() == documentIdentifier;
}, [&callback](auto& session) {
callback(session);
});
Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h (256843 => 256844)
--- trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h 2020-02-18 19:41:25 UTC (rev 256843)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h 2020-02-18 19:42:31 UTC (rev 256844)
@@ -27,6 +27,7 @@
#define PlatformMediaSessionManager_h
#include "AudioHardwareListener.h"
+#include "DocumentIdentifier.h"
#include "PlatformMediaSession.h"
#include "RemoteCommandListener.h"
#include "Timer.h"
@@ -36,8 +37,6 @@
namespace WebCore {
-class Document;
-class HTMLMediaElement;
class PlatformMediaSession;
class RemoteCommandListener;
@@ -88,13 +87,13 @@
WEBCORE_EXPORT void processWillSuspend();
WEBCORE_EXPORT void processDidResume();
- void stopAllMediaPlaybackForDocument(const Document&);
+ void stopAllMediaPlaybackForDocument(DocumentIdentifier);
WEBCORE_EXPORT void stopAllMediaPlaybackForProcess();
- void suspendAllMediaPlaybackForDocument(const Document&);
- void resumeAllMediaPlaybackForDocument(const Document&);
- void suspendAllMediaBufferingForDocument(const Document&);
- void resumeAllMediaBufferingForDocument(const Document&);
+ void suspendAllMediaPlaybackForDocument(DocumentIdentifier);
+ void resumeAllMediaPlaybackForDocument(DocumentIdentifier);
+ void suspendAllMediaBufferingForDocument(DocumentIdentifier);
+ void resumeAllMediaBufferingForDocument(DocumentIdentifier);
enum SessionRestrictionFlags {
NoRestrictions = 0,
@@ -145,7 +144,7 @@
virtual void removeSession(PlatformMediaSession&);
void forEachSession(const Function<void(PlatformMediaSession&)>&);
- void forEachDocumentSession(const Document&, const Function<void(PlatformMediaSession&)>&);
+ void forEachDocumentSession(DocumentIdentifier, const Function<void(PlatformMediaSession&)>&);
bool anyOfSessions(const Function<bool(const PlatformMediaSession&)>&) const;
AudioHardwareListener* audioHardwareListener() { return m_audioHardwareListener.get(); }