Title: [229266] releases/WebKitGTK/webkit-2.20
Revision
229266
Author
[email protected]
Date
2018-03-05 05:16:20 -0800 (Mon, 05 Mar 2018)

Log Message

Merge r229133 - imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html fails with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183225
<rdar://problem/38003828>

Reviewed by Alex Christensen.

Source/WebCore:

Bypass navigation policy check when loading about:blank. This does not seem necessary and it would not
be Web-compatible for such policy check to happen synchronously. This is because an iframe without src
or src="" should load synchronously as per HTML specification.

Test: http/wpt/html/browsers/windows/browsing-context.html

* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):

LayoutTests:

* http/wpt/html/browsers/windows/browsing-context-expected.txt: Added.
* http/wpt/html/browsers/windows/browsing-context.html: Added.
Add layout test coverage.

* fast/loader/iframe-src-invalid-url-expected.txt:
* fast/loader/policy-delegate-action-hit-test-zoomed-expected.txt:
* loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt:
* loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt:
Rebaseline a few layout tests now that the log lines for the about:blank policy checks are
gone.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.20/LayoutTests/ChangeLog (229265 => 229266)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/ChangeLog	2018-03-05 13:16:10 UTC (rev 229265)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/ChangeLog	2018-03-05 13:16:20 UTC (rev 229266)
@@ -1,3 +1,22 @@
+2018-03-01  Chris Dumez  <[email protected]>
+
+        imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html fails with async policy delegates
+        https://bugs.webkit.org/show_bug.cgi?id=183225
+        <rdar://problem/38003828>
+
+        Reviewed by Alex Christensen.
+
+        * http/wpt/html/browsers/windows/browsing-context-expected.txt: Added.
+        * http/wpt/html/browsers/windows/browsing-context.html: Added.
+        Add layout test coverage.
+
+        * fast/loader/iframe-src-invalid-url-expected.txt:
+        * fast/loader/policy-delegate-action-hit-test-zoomed-expected.txt:
+        * loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt:
+        * loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt:
+        Rebaseline a few layout tests now that the log lines for the about:blank policy checks are
+        gone.
+
 2018-02-28  Chris Dumez  <[email protected]>
 
         html/browsers/browsing-the-web/navigating-across-documents/006.html fails with async policy delegates

Modified: releases/WebKitGTK/webkit-2.20/LayoutTests/fast/loader/iframe-src-invalid-url-expected.txt (229265 => 229266)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/fast/loader/iframe-src-invalid-url-expected.txt	2018-03-05 13:16:10 UTC (rev 229265)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/fast/loader/iframe-src-invalid-url-expected.txt	2018-03-05 13:16:20 UTC (rev 229266)
@@ -1,7 +1,5 @@
  - decidePolicyForNavigationAction 
 <NSURLRequest URL data:text/html,    <iframe id='iframe' src=''></iframe>, main document URL iframe-src-invalid-url.html, http method GET> is main frame - no should open URLs externally - no
- - decidePolicyForNavigationAction 
-<NSURLRequest URL about:blank, main document URL iframe-src-invalid-url.html, http method GET> is main frame - no should open URLs externally - no
 Test passes if the second iframe navigates to about:blank.
 
 

Modified: releases/WebKitGTK/webkit-2.20/LayoutTests/fast/loader/policy-delegate-action-hit-test-zoomed-expected.txt (229265 => 229266)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/fast/loader/policy-delegate-action-hit-test-zoomed-expected.txt	2018-03-05 13:16:10 UTC (rev 229265)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/fast/loader/policy-delegate-action-hit-test-zoomed-expected.txt	2018-03-05 13:16:20 UTC (rev 229266)
@@ -1,4 +1,3 @@
-Policy delegate: attempt to load about:blank with navigation type 'link clicked' originating from #text > A > BODY > HTML > #document
 This is a test for rdar://problem/6755137 Action dictionary for policy decision is missing keys when full-page zoom is used.
 
 Link

Added: releases/WebKitGTK/webkit-2.20/LayoutTests/http/wpt/html/browsers/windows/browsing-context-expected.txt (0 => 229266)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/http/wpt/html/browsers/windows/browsing-context-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/http/wpt/html/browsers/windows/browsing-context-expected.txt	2018-03-05 13:16:20 UTC (rev 229266)
@@ -0,0 +1,5 @@
+
+FAIL Check that browsing context has new, ready HTML document assert_equals: The document's encoding should be 'UTF-8'. expected "UTF-8" but got "windows-1252"
+PASS Check that new document nodes extant, empty 
+PASS Check the document properties corresponding to the creator browsing context 
+

