Title: [282513] trunk
Revision
282513
Author
[email protected]
Date
2021-09-16 01:56:57 -0700 (Thu, 16 Sep 2021)

Log Message

Disable display-p3 canvas and ImageData on platforms other than Monterey+ and iOS 15+
https://bugs.webkit.org/show_bug.cgi?id=230139
<rdar://81828819>

Reviewed by Sam Weinig.

Source/WebCore:

* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::write):
(WebCore::CloneDeserializer::read):
* html/canvas/PredefinedColorSpace.cpp:
(WebCore::toDestinationColorSpace):
(WebCore::toPredefinedColorSpace):
* html/canvas/PredefinedColorSpace.h:
* html/canvas/PredefinedColorSpace.idl:

Source/WTF:

Add HAVE(CORE_ANIMATION_FIX_FOR_RADAR_78402035) to represent whether
CoreAnimation has a fix for a bug that prevents Display P3 canvas
rendering operations from behaving correctly.

Add ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3) to represent whether the
"display-p3" values of the PredefinedColorSpace IDL enum is enabled.
This in turn controls whether Display P3 canvases and ImageData objects
can be created. We turn this on only for platforms where
ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3), since that is what the
canvas and ImageData backing stores use, and only if
HAVE(CORE_ANIMATION_FIX_FOR_RADAR_78402035). The result is that these
features are only enabled on macOS Monterey+ and iOS 15+.

* wtf/PlatformEnable.h:
* wtf/PlatformEnableCocoa.h:
* wtf/PlatformHave.h:

LayoutTests:

* TestExpectations:
* platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
* platform/ios-14/TestExpectations:
* platform/ios/TestExpectations:
* platform/ios/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
* platform/mac-bigsur/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
* platform/mac-catalina/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
* platform/mac/TestExpectations:

Modified Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (282512 => 282513)


--- trunk/LayoutTests/ChangeLog	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/LayoutTests/ChangeLog	2021-09-16 08:56:57 UTC (rev 282513)
@@ -1,3 +1,20 @@
+2021-09-16  Cameron McCormack  <[email protected]>
+
+        Disable display-p3 canvas and ImageData on platforms other than Monterey+ and iOS 15+
+        https://bugs.webkit.org/show_bug.cgi?id=230139
+        <rdar://81828819>
+
+        Reviewed by Sam Weinig.
+
+        * TestExpectations:
+        * platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
+        * platform/ios-14/TestExpectations:
+        * platform/ios/TestExpectations:
+        * platform/ios/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
+        * platform/mac-bigsur/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
+        * platform/mac-catalina/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
+        * platform/mac/TestExpectations:
+
 2021-09-15  Alex Christensen  <[email protected]>
 
         Add IDL skeleton for SharedWorker

Modified: trunk/LayoutTests/TestExpectations (282512 => 282513)


--- trunk/LayoutTests/TestExpectations	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/LayoutTests/TestExpectations	2021-09-16 08:56:57 UTC (rev 282513)
@@ -5247,6 +5247,21 @@
 # Invalid test. Tests color(lab ...) which has been removed from the standard.
 imported/w3c/web-platform-tests/css/css-color/predefined-013.html [ Skip ]
 
+# display-p3 canvas and ImageData are Cocoa only for now.
+fast/canvas/canvas-color-space-display-p3-ImageData.html [ Failure ]
+fast/canvas/canvas-color-space-display-p3.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.shadow.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.strokeText.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.p3.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.srgb.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toBlob.p3.canvas.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toBlob.with.putImageData.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.p3.canvas.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.with.putImageData.html [ Failure ]
+storage/indexeddb/structured-clone-image-data-display-p3.html [ Failure ]
+
 webkit.org/b/226942 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https.html [ Pass Failure ]
 
 webkit.org/b/227849 imported/w3c/web-platform-tests/css/css-overflow/overflow-body-propagation-007.html [ Skip ]

Deleted: trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt (282512 => 282513)


--- trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt	2021-09-16 08:56:57 UTC (rev 282513)
@@ -1,43 +0,0 @@
-
-PASS Overall test
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_sRGB_opaque.png vs 2x2_16bit_sRGB_opaque.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_sRGB_opaque.png vs 2x2_16bit_interlaced_sRGB_opaque.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_sRGB_transparent.png vs 2x2_16bit_sRGB_transparent.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_sRGB_transparent.png vs 2x2_16bit_interlaced_sRGB_transparent.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_AdobeRGB_opaque.png vs 2x2_16bit_AdobeRGB_opaque.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_AdobeRGB_opaque.png vs 2x2_16bit_interlaced_AdobeRGB_opaque.png
-FAIL Canvas color params: srgb, uint8. Testing 2x2_8bit_AdobeRGB_transparent.png vs 2x2_16bit_AdobeRGB_transparent.png assert_array_approx_equals: property 2, expected 166 +/- 8, expected 166 but got 157
-FAIL Canvas color params: srgb, uint8. Testing 2x2_8bit_AdobeRGB_transparent.png vs 2x2_16bit_interlaced_AdobeRGB_transparent.png assert_array_approx_equals: property 2, expected 166 +/- 8, expected 166 but got 157
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_DisplayP3_opaque.png vs 2x2_16bit_DisplayP3_opaque.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_DisplayP3_opaque.png vs 2x2_16bit_interlaced_DisplayP3_opaque.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_DisplayP3_transparent.png vs 2x2_16bit_DisplayP3_transparent.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_DisplayP3_transparent.png vs 2x2_16bit_interlaced_DisplayP3_transparent.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_ProPhoto_opaque.png vs 2x2_16bit_ProPhoto_opaque.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_ProPhoto_opaque.png vs 2x2_16bit_interlaced_ProPhoto_opaque.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_ProPhoto_transparent.png vs 2x2_16bit_ProPhoto_transparent.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_ProPhoto_transparent.png vs 2x2_16bit_interlaced_ProPhoto_transparent.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_Rec2020_opaque.png vs 2x2_16bit_Rec2020_opaque.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_Rec2020_opaque.png vs 2x2_16bit_interlaced_Rec2020_opaque.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_Rec2020_transparent.png vs 2x2_16bit_Rec2020_transparent.png
-PASS Canvas color params: srgb, uint8. Testing 2x2_8bit_Rec2020_transparent.png vs 2x2_16bit_interlaced_Rec2020_transparent.png
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_sRGB_opaque.png vs 2x2_16bit_sRGB_opaque.png assert_array_approx_equals: property 2, expected 179 +/- 0.05, expected 179 but got 178
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_sRGB_opaque.png vs 2x2_16bit_interlaced_sRGB_opaque.png assert_array_approx_equals: property 2, expected 179 +/- 0.05, expected 179 but got 178
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_sRGB_transparent.png vs 2x2_16bit_sRGB_transparent.png assert_array_approx_equals: property 2, expected 160 +/- 0.05, expected 160 but got 158
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_sRGB_transparent.png vs 2x2_16bit_interlaced_sRGB_transparent.png assert_array_approx_equals: property 2, expected 160 +/- 0.05, expected 160 but got 158
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_AdobeRGB_opaque.png vs 2x2_16bit_AdobeRGB_opaque.png assert_array_approx_equals: property 0, expected 131 +/- 0.05, expected 131 but got 128
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_AdobeRGB_opaque.png vs 2x2_16bit_interlaced_AdobeRGB_opaque.png assert_array_approx_equals: property 0, expected 131 +/- 0.05, expected 131 but got 128
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_AdobeRGB_transparent.png vs 2x2_16bit_AdobeRGB_transparent.png assert_array_approx_equals: property 0, expected 97 +/- 0.05, expected 97 but got 92
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_AdobeRGB_transparent.png vs 2x2_16bit_interlaced_AdobeRGB_transparent.png assert_array_approx_equals: property 0, expected 97 +/- 0.05, expected 97 but got 92
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_DisplayP3_opaque.png vs 2x2_16bit_DisplayP3_opaque.png assert_array_approx_equals: property 10, expected 250 +/- 0.05, expected 250 but got 249
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_DisplayP3_opaque.png vs 2x2_16bit_interlaced_DisplayP3_opaque.png assert_array_approx_equals: property 10, expected 250 +/- 0.05, expected 250 but got 249
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_DisplayP3_transparent.png vs 2x2_16bit_DisplayP3_transparent.png assert_array_approx_equals: property 2, expected 160 +/- 0.05, expected 160 but got 158
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_DisplayP3_transparent.png vs 2x2_16bit_interlaced_DisplayP3_transparent.png assert_array_approx_equals: property 2, expected 160 +/- 0.05, expected 160 but got 158
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_ProPhoto_opaque.png vs 2x2_16bit_ProPhoto_opaque.png assert_array_approx_equals: property 0, expected 132 +/- 0.05, expected 132 but got 134
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_ProPhoto_opaque.png vs 2x2_16bit_interlaced_ProPhoto_opaque.png assert_array_approx_equals: property 0, expected 132 +/- 0.05, expected 132 but got 134
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_ProPhoto_transparent.png vs 2x2_16bit_ProPhoto_transparent.png assert_array_approx_equals: property 6, expected 38 +/- 0.05, expected 38 but got 31
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_ProPhoto_transparent.png vs 2x2_16bit_interlaced_ProPhoto_transparent.png assert_array_approx_equals: property 6, expected 38 +/- 0.05, expected 38 but got 31
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_Rec2020_opaque.png vs 2x2_16bit_Rec2020_opaque.png assert_array_approx_equals: property 10, expected 250 +/- 0.05, expected 250 but got 249
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_Rec2020_opaque.png vs 2x2_16bit_interlaced_Rec2020_opaque.png assert_array_approx_equals: property 10, expected 250 +/- 0.05, expected 250 but got 249
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_Rec2020_transparent.png vs 2x2_16bit_Rec2020_transparent.png assert_array_approx_equals: property 5, expected 181 +/- 0.05, expected 181 but got 180
-FAIL Canvas color params: srgb, float16. Testing 2x2_8bit_Rec2020_transparent.png vs 2x2_16bit_interlaced_Rec2020_transparent.png assert_array_approx_equals: property 5, expected 181 +/- 0.05, expected 181 but got 180
-

Modified: trunk/LayoutTests/platform/ios/TestExpectations (282512 => 282513)


--- trunk/LayoutTests/platform/ios/TestExpectations	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/LayoutTests/platform/ios/TestExpectations	2021-09-16 08:56:57 UTC (rev 282513)
@@ -3484,6 +3484,21 @@
 webkit.org/b/228176 fast/text/variable-system-font.html [ ImageOnlyFailure ]
 webkit.org/b/228176 fast/text/variable-system-font-2.html [ Pass ]
 
+# display-p3 canvas and ImageData are Cocoa only for now.
+fast/canvas/canvas-color-space-display-p3-ImageData.html [ Pass ]
+fast/canvas/canvas-color-space-display-p3.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.shadow.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.strokeText.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.p3.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.srgb.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toBlob.p3.canvas.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toBlob.with.putImageData.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.p3.canvas.html [ Pass ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.with.putImageData.html [ Pass ]
+storage/indexeddb/structured-clone-image-data-display-p3.html [ Pass ]
+
 # Show 1px diff in the result. Maybe hitting the background bleed avoidance code path.
 webkit.org/b/229397 imported/w3c/web-platform-tests/css/css-writing-modes/abs-pos-non-replaced-vlr-109.xht [ ImageOnlyFailure ]
 webkit.org/b/229397 imported/w3c/web-platform-tests/css/css-writing-modes/abs-pos-non-replaced-vlr-125.xht [ ImageOnlyFailure ]

Modified: trunk/LayoutTests/platform/ios-14/TestExpectations (282512 => 282513)


--- trunk/LayoutTests/platform/ios-14/TestExpectations	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/LayoutTests/platform/ios-14/TestExpectations	2021-09-16 08:56:57 UTC (rev 282513)
@@ -68,6 +68,26 @@
 # Privacy Transparency tests are iOS15 only.
 http/tests/app-privacy-report/ [ Skip ]
 
+# display-p3 canvas and ImageData are iOS 15+.
+fast/canvas/canvas-color-space-display-p3-ImageData.html [ Failure ]
+fast/canvas/canvas-color-space-display-p3.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.shadow.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.strokeText.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.p3.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.srgb.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toBlob.p3.canvas.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toBlob.with.putImageData.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.p3.canvas.html [ Failure ]
+imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.with.putImageData.html [ Failure ]
+storage/indexeddb/structured-clone-image-data-display-p3.html [ Failure ]
+
+#webkit.org/b/229573
+imported/w3c/web-platform-tests/service-workers/service-worker/getregistrations.https.html [ Pass Failure ]
+imported/w3c/web-platform-tests/service-workers/service-worker/register-default-scope.https.html [ Pass Failure ]
+imported/w3c/web-platform-tests/service-workers/service-worker/http-to-https-redirect-and-register.https.html [ Pass Failure ]
+
 # rdar://79084756 ((r278618) media/modern-media-controls /overflow-support/chapters.html is timing out since introduction (226828))
 media/modern-media-controls/overflow-support/chapters.html [ Pass ]
 

Modified: trunk/LayoutTests/platform/mac/TestExpectations (282512 => 282513)


--- trunk/LayoutTests/platform/mac/TestExpectations	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2021-09-16 08:56:57 UTC (rev 282513)
@@ -2343,6 +2343,21 @@
 
 webkit.org/b/230116 imported/w3c/web-platform-tests/webrtc-extensions/transfer-datachannel.html [ Pass Failure ]
 
+# display-p3 canvas and ImageData are Cocoa only for now.
+[ Monterey+ ] fast/canvas/canvas-color-space-display-p3-ImageData.html [ Pass ]
+[ Monterey+ ] fast/canvas/canvas-color-space-display-p3.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.fillText.shadow.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.strokeText.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.p3.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.srgb.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toBlob.p3.canvas.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toBlob.with.putImageData.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.p3.canvas.html [ Pass ]
+[ Monterey+ ] imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.with.putImageData.html [ Pass ]
+[ Monterey+ ] storage/indexeddb/structured-clone-image-data-display-p3.html [ Pass ]
+
 # rdar://82132196 (20 webkit imported/w3c/web-platform-tests/css/ layout tests failing)
 [ Monterey ] imported/w3c/web-platform-tests/css/css-backgrounds/background-position/subpixel-position-center.tentative.html [ Pass ImageOnlyFailure ]
 [ Monterey ] imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-016.html [ Pass ImageOnlyFailure ]

Modified: trunk/Source/WTF/ChangeLog (282512 => 282513)


--- trunk/Source/WTF/ChangeLog	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/Source/WTF/ChangeLog	2021-09-16 08:56:57 UTC (rev 282513)
@@ -1,3 +1,28 @@
+2021-09-16  Cameron McCormack  <[email protected]>
+
+        Disable display-p3 canvas and ImageData on platforms other than Monterey+ and iOS 15+
+        https://bugs.webkit.org/show_bug.cgi?id=230139
+        <rdar://81828819>
+
+        Reviewed by Sam Weinig.
+
+        Add HAVE(CORE_ANIMATION_FIX_FOR_RADAR_78402035) to represent whether
+        CoreAnimation has a fix for a bug that prevents Display P3 canvas
+        rendering operations from behaving correctly.
+
+        Add ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3) to represent whether the
+        "display-p3" values of the PredefinedColorSpace IDL enum is enabled.
+        This in turn controls whether Display P3 canvases and ImageData objects
+        can be created. We turn this on only for platforms where
+        ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3), since that is what the
+        canvas and ImageData backing stores use, and only if
+        HAVE(CORE_ANIMATION_FIX_FOR_RADAR_78402035). The result is that these
+        features are only enabled on macOS Monterey+ and iOS 15+.
+
+        * wtf/PlatformEnable.h:
+        * wtf/PlatformEnableCocoa.h:
+        * wtf/PlatformHave.h:
+
 2021-09-15  Philip Chimento  <[email protected]>
 
         Fixes for build-webkit --minimal

