Changeset 258024 in webkit
- Timestamp:
- Mar 6, 2020 12:52:52 PM (4 years ago)
- Location:
- trunk/Source
- Files:
-
- 1 added
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r258019 r258024 1 2020-03-06 Youenn Fablet <youenn@apple.com> 2 3 Use ObjectIdentifier to identify media sessions 4 https://bugs.webkit.org/show_bug.cgi?id=208710 5 6 Reviewed by Eric Carlson. 7 8 No change of behavior, except that the identifier is now stable over time and unique per process. 9 10 * Headers.cmake: 11 * WebCore.xcodeproj/project.pbxproj: 12 * html/HTMLMediaElement.cpp: 13 (WebCore::HTMLMediaElement::HTMLMediaElement): 14 (WebCore::HTMLMediaElement::mediaSessionUniqueIdentifier const): 15 * html/HTMLMediaElement.h: 16 * platform/audio/NowPlayingInfo.h: 17 (WebCore::NowPlayingInfo::decode): 18 * platform/audio/PlatformMediaSessionManager.h: 19 (WebCore::PlatformMediaSessionManager::lastUpdatedNowPlayingInfoUniqueIdentifier const): 20 * platform/audio/cocoa/MediaSessionManagerCocoa.h: 21 * platform/audio/cocoa/MediaSessionManagerCocoa.mm: 22 (MediaSessionManagerCocoa::setNowPlayingInfo): 23 (MediaSessionManagerCocoa::updateNowPlayingInfo): 24 * testing/Internals.cpp: 25 (WebCore::Internals::nowPlayingState const): 26 1 27 2020-03-06 Jason Lawrence <lawrence.j@apple.com> 2 28 -
trunk/Source/WebCore/Headers.cmake
r258015 r258024 951 951 platform/MediaSample.h 952 952 platform/MediaSelectionOption.h 953 platform/MediaSessionIdentifier.h 953 954 platform/MediaStrategy.h 954 955 platform/NowPlayingManager.h -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r258015 r258024 1056 1056 413CCD4A20DE034F0065A21A /* MockMediaDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 413CCD4820DE013C0065A21A /* MockMediaDevice.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1057 1057 413E00791DB0E4F2002341D2 /* MemoryRelease.h in Headers */ = {isa = PBXBuildFile; fileRef = 413E00781DB0E4DE002341D2 /* MemoryRelease.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1058 414460A22412994500814BE7 /* MediaSessionIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 414460A02412994100814BE7 /* MediaSessionIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1058 1059 414598C223C8D177002B9CC8 /* LocalSampleBufferDisplayLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 414598C123C8AD79002B9CC8 /* LocalSampleBufferDisplayLayer.mm */; }; 1059 1060 414B82051D6DF0E50077EBE3 /* StructuredClone.h in Headers */ = {isa = PBXBuildFile; fileRef = 414B82031D6DF0D90077EBE3 /* StructuredClone.h */; }; … … 7318 7319 413E007B1DB0E707002341D2 /* MemoryReleaseCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MemoryReleaseCocoa.mm; sourceTree = "<group>"; }; 7319 7320 413FC4CD1FD1DD8C00541C4B /* ServiceWorkerClientQueryOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServiceWorkerClientQueryOptions.h; sourceTree = "<group>"; }; 7321 414460A02412994100814BE7 /* MediaSessionIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSessionIdentifier.h; sourceTree = "<group>"; }; 7320 7322 414598BE23C8AAB8002B9CC8 /* SampleBufferDisplayLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SampleBufferDisplayLayer.h; sourceTree = "<group>"; }; 7321 7323 414598C023C8AD78002B9CC8 /* LocalSampleBufferDisplayLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalSampleBufferDisplayLayer.h; sourceTree = "<group>"; }; … … 25969 25971 CD641EC7181ED60100EE4C41 /* MediaSample.h */, 25970 25972 A17D275D1EAC579800BF01E7 /* MediaSelectionOption.h */, 25973 414460A02412994100814BE7 /* MediaSessionIdentifier.h */, 25971 25974 9B1229C623FE4D5F008CA751 /* MediaStrategy.h */, 25972 25975 BC772C4C0C4EB3040083285F /* MIMETypeRegistry.cpp */, … … 32795 32798 93F198F608245E59001E9ABC /* TextResourceDecoder.h in Headers */, 32796 32799 A824B4650E2EF2EA0081A7B7 /* TextRun.h in Headers */, 32800 414460A22412994500814BE7 /* MediaSessionIdentifier.h in Headers */, 32797 32801 448B1B7A0F3A2F9B0047A9E2 /* TextSizeAdjustment.h in Headers */, 32798 32802 9759E94014EF1CF80026A2DD /* TextTrack.h in Headers */, -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r257997 r258024 465 465 , m_logIdentifier(uniqueLogIdentifier()) 466 466 #endif 467 , m_mediaSessionIdentifier(MediaSessionIdentifier::generate()) 467 468 { 468 469 allMediaElements().add(this); … … 7648 7649 } 7649 7650 7650 uint64_t HTMLMediaElement::mediaSessionUniqueIdentifier() const 7651 { 7652 auto& url = m_currentSrc.string(); 7653 return url.impl() ? url.impl()->hash() : 0; 7651 MediaSessionIdentifier HTMLMediaElement::mediaSessionUniqueIdentifier() const 7652 { 7653 return m_mediaSessionIdentifier; 7654 7654 } 7655 7655 -
trunk/Source/WebCore/html/HTMLMediaElement.h
r257913 r258024 39 39 #include "MediaPlayer.h" 40 40 #include "MediaProducer.h" 41 #include "MediaSessionIdentifier.h" 41 42 #include "VisibilityChangeClient.h" 42 43 #include <wtf/Function.h> … … 593 594 void applicationDidBecomeActive(); 594 595 595 uint64_tmediaSessionUniqueIdentifier() const;596 MediaSessionIdentifier mediaSessionUniqueIdentifier() const; 596 597 String mediaSessionTitle() const; 597 598 String sourceApplicationIdentifier() const; … … 1212 1213 bool m_playingOnSecondScreen { false }; 1213 1214 bool m_removedBehaviorRestrictionsAfterFirstUserGesture { false }; 1215 MediaSessionIdentifier m_mediaSessionIdentifier; 1214 1216 }; 1215 1217 -
trunk/Source/WebCore/platform/audio/NowPlayingInfo.h
r257913 r258024 26 26 #pragma once 27 27 28 #include "MediaSessionIdentifier.h" 28 29 #include <wtf/text/WTFString.h> 29 30 … … 36 37 double currentTime { 0 }; 37 38 bool supportsSeeking { false }; 38 uint64_t uniqueIdentifier { 0 };39 MediaSessionIdentifier uniqueIdentifier; 39 40 bool isPlaying { false }; 40 41 bool allowsNowPlayingControlsVisibility { false }; … … 71 72 return { }; 72 73 73 uint64_tuniqueIdentifier;74 MediaSessionIdentifier uniqueIdentifier; 74 75 if (!decoder.decode(uniqueIdentifier)) 75 76 return { }; -
trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h
r258015 r258024 28 28 29 29 #include "DocumentIdentifier.h" 30 #include "MediaSessionIdentifier.h" 30 31 #include "PlatformMediaSession.h" 31 32 #include "Timer.h" … … 69 70 virtual double lastUpdatedNowPlayingDuration() const { return NAN; } 70 71 virtual double lastUpdatedNowPlayingElapsedTime() const { return NAN; } 71 virtual uint64_t lastUpdatedNowPlayingInfoUniqueIdentifier() const { return 0; }72 virtual MediaSessionIdentifier lastUpdatedNowPlayingInfoUniqueIdentifier() const { return { }; } 72 73 virtual bool registeredAsNowPlayingApplication() const { return false; } 73 74 virtual void prepareToSendUserMediaPermissionRequest() { } -
trunk/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h
r257913 r258024 54 54 double lastUpdatedNowPlayingDuration() const final { return m_lastUpdatedNowPlayingDuration; } 55 55 double lastUpdatedNowPlayingElapsedTime() const final { return m_lastUpdatedNowPlayingElapsedTime; } 56 uint64_tlastUpdatedNowPlayingInfoUniqueIdentifier() const final { return m_lastUpdatedNowPlayingInfoUniqueIdentifier; }56 MediaSessionIdentifier lastUpdatedNowPlayingInfoUniqueIdentifier() const final { return m_lastUpdatedNowPlayingInfoUniqueIdentifier; } 57 57 bool registeredAsNowPlayingApplication() const final { return m_registeredAsNowPlayingApplication; } 58 58 void prepareToSendUserMediaPermissionRequest() final; … … 104 104 double m_lastUpdatedNowPlayingDuration { NAN }; 105 105 double m_lastUpdatedNowPlayingElapsedTime { NAN }; 106 uint64_t m_lastUpdatedNowPlayingInfoUniqueIdentifier { 0 };106 MediaSessionIdentifier m_lastUpdatedNowPlayingInfoUniqueIdentifier; 107 107 108 108 GenericTaskQueue<Timer> m_nowPlayingUpdateTaskQueue; -
trunk/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
r257913 r258024 244 244 CFDictionarySetValue(info.get(), kMRMediaRemoteNowPlayingInfoPlaybackRate, cfRate.get()); 245 245 246 auto lastUpdatedNowPlayingInfoUniqueIdentifier = nowPlayingInfo.uniqueIdentifier ;246 auto lastUpdatedNowPlayingInfoUniqueIdentifier = nowPlayingInfo.uniqueIdentifier.toUInt64(); 247 247 auto cfIdentifier = adoptCF(CFNumberCreate(kCFAllocatorDefault, kCFNumberLongLongType, &lastUpdatedNowPlayingInfoUniqueIdentifier)); 248 248 CFDictionarySetValue(info.get(), kMRMediaRemoteNowPlayingInfoUniqueIdentifier, cfIdentifier.get()); … … 302 302 m_lastUpdatedNowPlayingDuration = NAN; 303 303 m_lastUpdatedNowPlayingElapsedTime = NAN; 304 m_lastUpdatedNowPlayingInfoUniqueIdentifier = 0;304 m_lastUpdatedNowPlayingInfoUniqueIdentifier = { }; 305 305 306 306 return; 307 307 } 308 308 309 ALWAYS_LOG(LOGIDENTIFIER, "title = \"", nowPlayingInfo->title, "\", isPlaying = ", nowPlayingInfo->isPlaying, ", duration = ", nowPlayingInfo->duration, ", now = ", nowPlayingInfo->currentTime, ", id = ", nowPlayingInfo->uniqueIdentifier , ", registered = ", m_registeredAsNowPlayingApplication);309 ALWAYS_LOG(LOGIDENTIFIER, "title = \"", nowPlayingInfo->title, "\", isPlaying = ", nowPlayingInfo->isPlaying, ", duration = ", nowPlayingInfo->duration, ", now = ", nowPlayingInfo->currentTime, ", id = ", nowPlayingInfo->uniqueIdentifier.toUInt64(), ", registered = ", m_registeredAsNowPlayingApplication); 310 310 311 311 platformStrategies()->mediaStrategy().setNowPlayingInfo(!m_registeredAsNowPlayingApplication, *nowPlayingInfo); -
trunk/Source/WebCore/testing/Internals.cpp
r257835 r258024 4166 4166 PlatformMediaSessionManager::sharedManager().lastUpdatedNowPlayingDuration(), 4167 4167 PlatformMediaSessionManager::sharedManager().lastUpdatedNowPlayingElapsedTime(), 4168 PlatformMediaSessionManager::sharedManager().lastUpdatedNowPlayingInfoUniqueIdentifier() ,4168 PlatformMediaSessionManager::sharedManager().lastUpdatedNowPlayingInfoUniqueIdentifier().toUInt64(), 4169 4169 PlatformMediaSessionManager::sharedManager().hasActiveNowPlayingSession(), 4170 4170 PlatformMediaSessionManager::sharedManager().registeredAsNowPlayingApplication() -
trunk/Source/WebKit/ChangeLog
r258020 r258024 1 2020-03-06 Youenn Fablet <youenn@apple.com> 2 3 Use ObjectIdentifier to identify media sessions 4 https://bugs.webkit.org/show_bug.cgi?id=208710 5 6 Reviewed by Eric Carlson. 7 8 * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: 9 (WebKit::WebPage::requestActiveNowPlayingSessionInfo): 10 1 11 2020-03-05 Jiewen Tan <jiewen_tan@apple.com> 2 12 -
trunk/Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
r257592 r258024 71 71 duration = sharedManager->lastUpdatedNowPlayingDuration(); 72 72 elapsedTime = sharedManager->lastUpdatedNowPlayingElapsedTime(); 73 uniqueIdentifier = sharedManager->lastUpdatedNowPlayingInfoUniqueIdentifier() ;73 uniqueIdentifier = sharedManager->lastUpdatedNowPlayingInfoUniqueIdentifier().toUInt64(); 74 74 registeredAsNowPlayingApplication = sharedManager->registeredAsNowPlayingApplication(); 75 75 }
Note: See TracChangeset
for help on using the changeset viewer.