Added: releases/WebKitGTK/webkit-2.20/LayoutTests/http/wpt/html/browsers/windows/browsing-context.html (0 => 229266)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/http/wpt/html/browsers/windows/browsing-context.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/http/wpt/html/browsers/windows/browsing-context.html	2018-03-05 13:16:20 UTC (rev 229266)
@@ -0,0 +1,52 @@
+<!doctype html>
+<html>
+  <head>
+    <title>HTML Test: Browsing context is first created</title>
+    <link rel="author" title="Intel" href="" />
+    <script src=""
+    <script src=""
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+    var doc, iframe;
+
+    if (window.testRunner && testRunner.setShouldDecideNavigationPolicyAfterDelay)
+        testRunner.setShouldDecideNavigationPolicyAfterDelay(true);
+
+    setup(function () {
+      // Create new browsing context via iframe
+      iframe = document.createElement("iframe");
+      document.body.appendChild(iframe);
+      doc = iframe.contentDocument;
+    });
+
+    test(function () {
+      assert_equals(doc.compatMode, "BackCompat", "The compatMode of a document without a document type declaration should be 'BackCompat'."); // Quirksmode
+      assert_equals(doc.contentType, "text/html", "The document should be an HTML document.");
+      assert_equals(doc.readyState, "complete", "The readyState attribute should be 'complete'.");
+      // Document metadata...
+      assert_equals(doc.documentURI, "about:blank", "The document's address should be 'about:blank'.");
+      assert_equals(doc.URL, "about:blank", "The document's address should be 'about:blank'.");
+      assert_equals(doc.doctype, null, "The docType of a document without a document type declaration should be null.");
+      assert_equals(doc.characterSet, "UTF-8", "The document's encoding should be 'UTF-8'.");
+    }, "Check that browsing context has new, ready HTML document");
+
+    test(function () {
+      assert_equals(doc.childNodes.length, 1, "The document must have only one child.");
+      assert_equals(doc.documentElement.tagName, "HTML");
+      assert_equals(doc.documentElement.childNodes.length, 2, "The HTML element should have 2 children.");
+      assert_equals(doc.documentElement.childNodes[0].tagName, "HEAD", "The first child of HTML element should be a HEAD element.");
+      assert_false(doc.documentElement.childNodes[0].hasChildNodes(), "The HEAD element should not have children.");
+      assert_equals(doc.documentElement.childNodes[1].tagName, "BODY", "The second child of HTML element should be a BODY element.");
+      assert_false(doc.documentElement.childNodes[1].hasChildNodes(), "The BODY element should not have children.");
+    }, "Check that new document nodes extant, empty");
+
+    test(function () {
+      assert_equals(doc.origin, document.origin, "The document's origin should be its creator document's origin");
+      assert_equals(doc.referrer, document.URL, "The document's referrer should be its creator document's address.");
+      assert_equals(iframe.contentWindow.parent.document, document);
+    }, "Check the document properties corresponding to the creator browsing context");
+    </script>
+  </body>
+</html>

Modified: releases/WebKitGTK/webkit-2.20/LayoutTests/loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt (229265 => 229266)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt	2018-03-05 13:16:10 UTC (rev 229265)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt	2018-03-05 13:16:20 UTC (rev 229266)
@@ -1,6 +1,4 @@
  - decidePolicyForNavigationAction 
-<NSURLRequest URL about:blank, main document URL subframe-click-target-self.html, http method GET> is main frame - no should open URLs externally - no
- - decidePolicyForNavigationAction 
 <NSURLRequest URL resources/iframe-click-notify-done-target-self.html, main document URL subframe-click-target-self.html, http method GET> is main frame - no should open URLs externally - no
  - decidePolicyForNavigationAction 
 <NSURLRequest URL resources/notify-done.html, main document URL subframe-click-target-self.html, http method GET> is main frame - no should open URLs externally - yes

Modified: releases/WebKitGTK/webkit-2.20/LayoutTests/loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt (229265 => 229266)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt	2018-03-05 13:16:10 UTC (rev 229265)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt	2018-03-05 13:16:20 UTC (rev 229266)
@@ -1,6 +1,4 @@
  - decidePolicyForNavigationAction 
-<NSURLRequest URL about:blank, main document URL subframe-click-target-top.html, http method GET> is main frame - no should open URLs externally - no
- - decidePolicyForNavigationAction 
 <NSURLRequest URL resources/iframe-click-notify-done-target-top.html, main document URL subframe-click-target-top.html, http method GET> is main frame - no should open URLs externally - no
  - decidePolicyForNavigationAction 
 <NSURLRequest URL resources/notify-done.html, main document URL resources/notify-done.html, http method GET> is main frame - yes should open URLs externally - yes

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog (229265 => 229266)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog	2018-03-05 13:16:10 UTC (rev 229265)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog	2018-03-05 13:16:20 UTC (rev 229266)
@@ -1,3 +1,20 @@
+2018-03-01  Chris Dumez  <[email protected]>
+
+        imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html fails with async policy delegates
+        https://bugs.webkit.org/show_bug.cgi?id=183225
+        <rdar://problem/38003828>
+
+        Reviewed by Alex Christensen.
+
+        Bypass navigation policy check when loading about:blank. This does not seem necessary and it would not
+        be Web-compatible for such policy check to happen synchronously. This is because an iframe without src
+        or src="" should load synchronously as per HTML specification.
+
+        Test: http/wpt/html/browsers/windows/browsing-context.html
+
+        * loader/PolicyChecker.cpp:
+        (WebCore::PolicyChecker::checkNavigationPolicy):
+
 2018-03-01  Carlos Garcia Campos  <[email protected]>
 
         [FreeType] Color emojis in WebKitGTK+ for great justice

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/loader/PolicyChecker.cpp (229265 => 229266)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/loader/PolicyChecker.cpp	2018-03-05 13:16:10 UTC (rev 229265)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/loader/PolicyChecker.cpp	2018-03-05 13:16:20 UTC (rev 229266)
@@ -123,6 +123,9 @@
 
     loader->setLastCheckedRequest(ResourceRequest(request));
 
+    if (request.url() == blankURL())
+        return function(WTFMove(request), formState, true);
+
 #if USE(QUICK_LOOK)
     // Always allow QuickLook-generated URLs based on the protocol scheme.
     if (!request.isNull() && isQuickLookPreviewURL(request.url()))
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to