Modified: trunk/Source/WTF/wtf/PlatformEnable.h (282512 => 282513)


--- trunk/Source/WTF/wtf/PlatformEnable.h	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/Source/WTF/wtf/PlatformEnable.h	2021-09-16 08:56:57 UTC (rev 282513)
@@ -888,10 +888,14 @@
 #define ENABLE_LLINT_EMBEDDED_OPCODE_ID 1
 #endif
 
+#if !defined(ENABLE_PREDEFINED_COLOR_SPACE_DISPLAY_P3)
+#define ENABLE_PREDEFINED_COLOR_SPACE_DISPLAY_P3 0
+#endif
 
 
 
 
+
 /* Asserts, invariants for macro definitions */
 
 #if ENABLE(MEDIA_CONTROLS_SCRIPT) && !ENABLE(VIDEO)
@@ -925,3 +929,7 @@
 #endif
 
 #endif
+
+#if ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3) && !ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3)
+#error "ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3) requires ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3)"
+#endif

Modified: trunk/Source/WTF/wtf/PlatformEnableCocoa.h (282512 => 282513)


--- trunk/Source/WTF/wtf/PlatformEnableCocoa.h	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/Source/WTF/wtf/PlatformEnableCocoa.h	2021-09-16 08:56:57 UTC (rev 282513)
@@ -714,3 +714,7 @@
 #if !defined(ENABLE_IMAGE_ANALYSIS_FOR_MACHINE_READABLE_CODES) && HAVE(VK_IMAGE_ANALYSIS_FOR_MACHINE_READABLE_CODES)
 #define ENABLE_IMAGE_ANALYSIS_FOR_MACHINE_READABLE_CODES 1
 #endif
