Title: [292923] trunk
Revision
292923
Author
grao...@webkit.org
Date
2022-04-15 14:49:04 -0700 (Fri, 15 Apr 2022)

Log Message

WKWebView false positive when testing a.relList.supports("ar"), fails to open USDZ in AR QuickLook
https://bugs.webkit.org/show_bug.cgi?id=239135
<rdar://problem/91798041>

Reviewed by Tim Horton.

Source/WebCore:

Only return "true" for a.relList.supports("ar") when the SystemPreviewEnabled setting is "true".

Tests: system-preview/rel-ar-setting-disabled.html
       system-preview/rel-ar-setting-enabled.html

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::relList):

LayoutTests:

Add tests to check a.relList.supports("ar") returns the expected value based on
the SystemPreviewEnabled setting value.

* system-preview/rel-ar-setting-disabled-expected.txt: Added.
* system-preview/rel-ar-setting-disabled.html: Added.
* system-preview/rel-ar-setting-enabled-expected.txt: Added.
* system-preview/rel-ar-setting-enabled.html: Added.

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

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (292922 => 292923)


--- trunk/LayoutTests/ChangeLog	2022-04-15 21:43:27 UTC (rev 292922)
+++ trunk/LayoutTests/ChangeLog	2022-04-15 21:49:04 UTC (rev 292923)
@@ -1,3 +1,19 @@
+2022-04-15  Antoine Quint  <grao...@apple.com>
+
+        WKWebView false positive when testing a.relList.supports("ar"), fails to open USDZ in AR QuickLook
+        https://bugs.webkit.org/show_bug.cgi?id=239135
+        <rdar://problem/91798041>
+
+        Reviewed by Tim Horton.
+
+        Add tests to check a.relList.supports("ar") returns the expected value based on
+        the SystemPreviewEnabled setting value.
+
+        * system-preview/rel-ar-setting-disabled-expected.txt: Added.
+        * system-preview/rel-ar-setting-disabled.html: Added.
+        * system-preview/rel-ar-setting-enabled-expected.txt: Added.
+        * system-preview/rel-ar-setting-enabled.html: Added.
+
 2022-04-15  Karl Rackler  <rack...@apple.com>
 
         [ Mac ] fast/css/counters/element-removal-crash.xhtml is a flaky failure

Added: trunk/LayoutTests/system-preview/rel-ar-setting-disabled-expected.txt (0 => 292923)


--- trunk/LayoutTests/system-preview/rel-ar-setting-disabled-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/system-preview/rel-ar-setting-disabled-expected.txt	2022-04-15 21:49:04 UTC (rev 292923)
@@ -0,0 +1,3 @@
+
+PASS a.relList.supports("ar") should be false when SystemPreviewEnabled is false.
+

Added: trunk/LayoutTests/system-preview/rel-ar-setting-disabled.html (0 => 292923)


--- trunk/LayoutTests/system-preview/rel-ar-setting-disabled.html	                        (rev 0)
+++ trunk/LayoutTests/system-preview/rel-ar-setting-disabled.html	2022-04-15 21:49:04 UTC (rev 292923)
@@ -0,0 +1,12 @@
+<!DOCTYPE html><!-- webkit-test-runner [ SystemPreviewEnabled=false ] -->
+<body>
+<script src=""
+<script src=""
+<script>
+
+test(() => {
+    assert_false(document.createElement("a").relList.supports("ar"));
+}, `a.relList.supports("ar") should be false when SystemPreviewEnabled is false.`);
+
+</script>
+</body>

Added: trunk/LayoutTests/system-preview/rel-ar-setting-enabled-expected.txt (0 => 292923)


--- trunk/LayoutTests/system-preview/rel-ar-setting-enabled-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/system-preview/rel-ar-setting-enabled-expected.txt	2022-04-15 21:49:04 UTC (rev 292923)
@@ -0,0 +1,3 @@
+
+PASS a.relList.supports("ar") should be true when SystemPreviewEnabled is true.
+

Added: trunk/LayoutTests/system-preview/rel-ar-setting-enabled.html (0 => 292923)


--- trunk/LayoutTests/system-preview/rel-ar-setting-enabled.html	                        (rev 0)
+++ trunk/LayoutTests/system-preview/rel-ar-setting-enabled.html	2022-04-15 21:49:04 UTC (rev 292923)
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<body>
+<script src=""
+<script src=""
+<script>
+
+test(() => {
+    assert_true(document.createElement("a").relList.supports("ar"));
+}, `a.relList.supports("ar") should be true when SystemPreviewEnabled is true.`);
+
+</script>
+</body>

Modified: trunk/Source/WebCore/ChangeLog (292922 => 292923)


--- trunk/Source/WebCore/ChangeLog	2022-04-15 21:43:27 UTC (rev 292922)
+++ trunk/Source/WebCore/ChangeLog	2022-04-15 21:49:04 UTC (rev 292923)
@@ -1,3 +1,19 @@
+2022-04-15  Antoine Quint  <grao...@apple.com>
+
+        WKWebView false positive when testing a.relList.supports("ar"), fails to open USDZ in AR QuickLook
+        https://bugs.webkit.org/show_bug.cgi?id=239135
+        <rdar://problem/91798041>
+
+        Reviewed by Tim Horton.
+
+        Only return "true" for a.relList.supports("ar") when the SystemPreviewEnabled setting is "true".
+
+        Tests: system-preview/rel-ar-setting-disabled.html
+               system-preview/rel-ar-setting-enabled.html
+
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::relList):
+
 2022-04-15  Tim Horton  <timothy_hor...@apple.com>
 
         Non-fatal fault under RenderThemeIOS::paintAttachment due to use of dynamic UIColors

Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (292922 => 292923)


--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp	2022-04-15 21:43:27 UTC (rev 292922)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp	2022-04-15 21:49:04 UTC (rev 292923)
@@ -314,10 +314,12 @@
 DOMTokenList& HTMLAnchorElement::relList()
 {
     if (!m_relList) {
-        m_relList = makeUnique<DOMTokenList>(*this, HTMLNames::relAttr, [](Document&, StringView token) {
+        m_relList = makeUnique<DOMTokenList>(*this, HTMLNames::relAttr, [](Document& document, StringView token) {
 #if USE(SYSTEM_PREVIEW)
             if (equalIgnoringASCIICase(token, "ar"))
-                return true;
+                return document.settings().systemPreviewEnabled();
+#else
+            UNUSED_PARAM(document);
 #endif
             return equalIgnoringASCIICase(token, "noreferrer") || equalIgnoringASCIICase(token, "noopener") || equalIgnoringASCIICase(token, "opener");
         });
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to