Title: [277507] trunk
- Revision
- 277507
- Author
- [email protected]
- Date
- 2021-05-14 15:02:15 -0700 (Fri, 14 May 2021)
Log Message
Bad media session artwork URL results in blue "broken image" icon being shown in Now Playing
https://bugs.webkit.org/show_bug.cgi?id=225799
rdar://77990886
Reviewed by Eric Carlson.
Source/WebCore:
By default, when the image's URL doesn't point to an image the CachedImage
will return a default image consistent of a blue interrogation mark.
We need to explicitely check that an error occurred. The naming used in the
method didn't make this need obvious.
* Modules/mediasession/MediaMetadata.cpp:
(WebCore::ArtworkImageLoader::notifyFinished): Check for a status error.
* testing/Internals.cpp:
(WebCore::Internals::loadArtworkImage): Fix spelling
LayoutTests:
* fast/mediasession/metadata/artworkdownload-expected.txt:
* fast/mediasession/metadata/artworkdownload.html: Add test case.
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (277506 => 277507)
--- trunk/LayoutTests/ChangeLog 2021-05-14 21:35:29 UTC (rev 277506)
+++ trunk/LayoutTests/ChangeLog 2021-05-14 22:02:15 UTC (rev 277507)
@@ -1,3 +1,14 @@
+2021-05-14 Jean-Yves Avenard <[email protected]>
+
+ Bad media session artwork URL results in blue "broken image" icon being shown in Now Playing
+ https://bugs.webkit.org/show_bug.cgi?id=225799
+ rdar://77990886
+
+ Reviewed by Eric Carlson.
+
+ * fast/mediasession/metadata/artworkdownload-expected.txt:
+ * fast/mediasession/metadata/artworkdownload.html: Add test case.
+
2021-05-14 Lauro Moura <[email protected]>
[WPE] Bot exiting early with crashes in new window layout tests inside wl_proxy_marshal_constructor
Modified: trunk/LayoutTests/fast/mediasession/metadata/artworkdownload-expected.txt (277506 => 277507)
--- trunk/LayoutTests/fast/mediasession/metadata/artworkdownload-expected.txt 2021-05-14 21:35:29 UTC (rev 277506)
+++ trunk/LayoutTests/fast/mediasession/metadata/artworkdownload-expected.txt 2021-05-14 22:02:15 UTC (rev 277507)
@@ -1,3 +1,5 @@
PASS ensure loading artwork image method operates properly
+PASS ensure loading invalid artwork causes a failure
+PASS ensure loading a non-image causes a failure
Modified: trunk/LayoutTests/fast/mediasession/metadata/artworkdownload.html (277506 => 277507)
--- trunk/LayoutTests/fast/mediasession/metadata/artworkdownload.html 2021-05-14 21:35:29 UTC (rev 277506)
+++ trunk/LayoutTests/fast/mediasession/metadata/artworkdownload.html 2021-05-14 22:02:15 UTC (rev 277507)
@@ -9,16 +9,27 @@
promise_test((test) => {
if (!window.internals)
- var promise = Promise.resolve();
- else {
- var promise = internals.loadArtworkImage(IMAGE_SRC).then((data) => {
- assert_equals(data.width, 16);
- assert_equals(data.height, 16);
- });;
- }
- return promise;
+ return Promise.rejects("Test needs internals");
+ return internals.loadArtworkImage(IMAGE_SRC).then((data) => {
+ assert_equals(data.width, 16);
+ assert_equals(data.height, 16);
+ });
}, "ensure loading artwork image method operates properly");
+promise_test(async (test) => {
+ if (!window.internals)
+ return Promise.rejects("Test needs internals");
+
+ return promise_rejects(test, 'InvalidAccessError', internals.loadArtworkImage("bad_image.jpg"));
+}, "ensure loading invalid artwork causes a failure");
+
+promise_test(async (test) => {
+ if (!window.internals)
+ return Promise.rejects("Test needs internals");
+
+ return promise_rejects(test, 'InvalidAccessError', internals.loadArtworkImage(""));
+}, "ensure loading a non-image causes a failure");
+
</script>
</body>
</html>
Modified: trunk/Source/WebCore/ChangeLog (277506 => 277507)
--- trunk/Source/WebCore/ChangeLog 2021-05-14 21:35:29 UTC (rev 277506)
+++ trunk/Source/WebCore/ChangeLog 2021-05-14 22:02:15 UTC (rev 277507)
@@ -1,3 +1,21 @@
+2021-05-14 Jean-Yves Avenard <[email protected]>
+
+ Bad media session artwork URL results in blue "broken image" icon being shown in Now Playing
+ https://bugs.webkit.org/show_bug.cgi?id=225799
+ rdar://77990886
+
+ Reviewed by Eric Carlson.
+
+ By default, when the image's URL doesn't point to an image the CachedImage
+ will return a default image consistent of a blue interrogation mark.
+ We need to explicitely check that an error occurred. The naming used in the
+ method didn't make this need obvious.
+
+ * Modules/mediasession/MediaMetadata.cpp:
+ (WebCore::ArtworkImageLoader::notifyFinished): Check for a status error.
+ * testing/Internals.cpp:
+ (WebCore::Internals::loadArtworkImage): Fix spelling
+
2021-05-14 Devin Rousso <[email protected]>
Promote `-[WKWebView _pageExtendedBackgroundColor]` SPI to `-[WKWebView underPageBackgroundColor]` API
Modified: trunk/Source/WebCore/Modules/mediasession/MediaMetadata.cpp (277506 => 277507)
--- trunk/Source/WebCore/Modules/mediasession/MediaMetadata.cpp 2021-05-14 21:35:29 UTC (rev 277506)
+++ trunk/Source/WebCore/Modules/mediasession/MediaMetadata.cpp 2021-05-14 22:02:15 UTC (rev 277507)
@@ -72,7 +72,7 @@
void ArtworkImageLoader::notifyFinished(CachedResource& resource, const NetworkLoadMetrics&)
{
ASSERT_UNUSED(resource, &resource == m_cachedImage);
- if (m_cachedImage->loadFailedOrCanceled() || !m_cachedImage->image() || !m_cachedImage->image()->data() || m_cachedImage->image()->data()->isEmpty()) {
+ if (m_cachedImage->loadFailedOrCanceled() || m_cachedImage->errorOccurred() || !m_cachedImage->image() || !m_cachedImage->image()->data() || m_cachedImage->image()->data()->isEmpty()) {
m_callback(nullptr);
return;
}
Modified: trunk/Source/WebCore/testing/Internals.cpp (277506 => 277507)
--- trunk/Source/WebCore/testing/Internals.cpp 2021-05-14 21:35:29 UTC (rev 277506)
+++ trunk/Source/WebCore/testing/Internals.cpp 2021-05-14 22:02:15 UTC (rev 277507)
@@ -6217,7 +6217,7 @@
else
m_artworkImagePromise->reject(imageData.exception().code());
} else
- m_artworkImagePromise->reject(Exception { InvalidAccessError, "No image retrieve." });
+ m_artworkImagePromise->reject(Exception { InvalidAccessError, "No image retrieved." });
m_artworkImagePromise = nullptr;
});
m_artworkLoader->requestImageResource();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes