Title: [275360] trunk/Source/WebCore
Revision
275360
Author
[email protected]
Date
2021-04-01 08:19:40 -0700 (Thu, 01 Apr 2021)

Log Message

Previous artwork isn't cleared when NowPlaying info doesn't contain an artwork
https://bugs.webkit.org/show_bug.cgi?id=224031
<rdar://76044544>

Patch by Jean-Yves Avenard <[email protected]> on 2021-04-01
Reviewed by Youenn Fablet.

Source/WebCore:

Manually tested, no framework available to test such change.

* platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo): use MRMediaRemoteSetNowPlayingInfoWithMergePolicy instead.
* platform/mac/MediaRemoteSoftLink.h: Soft link MRMediaRemoteSetNowPlayingInfoWithMergePolicy
* platform/mac/MediaRemoteSoftLink.mm:

Source/WebCore/PAL:

* pal/spi/mac/MediaRemoteSPI.h: Add MRMediaRemoteMergePolicy enum definitions.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (275359 => 275360)


--- trunk/Source/WebCore/ChangeLog	2021-04-01 15:17:27 UTC (rev 275359)
+++ trunk/Source/WebCore/ChangeLog	2021-04-01 15:19:40 UTC (rev 275360)
@@ -1,5 +1,20 @@
 2021-04-01  Jean-Yves Avenard  <[email protected]>
 
+        Previous artwork isn't cleared when NowPlaying info doesn't contain an artwork
+        https://bugs.webkit.org/show_bug.cgi?id=224031
+        <rdar://76044544>
+
+        Reviewed by Youenn Fablet.
+
+        Manually tested, no framework available to test such change.
+
+        * platform/audio/cocoa/MediaSessionManagerCocoa.mm:
+        (WebCore::MediaSessionManagerCocoa::setNowPlayingInfo): use MRMediaRemoteSetNowPlayingInfoWithMergePolicy instead.
+        * platform/mac/MediaRemoteSoftLink.h: Soft link MRMediaRemoteSetNowPlayingInfoWithMergePolicy
+        * platform/mac/MediaRemoteSoftLink.mm:
+
+2021-04-01  Jean-Yves Avenard  <[email protected]>
+
         Now Playing artwork doesn't update when changed.
         https://bugs.webkit.org/show_bug.cgi?id=223731
         <rdar://problem/75823923>

Modified: trunk/Source/WebCore/PAL/ChangeLog (275359 => 275360)


--- trunk/Source/WebCore/PAL/ChangeLog	2021-04-01 15:17:27 UTC (rev 275359)
+++ trunk/Source/WebCore/PAL/ChangeLog	2021-04-01 15:19:40 UTC (rev 275360)
@@ -1,5 +1,15 @@
 2021-04-01  Jean-Yves Avenard  <[email protected]>
 
+        Previous artwork isn't cleared when NowPlaying info doesn't contain an artwork
+        https://bugs.webkit.org/show_bug.cgi?id=224031
+        <rdar://76044544>
+
+        Reviewed by Youenn Fablet.
+
+        * pal/spi/mac/MediaRemoteSPI.h: Add MRMediaRemoteMergePolicy enum definitions.
+
+2021-04-01  Jean-Yves Avenard  <[email protected]>
+
         Now Playing artwork doesn't update when changed.
         https://bugs.webkit.org/show_bug.cgi?id=223731
         <rdar://problem/75823923>

Modified: trunk/Source/WebCore/PAL/pal/spi/mac/MediaRemoteSPI.h (275359 => 275360)


--- trunk/Source/WebCore/PAL/pal/spi/mac/MediaRemoteSPI.h	2021-04-01 15:17:27 UTC (rev 275359)
+++ trunk/Source/WebCore/PAL/pal/spi/mac/MediaRemoteSPI.h	2021-04-01 15:19:40 UTC (rev 275360)
@@ -91,6 +91,12 @@
 };
 typedef uint32_t MRNowPlayingClientVisibility;
 
+enum : uint8_t {
+    MRMediaRemoteMergePolicyUpdate = 0,
+    MRMediaRemoteMergePolicyReplace,
+};
+typedef uint8_t MRMediaRemoteMergePolicy;
+
 typedef uint32_t MRMediaRemoteError;
 typedef uint32_t MRSendCommandAppOptions;
 typedef uint32_t MRSendCommandError;
@@ -126,6 +132,7 @@
 Boolean MRMediaRemoteSetCanBeNowPlayingApplication(Boolean);
 void MRMediaRemoteSetNowPlayingApplicationPlaybackStateForOrigin(MROriginRef, MRPlaybackState, dispatch_queue_t replyQ, void(^completion)(MRMediaRemoteError));
 void MRMediaRemoteSetNowPlayingInfo(CFDictionaryRef);
+void MRMediaRemoteSetNowPlayingInfoWithMergePolicy(CFDictionaryRef, MRMediaRemoteMergePolicy);
 
 #pragma mark - MRAVRouting
 

Modified: trunk/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm (275359 => 275360)


