[webkit-changes] [WebKit/WebKit] 446c43: Provide a fallback image to NowPlaying when a webs...

Jean-Yves Avenard noreply at github.com
Tue Aug 13 00:28:35 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 446c43cd723c47515e20b9c3f6cc7d848c07cbca
      https://github.com/WebKit/WebKit/commit/446c43cd723c47515e20b9c3f6cc7d848c07cbca
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2024-08-13 (Tue, 13 Aug 2024)

  Changed paths:
    A LayoutTests/http/tests/media/now-playing-info-default-artwork-favicon-expected.txt
    A LayoutTests/http/tests/media/now-playing-info-default-artwork-favicon.html
    M LayoutTests/http/tests/media/now-playing-info-media-session-artwork-favicon-expected.txt
    M LayoutTests/http/tests/media/now-playing-info-media-session-artwork-favicon.html
    M LayoutTests/media/now-playing-info-media-session-private-browsing-expected.txt
    M LayoutTests/media/now-playing-info-media-session-private-browsing.html
    M LayoutTests/media/now-playing-info-media-session-suspend-playback-expected.txt
    M LayoutTests/media/now-playing-info-media-session-suspend-playback.html
    M LayoutTests/media/video-test.js
    M LayoutTests/platform/glib/TestExpectations
    M LayoutTests/platform/mac-wk1/TestExpectations
    M Source/WebCore/Modules/mediasession/MediaMetadata.cpp
    M Source/WebCore/Modules/mediasession/MediaMetadata.h
    M Source/WebCore/Modules/mediasession/MediaSession.cpp
    M Source/WebCore/Modules/mediasession/MediaSession.h

  Log Message:
  -----------
  Provide a fallback image to NowPlaying when a website doesn't specify a MediaSession.metadata
https://bugs.webkit.org/show_bug.cgi?id=277944
rdar://133662839

Reviewed by Jer Noble.

Following-up on 282096 at main, handle the case where no MediaSession's Metadata is set. We will retrieve the document's favicon
if any.
We move the handling of looking for fallbacks from the MediaMetadata to the MediaSession, this allows to re-use already downloaded
favicons if the MediaMetadata content ever change.

Fly-by: some tests were intermittently failing in WK1 mode as they were always testing the same value and never updating it.

* LayoutTests/http/tests/media/now-playing-info-default-artwork-favicon-expected.txt: Added.
* LayoutTests/http/tests/media/now-playing-info-default-artwork-favicon.html: Copied from LayoutTests/http/tests/media/now-playing-info-media-session-artwork-favicon.html.
* LayoutTests/http/tests/media/now-playing-info-media-session-artwork-favicon-expected.txt:
* LayoutTests/http/tests/media/now-playing-info-media-session-artwork-favicon.html:
* LayoutTests/media/now-playing-info-media-session-private-browsing-expected.txt:
* LayoutTests/media/now-playing-info-media-session-private-browsing.html:
* LayoutTests/media/now-playing-info-media-session-suspend-playback-expected.txt:
* LayoutTests/media/now-playing-info-media-session-suspend-playback.html:
* LayoutTests/media/video-test.js:
(testExpectedEventuallyIgnoringError):
(testExpectedEventuallyWhileRunningBetweenTests):
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* Source/WebCore/Modules/mediasession/MediaMetadata.cpp:
(WebCore::MediaMetadata::create):
(WebCore::MediaMetadata::setTitle):
(WebCore::MediaMetadata::setArtist):
(WebCore::MediaMetadata::setAlbum):
(WebCore::MediaMetadata::setArtwork):
(WebCore::MediaMetadata::refreshArtworkImage):
(WebCore::MediaMetadata::tryNextArtworkImage): Explicitly test for m_session and its document, while they could never be null it makes the code easier to read.
(WebCore::MediaMetadata::MediaMetadata): Deleted.
(WebCore::MediaMetadata::maybeStartTimer): Deleted.
Simplify code introduced in 282096 at main, instead we will only ever look for a default image on the MediaMetadata creation if an artwork isn't set.
* Source/WebCore/Modules/mediasession/MediaMetadata.h:
(WebCore::MediaMetadata::title const): Deleted.
(WebCore::MediaMetadata::artist const): Deleted.
(WebCore::MediaMetadata::album const): Deleted.
(WebCore::MediaMetadata::artwork const): Deleted.
(WebCore::MediaMetadata::artworkSrc const): Deleted.
(WebCore::MediaMetadata::artworkImage const): Deleted.
(WebCore::MediaMetadata::metadata const): Deleted.
(WebCore::MediaMetadata::trackIdentifier const): Deleted.
* Source/WebCore/Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::~MediaSession):
(WebCore::MediaSession::notifyMetadataObservers):
(WebCore::MediaSession::updateNowPlayingInfo):
(WebCore::MediaSession::currentMetadata const):
* Source/WebCore/Modules/mediasession/MediaSession.h:

Canonical link: https://commits.webkit.org/282158@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list