+
+#if !defined(ENABLE_PREDEFINED_COLOR_SPACE_DISPLAY_P3) && HAVE(CORE_ANIMATION_FIX_FOR_RADAR_78402035)
+#define ENABLE_PREDEFINED_COLOR_SPACE_DISPLAY_P3 1
+#endif

Modified: trunk/Source/WTF/wtf/PlatformHave.h (282512 => 282513)


--- trunk/Source/WTF/wtf/PlatformHave.h	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/Source/WTF/wtf/PlatformHave.h	2021-09-16 08:56:57 UTC (rev 282513)
@@ -1111,3 +1111,10 @@
 #if (PLATFORM(IOS) && !PLATFORM(IOS_FAMILY_SIMULATOR)) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 150000
 #define HAVE_SYSTEM_STATUS 1
 #endif
+
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 120000) \
+    || (((PLATFORM(IOS) && !PLATFORM(IOS_FAMILY_SIMULATOR)) || PLATFORM(MACCATALYST)) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 150000) \
+    || (PLATFORM(WATCHOS) && !PLATFORM(IOS_FAMILY_SIMULATOR) && __WATCH_OS_VERSION_MIN_REQUIRED >= 80000) \
+    || (PLATFORM(APPLETV) && !PLATFORM(IOS_FAMILY_SIMULATOR) && __TV_OS_VERSION_MIN_REQUIRED >= 150000)
+#define HAVE_CORE_ANIMATION_FIX_FOR_RADAR_78402035 1
+#endif

Modified: trunk/Source/WebCore/ChangeLog (282512 => 282513)


--- trunk/Source/WebCore/ChangeLog	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/Source/WebCore/ChangeLog	2021-09-16 08:56:57 UTC (rev 282513)
@@ -1,3 +1,20 @@
+2021-09-16  Cameron McCormack  <[email protected]>
+
+        Disable display-p3 canvas and ImageData on platforms other than Monterey+ and iOS 15+
+        https://bugs.webkit.org/show_bug.cgi?id=230139
+        <rdar://81828819>
+
+        Reviewed by Sam Weinig.
+
+        * bindings/js/SerializedScriptValue.cpp:
+        (WebCore::CloneSerializer::write):
+        (WebCore::CloneDeserializer::read):
+        * html/canvas/PredefinedColorSpace.cpp:
+        (WebCore::toDestinationColorSpace):
+        (WebCore::toPredefinedColorSpace):
+        * html/canvas/PredefinedColorSpace.h:
+        * html/canvas/PredefinedColorSpace.idl:
+
 2021-09-16  Youenn Fablet  <[email protected]>
 
         Use libwebrtc OnStandardizedIceConnectionChange callback instead of OnIceConnectionChange