--- trunk/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm	2021-04-01 15:17:27 UTC (rev 275359)
+++ trunk/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm	2021-04-01 15:19:40 UTC (rev 275360)
@@ -322,7 +322,7 @@
             WTFLogAlways("MRMediaRemoteSetNowPlayingApplicationPlaybackStateForOrigin(playing) failed with error %d", error);
 #endif
     });
-    MRMediaRemoteSetNowPlayingInfo(info.get());
+    MRMediaRemoteSetNowPlayingInfoWithMergePolicy(info.get(), MRMediaRemoteMergePolicyReplace);
 
     if (canLoad_MediaRemote_MRMediaRemoteSetNowPlayingVisibility()) {
         MRNowPlayingClientVisibility visibility = nowPlayingInfo.allowsNowPlayingControlsVisibility ? MRNowPlayingClientVisibilityAlwaysVisible : MRNowPlayingClientVisibilityNeverVisible;

Modified: trunk/Source/WebCore/platform/mac/MediaRemoteSoftLink.h (275359 => 275360)


--- trunk/Source/WebCore/platform/mac/MediaRemoteSoftLink.h	2021-04-01 15:17:27 UTC (rev 275359)
+++ trunk/Source/WebCore/platform/mac/MediaRemoteSoftLink.h	2021-04-01 15:19:40 UTC (rev 275360)
@@ -52,6 +52,8 @@
 #define MRMediaRemoteSetCanBeNowPlayingApplication softLink_MediaRemote_MRMediaRemoteSetCanBeNowPlayingApplication
 SOFT_LINK_FUNCTION_FOR_HEADER(WebCore, MediaRemote, MRMediaRemoteSetNowPlayingInfo, void, (CFDictionaryRef info), (info))
 #define MRMediaRemoteSetNowPlayingInfo softLink_MediaRemote_MRMediaRemoteSetNowPlayingInfo
+SOFT_LINK_FUNCTION_FOR_HEADER(WebCore, MediaRemote, MRMediaRemoteSetNowPlayingInfoWithMergePolicy, void, (CFDictionaryRef info, MRMediaRemoteMergePolicy mergePolicy), (info, mergePolicy))
+#define MRMediaRemoteSetNowPlayingInfoWithMergePolicy softLink_MediaRemote_MRMediaRemoteSetNowPlayingInfoWithMergePolicy
 SOFT_LINK_FUNCTION_FOR_HEADER(WebCore, MediaRemote, MRMediaRemoteSetNowPlayingApplicationPlaybackStateForOrigin, void, (MROriginRef origin, MRPlaybackState playbackState, dispatch_queue_t replyQ, void(^completion)(MRMediaRemoteError)), (origin, playbackState, replyQ, completion))
 #define MRMediaRemoteSetNowPlayingApplicationPlaybackStateForOrigin softLink_MediaRemote_MRMediaRemoteSetNowPlayingApplicationPlaybackStateForOrigin
 SOFT_LINK_FUNCTION_MAY_FAIL_FOR_HEADER(WebCore, MediaRemote, MRMediaRemoteSetParentApplication, void, (MROriginRef origin, CFStringRef parentAppDisplayID), (origin, parentAppDisplayID))

Modified: trunk/Source/WebCore/platform/mac/MediaRemoteSoftLink.mm (275359 => 275360)


--- trunk/Source/WebCore/platform/mac/MediaRemoteSoftLink.mm	2021-04-01 15:17:27 UTC (rev 275359)
+++ trunk/Source/WebCore/platform/mac/MediaRemoteSoftLink.mm	2021-04-01 15:19:40 UTC (rev 275360)
@@ -41,6 +41,7 @@
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, MediaRemote, MRMediaRemoteCommandInfoSetOptions, void, (MRMediaRemoteCommandInfoRef commandInfo, CFDictionaryRef options), (commandInfo, options))
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, MediaRemote, MRMediaRemoteSetCanBeNowPlayingApplication, Boolean, (Boolean flag), (flag))
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, MediaRemote, MRMediaRemoteSetNowPlayingInfo, void, (CFDictionaryRef info), (info))
+SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, MediaRemote, MRMediaRemoteSetNowPlayingInfoWithMergePolicy, void, (CFDictionaryRef info, MRMediaRemoteMergePolicy mergePolicy), (info, mergePolicy))
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, MediaRemote, MRMediaRemoteSetNowPlayingApplicationPlaybackStateForOrigin, void, (MROriginRef origin, MRPlaybackState playbackState, dispatch_queue_t replyQ, void(^completion)(MRMediaRemoteError)), (origin, playbackState, replyQ, completion))
 SOFT_LINK_FUNCTION_MAY_FAIL_FOR_SOURCE(WebCore, MediaRemote, MRMediaRemoteSetParentApplication, void, (MROriginRef origin, CFStringRef parentAppDisplayID), (origin, parentAppDisplayID))
 SOFT_LINK_CONSTANT_FOR_SOURCE(WebCore, MediaRemote, kMRMediaRemoteNowPlayingInfoTitle, CFStringRef);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to