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);