Modified: trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp (282512 => 282513)


--- trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp	2021-09-16 08:56:57 UTC (rev 282513)
@@ -237,7 +237,7 @@
 
 enum class PredefinedColorSpaceTag : uint8_t {
     SRGB = 0
-#if ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3)
+#if ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3)
     , DisplayP3 = 1
 #endif
 };
@@ -1564,7 +1564,7 @@
         case PredefinedColorSpace::SRGB:
             writeLittleEndian<uint8_t>(m_buffer, static_cast<uint8_t>(PredefinedColorSpaceTag::SRGB));
             break;
-#if ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3)
+#if ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3)
         case PredefinedColorSpace::DisplayP3:
             writeLittleEndian<uint8_t>(m_buffer, static_cast<uint8_t>(PredefinedColorSpaceTag::DisplayP3));
             break;
@@ -2561,7 +2561,7 @@
         case PredefinedColorSpaceTag::SRGB:
             result = PredefinedColorSpace::SRGB;
             return true;
-#if ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3)
+#if ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3)
         case PredefinedColorSpaceTag::DisplayP3:
             result = PredefinedColorSpace::DisplayP3;
             return true;

Modified: trunk/Source/WebCore/html/canvas/PredefinedColorSpace.cpp (282512 => 282513)


--- trunk/Source/WebCore/html/canvas/PredefinedColorSpace.cpp	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/Source/WebCore/html/canvas/PredefinedColorSpace.cpp	2021-09-16 08:56:57 UTC (rev 282513)
@@ -35,7 +35,7 @@
     switch (colorSpace) {
     case PredefinedColorSpace::SRGB:
         return DestinationColorSpace::SRGB();
-#if ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3)
+#if ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3)
     case PredefinedColorSpace::DisplayP3:
         return DestinationColorSpace::DisplayP3();
 #endif
@@ -49,7 +49,7 @@
 {
     if (colorSpace == DestinationColorSpace::SRGB())
         return PredefinedColorSpace::SRGB;
-#if ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3)
+#if ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3)
     if (colorSpace == DestinationColorSpace::DisplayP3())
         return PredefinedColorSpace::DisplayP3;
 #endif

Modified: trunk/Source/WebCore/html/canvas/PredefinedColorSpace.h (282512 => 282513)


--- trunk/Source/WebCore/html/canvas/PredefinedColorSpace.h	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/Source/WebCore/html/canvas/PredefinedColorSpace.h	2021-09-16 08:56:57 UTC (rev 282513)
@@ -34,7 +34,7 @@
 
 enum class PredefinedColorSpace {
     SRGB
-#if ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3)
+#if ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3)
     , DisplayP3
 #endif
 };
@@ -50,7 +50,7 @@
     using values = EnumValues<
         WebCore::PredefinedColorSpace,
         WebCore::PredefinedColorSpace::SRGB
-#if ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3)
+#if ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3)
         , WebCore::PredefinedColorSpace::DisplayP3
 #endif
     >;

Modified: trunk/Source/WebCore/html/canvas/PredefinedColorSpace.idl (282512 => 282513)


--- trunk/Source/WebCore/html/canvas/PredefinedColorSpace.idl	2021-09-16 08:51:23 UTC (rev 282512)
+++ trunk/Source/WebCore/html/canvas/PredefinedColorSpace.idl	2021-09-16 08:56:57 UTC (rev 282513)
@@ -26,7 +26,7 @@
 // https://html.spec.whatwg.org/multipage/canvas.html#predefinedcolorspace
 enum PredefinedColorSpace {
     "srgb"
-#if defined(ENABLE_DESTINATION_COLOR_SPACE_DISPLAY_P3) && ENABLE_DESTINATION_COLOR_SPACE_DISPLAY_P3
+#if defined(ENABLE_PREDEFINED_COLOR_SPACE_DISPLAY_P3) && ENABLE_PREDEFINED_COLOR_SPACE_DISPLAY_P3
     , "display-p3"
 #endif
 };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to