Title: [172787] branches/safari-600.1-branch
Revision
172787
Author
[email protected]
Date
2014-08-19 16:49:01 -0700 (Tue, 19 Aug 2014)

Log Message

Merge r172709. <rdar://problem/17850158>

Modified Paths

Added Paths

Removed Paths

Diff

Modified: branches/safari-600.1-branch/LayoutTests/ChangeLog (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/ChangeLog	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/ChangeLog	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,5 +1,39 @@
 2014-08-19  Dana Burkart  <[email protected]>
 
+        Merge r172709. <rdar://problem/17850158>
+
+    2014-08-18  Andy Estes  <[email protected]>
+    
+            REGRESSION (r167856): adobe.com no longer able to launch Create Cloud app using a URL with a custom scheme
+            https://bugs.webkit.org/show_bug.cgi?id=136010
+    
+            Reviewed by Darin Adler.
+    
+            Removed tests that verified the behavior of setAllowNavigationToInvalidURL(true), which no longer exists:
+            * fast/loader/allow-redirect-to-invalid-url-using-_javascript_-expected.txt: Removed.
+            * fast/loader/allow-redirect-to-invalid-url-using-_javascript_.html: Removed.
+            * fast/loader/allow-redirect-to-invalid-url-using-meta-refresh-expected.txt: Removed.
+            * fast/loader/allow-redirect-to-invalid-url-using-meta-refresh.html: Removed.
+    
+            Added tests that verify the policy delegate is executed on some navigations to invalid URLs:
+            * fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate-expected.txt: Added.
+            * fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate.html: Added.
+            * fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate-expected.txt: Added.
+            * fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate.html: Added.
+            * fast/loader/window-open-to-invalid-url-calls-policy-delegate-expected.txt: Added.
+            * fast/loader/window-open-to-invalid-url-calls-policy-delegate.html: Added.
+    
+            Renamed some existing tests added in r170120, modified them to log willPerformClientRedirectToURL and
+            didCancelClientRedirectForFrame, and added a test to verify navigations in existing frames via window.open:
+            * fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed-expected.txt: Renamed from fast/loader/disallow-redirect-to-invalid-url-using-_javascript_-expected.txt.
+            * fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed.html: Renamed from fast/loader/disallow-redirect-to-invalid-url-using-_javascript_.html.
+            * fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt: Renamed from fast/loader/disallow-redirect-to-invalid-url-using-meta-refresh-expected.txt.
+            * fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html: Renamed from fast/loader/disallow-redirect-to-invalid-url-using-meta-refresh.html.
+            * fast/loader/window-open-to-invalid-url-disallowed-expected.txt: Added.
+            * fast/loader/window-open-to-invalid-url-disallowed.html: Added.
+    
+2014-08-19  Dana Burkart  <[email protected]>
+
         Merge r172656. <rdar://problem/17961698>
 
     2014-08-15  Zalan Bujtas  <[email protected]>

Deleted: branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-_javascript_-expected.txt (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-_javascript_-expected.txt	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-_javascript_-expected.txt	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,13 +0,0 @@
-frame "frame" - didStartProvisionalLoadForFrame
-main frame - didFinishDocumentLoadForFrame
-frame "frame" - didCommitLoadForFrame
-frame "frame" - willPerformClientRedirectToURL: x-dummy://A=a&B=b 
-frame "frame" - didFinishDocumentLoadForFrame
-main frame - didHandleOnloadEventsForFrame
-frame "frame" - didFinishLoadForFrame
-main frame - didFinishLoadForFrame
-Tests that we allow redirection to an invalid URL initiated by _javascript_ when setting allowNavigationToInvalidURL is true. This test PASSED if you see an entry in the dumped frame load callbacks of the form: "willPerformClientRedirectToURL: x-dummy://A=a&B=b".
-
-Note, this test must be run in DumpRenderTree.
-
-

Deleted: branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-_javascript_.html (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-_javascript_.html	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-_javascript_.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script>
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.dumpFrameLoadCallbacks();
-    testRunner.waitUntilDone();
-}
-
-if (window.internals)
-    window.internals.settings.setAllowNavigationToInvalidURL(true);
-</script>
-</head>
-<body>
-<p>Tests that we allow redirection to an invalid URL initiated by _javascript_ when setting allowNavigationToInvalidURL is true. This test PASSED if you see an entry in the dumped frame load callbacks of the form: &quot;willPerformClientRedirectToURL: x-dummy://A=a&amp;B=b&quot;.</p>
-<p>Note, this test must be run in DumpRenderTree.</p>
-<iframe id="frame" src=""
-<script>
-function done()
-{
-    if (window.testRunner)
-        testRunner.notifyDone();
-}
-
-window.setTimeout(done, 0);
-</script>
-</body>
-</html>

Deleted: branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-meta-refresh-expected.txt (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-meta-refresh-expected.txt	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-meta-refresh-expected.txt	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,14 +0,0 @@
-frame "frame" - didStartProvisionalLoadForFrame
-main frame - didFinishDocumentLoadForFrame
-frame "frame" - didCommitLoadForFrame
-frame "frame" - didFinishDocumentLoadForFrame
-frame "frame" - didHandleOnloadEventsForFrame
-main frame - didHandleOnloadEventsForFrame
-frame "frame" - willPerformClientRedirectToURL: x-dummy://A=a&B=b 
-frame "frame" - didFinishLoadForFrame
-main frame - didFinishLoadForFrame
-Tests that we allow redirection to an invalid URL initiated by <meta http-equiv="refresh"> when setting allowNavigationToInvalidURL is true. This test PASSED if you see an entry in the dumped frame load callbacks of the form: "willPerformClientRedirectToURL: x-dummy://A=a&B=b".
-
-Note, this test must be run in DumpRenderTree.
-
-

Deleted: branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-meta-refresh.html (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-meta-refresh.html	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/allow-redirect-to-invalid-url-using-meta-refresh.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script>
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.dumpFrameLoadCallbacks();
-    testRunner.waitUntilDone();
-}
-
-if (window.internals)
-    window.internals.settings.setAllowNavigationToInvalidURL(true);
-</script>
-</head>
-<body>
-<p>Tests that we allow redirection to an invalid URL initiated by &lt;meta http-equiv=&quot;refresh&quot;&gt; when setting allowNavigationToInvalidURL is true. This test PASSED if you see an entry in the dumped frame load callbacks of the form: &quot;willPerformClientRedirectToURL: x-dummy://A=a&amp;B=b&quot;.</p>
-<p>Note, this test must be run in DumpRenderTree.</p>
-<iframe id="frame" src=""
-<script>
-function done()
-{
-    if (window.testRunner)
-        testRunner.notifyDone();
-}
-
-window.setTimeout(done, 0);
-</script>
-</body>
-</html>

Deleted: branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-_javascript_-expected.txt (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-_javascript_-expected.txt	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-_javascript_-expected.txt	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,13 +0,0 @@
-frame "frame" - didStartProvisionalLoadForFrame
-main frame - didFinishDocumentLoadForFrame
-frame "frame" - didCommitLoadForFrame
-frame "frame" - didFinishDocumentLoadForFrame
-frame "frame" - didHandleOnloadEventsForFrame
-main frame - didHandleOnloadEventsForFrame
-frame "frame" - didFinishLoadForFrame
-main frame - didFinishLoadForFrame
-Tests that we do not redirect to an invalid URL initiated by _javascript_ when setting allowNavigationToInvalidURL is false. This test PASSED if you do not see an entry in the dumped frame load callbacks of the form: "willPerformClientRedirectToURL: x-dummy://A=a&B=b".
-
-Note, this test must be run in DumpRenderTree.
-
-

Deleted: branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-_javascript_.html (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-_javascript_.html	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-_javascript_.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script>
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.dumpFrameLoadCallbacks();
-    testRunner.waitUntilDone();
-}
-
-if (window.internals)
-    window.internals.settings.setAllowNavigationToInvalidURL(false);
-</script>
-</head>
-<body>
-<p>Tests that we do not redirect to an invalid URL initiated by _javascript_ when setting allowNavigationToInvalidURL is false. This test PASSED if you do not see an entry in the dumped frame load callbacks of the form: &quot;willPerformClientRedirectToURL: x-dummy://A=a&amp;B=b&quot;.</p>
-<p>Note, this test must be run in DumpRenderTree.</p>
-<iframe id="frame" src=""
-<script>
-function done()
-{
-    if (window.testRunner)
-        testRunner.notifyDone();
-}
-
-window.setTimeout(done, 0);
-</script>
-</body>
-</html>

Deleted: branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-meta-refresh-expected.txt (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-meta-refresh-expected.txt	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-meta-refresh-expected.txt	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,13 +0,0 @@
-frame "frame" - didStartProvisionalLoadForFrame
-main frame - didFinishDocumentLoadForFrame
-frame "frame" - didCommitLoadForFrame
-frame "frame" - didFinishDocumentLoadForFrame
-frame "frame" - didHandleOnloadEventsForFrame
-main frame - didHandleOnloadEventsForFrame
-frame "frame" - didFinishLoadForFrame
-main frame - didFinishLoadForFrame
-Tests that we do not redirect to an invalid URL initiated by <meta http-equiv="refresh"> when setting allowNavigationToInvalidURL is false. This test PASSED if you do not see an entry in the dumped frame load callbacks of the form: "willPerformClientRedirectToURL: x-dummy://A=a&B=b".
-
-Note, this test must be run in DumpRenderTree.
-
-

Deleted: branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-meta-refresh.html (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-meta-refresh.html	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/disallow-redirect-to-invalid-url-using-meta-refresh.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script>
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.dumpFrameLoadCallbacks();
-    testRunner.waitUntilDone();
-}
-
-if (window.internals)
-    window.internals.settings.setAllowNavigationToInvalidURL(false);
-</script>
-</head>
-<body>
-<p>Tests that we do not redirect to an invalid URL initiated by &lt;meta http-equiv=&quot;refresh&quot;&gt; when setting allowNavigationToInvalidURL is false. This test PASSED if you do not see an entry in the dumped frame load callbacks of the form: &quot;willPerformClientRedirectToURL: x-dummy://A=a&amp;B=b&quot;.</p>
-<p>Note, this test must be run in DumpRenderTree.</p>
-<iframe id="frame" src=""
-<script>
-function done()
-{
-    if (window.testRunner)
-        testRunner.notifyDone();
-}
-
-window.setTimeout(done, 0);
-</script>
-</body>
-</html>

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate-expected.txt (from rev 172709, trunk/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate-expected.txt) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate-expected.txt	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate-expected.txt	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,4 @@
+Policy delegate: attempt to load http://A=a&B=b with navigation type 'other'
+Tests that we do not redirect to an invalid URL initiated by _javascript_. This test PASSED if you see an entry in the dumped frame load callbacks of the form: "willPerformClientRedirectToURL: http://A=a&B=b" followed by "didCancelClientRedirectForFrame".
+
+Note, this test must be run in DumpRenderTree.

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate.html (from rev 172709, trunk/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate.html) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate.html	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.setCustomPolicyDelegate(true, false);
+    testRunner.waitUntilDone();
+}
+</script>
+</head>
+<body>
+<p>Tests that we do not redirect to an invalid URL initiated by _javascript_. This test PASSED if you see an entry in the dumped frame load callbacks of the form: &quot;willPerformClientRedirectToURL: http://A=a&amp;B=b&quot; followed by &quot;didCancelClientRedirectForFrame&quot;.</p>
+<p>Note, this test must be run in DumpRenderTree.</p>
+<script>
+window.location.href = ""
+window.setTimeout(function() {
+    if (window.testRunner)
+        testRunner.notifyDone();
+}, 0);
+</script>
+</body>
+</html>

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed-expected.txt (from rev 172709, trunk/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed-expected.txt) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed-expected.txt	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed-expected.txt	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,7 @@
+main frame - willPerformClientRedirectToURL: http://A=a&B=b 
+main frame - didFinishDocumentLoadForFrame
+main frame - didFinishLoadForFrame
+main frame - didCancelClientRedirectForFrame
+Tests that we do not redirect to an invalid URL initiated by _javascript_. This test PASSED if you see an entry in the dumped frame load callbacks of the form: "willPerformClientRedirectToURL: http://A=a&B=b" followed by "didCancelClientRedirectForFrame".
+
+Note, this test must be run in DumpRenderTree.

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed.html (from rev 172709, trunk/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed.html) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed.html	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.dumpFrameLoadCallbacks();
+    testRunner.waitUntilDone();
+}
+</script>
+</head>
+<body>
+<p>Tests that we do not redirect to an invalid URL initiated by _javascript_. This test PASSED if you see an entry in the dumped frame load callbacks of the form: &quot;willPerformClientRedirectToURL: http://A=a&amp;B=b&quot; followed by &quot;didCancelClientRedirectForFrame&quot;.</p>
+<p>Note, this test must be run in DumpRenderTree.</p>
+<script>
+window.location.href = ""
+window.setTimeout(function() {
+    if (window.testRunner)
+        testRunner.notifyDone();
+}, 0);
+</script>
+</body>
+</html>

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate-expected.txt (from rev 172709, trunk/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate-expected.txt) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate-expected.txt	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate-expected.txt	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,4 @@
+Policy delegate: attempt to load http://A=a&B=b with navigation type 'other'
+Tests that we do not redirect to an invalid URL initiated by <meta http-equiv="refresh">. This test PASSED if you see an entry in the dumped frame load callbacks of the form: "willPerformClientRedirectToURL: http://A=a&B=b" followed by "didCancelClientRedirectForFrame".
+
+Note, this test must be run in DumpRenderTree.

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate.html (from rev 172709, trunk/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate.html) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate.html	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="refresh" content="0; url=""
+<script>
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.setCustomPolicyDelegate(true, false);
+    testRunner.waitUntilDone();
+}
+</script>
+</head>
+<body>
+<p>Tests that we do not redirect to an invalid URL initiated by &lt;meta http-equiv=&quot;refresh&quot;&gt;. This test PASSED if you see an entry in the dumped frame load callbacks of the form: &quot;willPerformClientRedirectToURL: http://A=a&amp;B=b&quot; followed by &quot;didCancelClientRedirectForFrame&quot;.</p>
+<p>Note, this test must be run in DumpRenderTree.</p>
+<script>
+// This ugly double-timeout ensures that the scheduled meta-refresh, whose timer isn't even started until the frame finishes loading,
+// fires before notifyDone() is called, ensuring that didCancelClientRedirectForFrame is logged by DumpRenderTree.
+window.setTimeout(function() {
+    window.setTimeout(function() {
+        if (window.testRunner)
+            testRunner.notifyDone();
+    }, 0);
+}, 0);
+</script>
+</body>
+</html>

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt (from rev 172709, trunk/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,8 @@
+main frame - didFinishDocumentLoadForFrame
+main frame - didHandleOnloadEventsForFrame
+main frame - willPerformClientRedirectToURL: http://A=a&B=b 
+main frame - didFinishLoadForFrame
+main frame - didCancelClientRedirectForFrame
+Tests that we do not redirect to an invalid URL initiated by <meta http-equiv="refresh">. This test PASSED if you see an entry in the dumped frame load callbacks of the form: "willPerformClientRedirectToURL: http://A=a&B=b" followed by "didCancelClientRedirectForFrame".
+
+Note, this test must be run in DumpRenderTree.

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html (from rev 172709, trunk/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="refresh" content="0; url=""
+<script>
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.dumpFrameLoadCallbacks();
+    testRunner.waitUntilDone();
+}
+</script>
+</head>
+<body>
+<p>Tests that we do not redirect to an invalid URL initiated by &lt;meta http-equiv=&quot;refresh&quot;&gt;. This test PASSED if you see an entry in the dumped frame load callbacks of the form: &quot;willPerformClientRedirectToURL: http://A=a&amp;B=b&quot; followed by &quot;didCancelClientRedirectForFrame&quot;.</p>
+<p>Note, this test must be run in DumpRenderTree.</p>
+<script>
+// This ugly double-timeout ensures that the scheduled meta-refresh, whose timer isn't even started until the frame finishes loading,
+// fires before notifyDone() is called, ensuring that didCancelClientRedirectForFrame is logged by DumpRenderTree.
+window.setTimeout(function() {
+    window.setTimeout(function() {
+        if (window.testRunner)
+            testRunner.notifyDone();
+    }, 0);
+}, 0);
+</script>
+</body>
+</html>

Deleted: branches/safari-600.1-branch/LayoutTests/fast/loader/resources/redirect-to-invalid-url-using-_javascript_.html (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/resources/redirect-to-invalid-url-using-_javascript_.html	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/resources/redirect-to-invalid-url-using-_javascript_.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,4 +0,0 @@
-<!DOCTYPE html>
-<script>
-window.location.href = ""
-</script>

Deleted: branches/safari-600.1-branch/LayoutTests/fast/loader/resources/redirect-to-invalid-url-using-meta-refresh.html (172786 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/resources/redirect-to-invalid-url-using-meta-refresh.html	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/resources/redirect-to-invalid-url-using-meta-refresh.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,6 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta http-equiv="refresh" content="0; url=""
-</head>
-</html>

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-calls-policy-delegate-expected.txt (from rev 172709, trunk/LayoutTests/fast/loader/window-open-to-invalid-url-calls-policy-delegate-expected.txt) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-calls-policy-delegate-expected.txt	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-calls-policy-delegate-expected.txt	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,4 @@
+Policy delegate: attempt to load http://A=a&B=b with navigation type 'other'
+Tests that we call the navigation policy delegate when opening a new window to an invalid URL.
+
+Note, this test must be run in DumpRenderTree.

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-calls-policy-delegate.html (from rev 172709, trunk/LayoutTests/fast/loader/window-open-to-invalid-url-calls-policy-delegate.html) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-calls-policy-delegate.html	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-calls-policy-delegate.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.setCustomPolicyDelegate(true, false);
+    testRunner.waitUntilDone();
+    testRunner.setCanOpenWindows();
+}
+</script>
+</head>
+<body>
+<p>Tests that we call the navigation policy delegate when opening a new window to an invalid URL.</p>
+<p>Note, this test must be run in DumpRenderTree.</p>
+<script>
+window.open("http://A=a&B=b", "_top");
+window.setTimeout(function() {
+    if (window.testRunner)
+        testRunner.notifyDone();
+}, 0);
+</script>
+</body>
+</html>

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-disallowed-expected.txt (from rev 172709, trunk/LayoutTests/fast/loader/window-open-to-invalid-url-disallowed-expected.txt) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-disallowed-expected.txt	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-disallowed-expected.txt	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,7 @@
+main frame - willPerformClientRedirectToURL: http://A=a&B=b 
+main frame - didFinishDocumentLoadForFrame
+main frame - didFinishLoadForFrame
+main frame - didCancelClientRedirectForFrame
+Tests that we do not open a new window to an invalid URL. This test PASSED if you see an entry in the dumped frame load callbacks of the form: "willPerformClientRedirectToURL: http://A=a&B=b" followed by "didCancelClientRedirectForFrame".
+
+Note, this test must be run in DumpRenderTree.

Copied: branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-disallowed.html (from rev 172709, trunk/LayoutTests/fast/loader/window-open-to-invalid-url-disallowed.html) (0 => 172787)


--- branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-disallowed.html	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/fast/loader/window-open-to-invalid-url-disallowed.html	2014-08-19 23:49:01 UTC (rev 172787)
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.dumpFrameLoadCallbacks();
+    testRunner.waitUntilDone();
+    testRunner.setCanOpenWindows();
+}
+</script>
+</head>
+<body>
+<p>Tests that we do not open a new window to an invalid URL. This test PASSED if you see an entry in the dumped frame load callbacks of the form: &quot;willPerformClientRedirectToURL: http://A=a&amp;B=b&quot; followed by &quot;didCancelClientRedirectForFrame&quot;.</p>
+<p>Note, this test must be run in DumpRenderTree.</p>
+<script>
+window.open("http://A=a&B=b", "_top");
+window.setTimeout(function() {
+    if (window.testRunner)
+        testRunner.notifyDone();
+}, 0);
+</script>
+</body>
+</html>

Modified: branches/safari-600.1-branch/Source/WebCore/ChangeLog (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebCore/ChangeLog	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebCore/ChangeLog	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,5 +1,71 @@
 2014-08-19  Dana Burkart  <[email protected]>
 
+        Merge r172709. <rdar://problem/17850158>
+
+    2014-08-18  Andy Estes  <[email protected]>
+    
+            REGRESSION (r167856): adobe.com no longer able to launch Create Cloud app using a URL with a custom scheme
+            https://bugs.webkit.org/show_bug.cgi?id=136010
+    
+            Reviewed by Darin Adler.
+    
+            r167856 caused WebKit to stop scheduling certain kinds of navigations (window.location changes, meta-refresh,
+            and some calls to window.open) when the request URL is invalid. Adobe.com performs one of these navigations to
+            an invalid URL with an external scheme (aam:), relying on Safari's navigation policy delegate to ignore the
+            navigation and launch the external app registered to handle aam: URLs. Since the navigation is no longer
+            scheduled, the policy delegate is never executed and the external app never launches.
+    
+            Instead of not scheduling the navigation, allow it to proceed until the client's policy delegate has executed
+            and made a decision. Only disallow the navigation if the policy delegate told WebKit to proceed with the load.
+            This exposes these navigations to clients via the policy delegate and via willPerformClientRedirectToURL and
+            didCancelClientRedirectForFrame on the frame load delegate.
+            
+            To constrain this check only to the navigation types covered by r167856, only two NavigationSchedulers
+            (ScheduledRedirect and ScheduledLocationChange) enable the invalid URL check.
+    
+            Note that r167856 also caused an iOS regression, and this was resolved in r170120 by adding a linked-on-or-after
+            check and a WebCore setting. Since the iOS regression is also resolved by the approach described above, this
+            patch reverts r170120 (but keeps some of its tests).
+    
+            Tests: fast/loader/redirect-to-invalid-url-using-_javascript_-calls-policy-delegate.html
+                   fast/loader/redirect-to-invalid-url-using-_javascript_-disallowed.html
+                   fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate.html
+                   fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html
+                   fast/loader/window-open-to-invalid-url-calls-policy-delegate.html
+                   fast/loader/window-open-to-invalid-url-disallowed.html
+    
+            * WebCore.exp.in: Updated the symbol FrameLoader::loadFrameRequest.
+            * loader/FrameLoader.cpp:
+            (WebCore::FrameLoader::changeLocation): Added an AllowNavigationToInvalidURL argument; passed down to urlSelected.
+            (WebCore::FrameLoader::urlSelected): Added an AllowNavigationToInvalidURL argument; passed down to loadFrameRequest.
+            (WebCore::FrameLoader::loadURLIntoChildFrame): Passed AllowNavigationToInvalidURL::Yes to loadURL.
+            (WebCore::FrameLoader::loadFrameRequest): Added an AllowNavigationToInvalidURL argument; passed down to loadURL and loadPostRequest.
+            (WebCore::FrameLoader::loadURL): Added an AllowNavigationToInvalidURL argument; passed down to continueLoadAfterNewWindowPolicy and loadWithNavigationAction.
+            (WebCore::FrameLoader::loadPostRequest): Ditto.
+            (WebCore::FrameLoader::load): Passed AllowNavigationToInvalidURL::Yes to continueLoadAfterNewWindowPolicy.
+            (WebCore::FrameLoader::loadWithNavigationAction): Added an AllowNavigationToInvalidURL argument; passed down to loadWithDocumentLoader.
+            (WebCore::FrameLoader::loadWithDocumentLoader): Added an AllowNavigationToInvalidURL argument; passed down to continueLoadAfterNavigationPolicy.
+            (WebCore::FrameLoader::reloadWithOverrideEncoding): Passed AllowNavigationToInvalidURL::Yes to loadWithDocumentLoader.
+            (WebCore::FrameLoader::reload): Ditto.
+            (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
+                Added an AllowNavigationToInvalidURL argument; if its value is No and the request's URL is invalid, do not continue.
+                Added a FIXME about calling clientRedirectCancelledOrFinished on non-quick redirect cancellations.
+            (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): Added an AllowNavigationToInvalidURL argument; passed down to loadWithNavigationAction.
+            (WebCore::FrameLoader::loadDifferentDocumentItem): Passed AllowNavigationToInvalidURL::Yes to either loadWithDocumentLoader or loadWithNavigationAction.
+            * loader/FrameLoader.h:
+            * loader/FrameLoaderTypes.h: Defined AllowNavigationToInvalidURL to have values of Yes and No.
+            * loader/NavigationScheduler.cpp:
+            (WebCore::ScheduledRedirect::fire): Passed AllowNavigationToInvalidURL::No to FrameLoader::changeLocation.
+            (WebCore::ScheduledLocationChange::fire): Ditto.
+            (WebCore::NavigationScheduler::shouldScheduleNavigation): Removed the URL::isValid check.
+            (WebCore::NavigationScheduler::scheduleLocationChange): Passed AllowNavigationToInvalidURL::No to FrameLoder::changeLocation during fragment navigations.
+            * page/ContextMenuController.cpp:
+            (WebCore::openNewWindow): Passed AllowNavigationToInvalidURL::Yes to FrameLoader::loadFrameRequest.
+            (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
+            * page/Settings.in: Removed allowNavigationToInvalidURL.
+    
+2014-08-19  Dana Burkart  <[email protected]>
+
         Merge r172705. <rdar://problem/17767169>
 
     2014-08-18  Brent Fulgham  <[email protected]>

Modified: branches/safari-600.1-branch/Source/WebCore/WebCore.exp.in (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebCore/WebCore.exp.in	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebCore/WebCore.exp.in	2014-08-19 23:49:01 UTC (rev 172787)
@@ -140,7 +140,7 @@
 __ZN7WebCore11FrameLoader14detachChildrenEv
 __ZN7WebCore11FrameLoader14stopAllLoadersENS_26ClearProvisionalItemPolicyE
 __ZN7WebCore11FrameLoader16detachFromParentEv
-__ZN7WebCore11FrameLoader16loadFrameRequestERKNS_16FrameLoadRequestENS_11LockHistoryENS_19LockBackForwardListEN3WTF10PassRefPtrINS_5EventEEENS7_INS_9FormStateEEENS_18ShouldSendReferrerE
+__ZN7WebCore11FrameLoader16loadFrameRequestERKNS_16FrameLoadRequestENS_11LockHistoryENS_19LockBackForwardListEN3WTF10PassRefPtrINS_5EventEEENS7_INS_9FormStateEEENS_18ShouldSendReferrerENS_27AllowNavigationToInvalidURLE
 __ZN7WebCore11FrameLoader17stopForUserCancelEb
 __ZN7WebCore11FrameLoader21loadURLIntoChildFrameERKNS_3URLERKN3WTF6StringEPNS_5FrameE
 __ZN7WebCore11FrameLoader22findFrameForNavigationERKN3WTF12AtomicStringEPNS_8DocumentE

Modified: branches/safari-600.1-branch/Source/WebCore/loader/FrameLoader.cpp (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebCore/loader/FrameLoader.cpp	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebCore/loader/FrameLoader.cpp	2014-08-19 23:49:01 UTC (rev 172787)
@@ -320,21 +320,21 @@
     }
 }
 
-void FrameLoader::changeLocation(SecurityOrigin* securityOrigin, const URL& url, const String& referrer, LockHistory lockHistory, LockBackForwardList lockBackForwardList, bool refresh)
+void FrameLoader::changeLocation(SecurityOrigin* securityOrigin, const URL& url, const String& referrer, LockHistory lockHistory, LockBackForwardList lockBackForwardList, bool refresh, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
 {
     urlSelected(FrameLoadRequest(securityOrigin, ResourceRequest(url, referrer, refresh ? ReloadIgnoringCacheData : UseProtocolCachePolicy), "_self"),
-        0, lockHistory, lockBackForwardList, MaybeSendReferrer, ReplaceDocumentIfJavaScriptURL);
+        0, lockHistory, lockBackForwardList, MaybeSendReferrer, ReplaceDocumentIfJavaScriptURL, allowNavigationToInvalidURL);
 }
 
 void FrameLoader::urlSelected(const URL& url, const String& passedTarget, PassRefPtr<Event> triggeringEvent, LockHistory lockHistory, LockBackForwardList lockBackForwardList, ShouldSendReferrer shouldSendReferrer)
 {
     urlSelected(FrameLoadRequest(m_frame.document()->securityOrigin(), ResourceRequest(url), passedTarget),
-        triggeringEvent, lockHistory, lockBackForwardList, shouldSendReferrer, DoNotReplaceDocumentIfJavaScriptURL);
+        triggeringEvent, lockHistory, lockBackForwardList, shouldSendReferrer, DoNotReplaceDocumentIfJavaScriptURL, AllowNavigationToInvalidURL::Yes);
 }
 
 // The shouldReplaceDocumentIfJavaScriptURL parameter will go away when the FIXME to eliminate the
 // corresponding parameter from ScriptController::executeIfJavaScriptURL() is addressed.
-void FrameLoader::urlSelected(const FrameLoadRequest& passedRequest, PassRefPtr<Event> triggeringEvent, LockHistory lockHistory, LockBackForwardList lockBackForwardList, ShouldSendReferrer shouldSendReferrer, ShouldReplaceDocumentIfJavaScriptURL shouldReplaceDocumentIfJavaScriptURL)
+void FrameLoader::urlSelected(const FrameLoadRequest& passedRequest, PassRefPtr<Event> triggeringEvent, LockHistory lockHistory, LockBackForwardList lockBackForwardList, ShouldSendReferrer shouldSendReferrer, ShouldReplaceDocumentIfJavaScriptURL shouldReplaceDocumentIfJavaScriptURL, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
 {
     ASSERT(!m_suppressOpenerInNewFrame);
 
@@ -351,7 +351,7 @@
         m_suppressOpenerInNewFrame = true;
     addHTTPOriginIfNeeded(frameRequest.resourceRequest(), outgoingOrigin());
 
-    loadFrameRequest(frameRequest, lockHistory, lockBackForwardList, triggeringEvent, 0, shouldSendReferrer);
+    loadFrameRequest(frameRequest, lockHistory, lockBackForwardList, triggeringEvent, 0, shouldSendReferrer, allowNavigationToInvalidURL);
 
     m_suppressOpenerInNewFrame = false;
 }
@@ -923,7 +923,7 @@
         }
     }
 
-    childFrame->loader().loadURL(url, referer, "_self", LockHistory::No, FrameLoadType::RedirectWithLockedBackForwardList, 0, 0);
+    childFrame->loader().loadURL(url, referer, "_self", LockHistory::No, FrameLoadType::RedirectWithLockedBackForwardList, 0, 0, AllowNavigationToInvalidURL::Yes);
 }
 
 #if ENABLE(WEB_ARCHIVE) || ENABLE(MHTML)
@@ -1202,7 +1202,7 @@
 }
 
 void FrameLoader::loadFrameRequest(const FrameLoadRequest& request, LockHistory lockHistory, LockBackForwardList lockBackForwardList,
-    PassRefPtr<Event> event, PassRefPtr<FormState> formState, ShouldSendReferrer shouldSendReferrer)
+    PassRefPtr<Event> event, PassRefPtr<FormState> formState, ShouldSendReferrer shouldSendReferrer, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
 {    
     // Protect frame from getting blown away inside dispatchBeforeLoadEvent in loadWithDocumentLoader.
     Ref<Frame> protect(m_frame);
@@ -1232,9 +1232,9 @@
         loadType = FrameLoadType::Standard;
 
     if (request.resourceRequest().httpMethod() == "POST")
-        loadPostRequest(request.resourceRequest(), referrer, request.frameName(), lockHistory, loadType, event, formState.get());
+        loadPostRequest(request.resourceRequest(), referrer, request.frameName(), lockHistory, loadType, event, formState.get(), allowNavigationToInvalidURL);
     else
-        loadURL(request.resourceRequest().url(), referrer, request.frameName(), lockHistory, loadType, event, formState.get());
+        loadURL(request.resourceRequest().url(), referrer, request.frameName(), lockHistory, loadType, event, formState.get(), allowNavigationToInvalidURL);
 
     // FIXME: It's possible this targetFrame will not be the same frame that was targeted by the actual
     // load if frame names have changed.
@@ -1249,7 +1249,7 @@
 }
 
 void FrameLoader::loadURL(const URL& newURL, const String& referrer, const String& frameName, LockHistory lockHistory, FrameLoadType newLoadType,
-    PassRefPtr<Event> event, PassRefPtr<FormState> prpFormState)
+    PassRefPtr<Event> event, PassRefPtr<FormState> prpFormState, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
 {
     if (m_inStopAllLoaders)
         return;
@@ -1278,7 +1278,7 @@
     // The search for a target frame is done earlier in the case of form submission.
     Frame* targetFrame = isFormSubmission ? 0 : findFrameForNavigation(frameName);
     if (targetFrame && targetFrame != &m_frame) {
-        targetFrame->loader().loadURL(newURL, referrer, "_self", lockHistory, newLoadType, event, formState.release());
+        targetFrame->loader().loadURL(newURL, referrer, "_self", lockHistory, newLoadType, event, formState.release(), allowNavigationToInvalidURL);
         return;
     }
 
@@ -1288,8 +1288,8 @@
     NavigationAction action(request, newLoadType, isFormSubmission, event);
 
     if (!targetFrame && !frameName.isEmpty()) {
-        policyChecker().checkNewWindowPolicy(action, request, formState.release(), frameName, [this](const ResourceRequest& request, PassRefPtr<FormState> formState, const String& frameName, const NavigationAction& action, bool shouldContinue) {
-            continueLoadAfterNewWindowPolicy(request, formState, frameName, action, shouldContinue);
+        policyChecker().checkNewWindowPolicy(action, request, formState.release(), frameName, [this, allowNavigationToInvalidURL](const ResourceRequest& request, PassRefPtr<FormState> formState, const String& frameName, const NavigationAction& action, bool shouldContinue) {
+            continueLoadAfterNewWindowPolicy(request, formState, frameName, action, shouldContinue, allowNavigationToInvalidURL);
         });
         return;
     }
@@ -1315,7 +1315,7 @@
 
     // must grab this now, since this load may stop the previous load and clear this flag
     bool isRedirect = m_quickRedirectComing;
-    loadWithNavigationAction(request, action, lockHistory, newLoadType, formState.release());
+    loadWithNavigationAction(request, action, lockHistory, newLoadType, formState.release(), allowNavigationToInvalidURL);
     if (isRedirect) {
         m_quickRedirectComing = false;
         if (m_provisionalDocumentLoader)
@@ -1358,7 +1358,7 @@
 
     if (request.shouldCheckNewWindowPolicy()) {
         policyChecker().checkNewWindowPolicy(NavigationAction(request.resourceRequest(), NavigationTypeOther), request.resourceRequest(), nullptr, request.frameName(), [this](const ResourceRequest& request, PassRefPtr<FormState> formState, const String& frameName, const NavigationAction& action, bool shouldContinue) {
-            continueLoadAfterNewWindowPolicy(request, formState, frameName, action, shouldContinue);
+            continueLoadAfterNewWindowPolicy(request, formState, frameName, action, shouldContinue, AllowNavigationToInvalidURL::Yes);
         });
 
         return;
@@ -1371,7 +1371,7 @@
     load(loader.get());
 }
 
-void FrameLoader::loadWithNavigationAction(const ResourceRequest& request, const NavigationAction& action, LockHistory lockHistory, FrameLoadType type, PassRefPtr<FormState> formState)
+void FrameLoader::loadWithNavigationAction(const ResourceRequest& request, const NavigationAction& action, LockHistory lockHistory, FrameLoadType type, PassRefPtr<FormState> formState, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
 {
     RefPtr<DocumentLoader> loader = m_client.createDocumentLoader(request, defaultSubstituteDataForURL(request.url()));
     if (lockHistory == LockHistory::Yes && m_documentLoader)
@@ -1381,7 +1381,7 @@
     if (m_documentLoader)
         loader->setOverrideEncoding(m_documentLoader->overrideEncoding());
 
-    loadWithDocumentLoader(loader.get(), type, formState);
+    loadWithDocumentLoader(loader.get(), type, formState, allowNavigationToInvalidURL);
 }
 
 void FrameLoader::load(DocumentLoader* newDocumentLoader)
@@ -1418,10 +1418,10 @@
         type = FrameLoadType::Reload;
     }
 
-    loadWithDocumentLoader(newDocumentLoader, type, 0);
+    loadWithDocumentLoader(newDocumentLoader, type, 0, AllowNavigationToInvalidURL::Yes);
 }
 
-void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType type, PassRefPtr<FormState> prpFormState)
+void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType type, PassRefPtr<FormState> prpFormState, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
 {
     // Retain because dispatchBeforeLoadEvent may release the last reference to it.
     Ref<Frame> protect(m_frame);
@@ -1475,13 +1475,13 @@
         // a new URL, the parent frame shouldn't learn the URL.
         if (!m_stateMachine.committedFirstRealDocumentLoad()
             && !ownerElement->dispatchBeforeLoadEvent(loader->request().url().string())) {
-            continueLoadAfterNavigationPolicy(loader->request(), formState, false);
+            continueLoadAfterNavigationPolicy(loader->request(), formState, false, allowNavigationToInvalidURL);
             return;
         }
     }
 
-    policyChecker().checkNavigationPolicy(loader->request(), loader, formState, [this](const ResourceRequest& request, PassRefPtr<FormState> formState, bool shouldContinue) {
-        continueLoadAfterNavigationPolicy(request, formState, shouldContinue);
+    policyChecker().checkNavigationPolicy(loader->request(), loader, formState, [this, allowNavigationToInvalidURL](const ResourceRequest& request, PassRefPtr<FormState> formState, bool shouldContinue) {
+        continueLoadAfterNavigationPolicy(request, formState, shouldContinue, allowNavigationToInvalidURL);
     });
 }
 
@@ -1563,7 +1563,7 @@
 
     loader->setOverrideEncoding(encoding);
 
-    loadWithDocumentLoader(loader.get(), FrameLoadType::Reload, 0);
+    loadWithDocumentLoader(loader.get(), FrameLoadType::Reload, 0, AllowNavigationToInvalidURL::Yes);
 }
 
 void FrameLoader::reload(bool endToEndReload)
@@ -1597,7 +1597,7 @@
 
     loader->setOverrideEncoding(m_documentLoader->overrideEncoding());
     
-    loadWithDocumentLoader(loader.get(), endToEndReload ? FrameLoadType::ReloadFromOrigin : FrameLoadType::Reload, 0);
+    loadWithDocumentLoader(loader.get(), endToEndReload ? FrameLoadType::ReloadFromOrigin : FrameLoadType::Reload, 0, AllowNavigationToInvalidURL::Yes);
 }
 
 void FrameLoader::stopAllLoaders(ClearProvisionalItemPolicy clearProvisionalItemPolicy)
@@ -2616,7 +2616,7 @@
     request.setHTTPOrigin(origin);
 }
 
-void FrameLoader::loadPostRequest(const ResourceRequest& inRequest, const String& referrer, const String& frameName, LockHistory lockHistory, FrameLoadType loadType, PassRefPtr<Event> event, PassRefPtr<FormState> prpFormState)
+void FrameLoader::loadPostRequest(const ResourceRequest& inRequest, const String& referrer, const String& frameName, LockHistory lockHistory, FrameLoadType loadType, PassRefPtr<Event> event, PassRefPtr<FormState> prpFormState, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
 {
     RefPtr<FormState> formState = prpFormState;
 
@@ -2644,19 +2644,19 @@
     if (!frameName.isEmpty()) {
         // The search for a target frame is done earlier in the case of form submission.
         if (Frame* targetFrame = formState ? 0 : findFrameForNavigation(frameName)) {
-            targetFrame->loader().loadWithNavigationAction(workingResourceRequest, action, lockHistory, loadType, formState.release());
+            targetFrame->loader().loadWithNavigationAction(workingResourceRequest, action, lockHistory, loadType, formState.release(), allowNavigationToInvalidURL);
             return;
         }
 
-        policyChecker().checkNewWindowPolicy(action, workingResourceRequest, formState.release(), frameName, [this](const ResourceRequest& request, PassRefPtr<FormState> formState, const String& frameName, const NavigationAction& action, bool shouldContinue) {
-            continueLoadAfterNewWindowPolicy(request, formState, frameName, action, shouldContinue);
+        policyChecker().checkNewWindowPolicy(action, workingResourceRequest, formState.release(), frameName, [this, allowNavigationToInvalidURL](const ResourceRequest& request, PassRefPtr<FormState> formState, const String& frameName, const NavigationAction& action, bool shouldContinue) {
+            continueLoadAfterNewWindowPolicy(request, formState, frameName, action, shouldContinue, allowNavigationToInvalidURL);
         });
         return;
     }
 
     // must grab this now, since this load may stop the previous load and clear this flag
     bool isRedirect = m_quickRedirectComing;
-    loadWithNavigationAction(workingResourceRequest, action, lockHistory, loadType, formState.release());    
+    loadWithNavigationAction(workingResourceRequest, action, lockHistory, loadType, formState.release(), allowNavigationToInvalidURL);
     if (isRedirect) {
         m_quickRedirectComing = false;
         if (m_provisionalDocumentLoader)
@@ -2889,7 +2889,7 @@
     return chrome.runBeforeUnloadConfirmPanel(text, &m_frame);
 }
 
-void FrameLoader::continueLoadAfterNavigationPolicy(const ResourceRequest&, PassRefPtr<FormState> formState, bool shouldContinue)
+void FrameLoader::continueLoadAfterNavigationPolicy(const ResourceRequest& request, PassRefPtr<FormState> formState, bool shouldContinue, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
 {
     // If we loaded an alternate page to replace an unreachableURL, we'll get in here with a
     // nil policyDataSource because loading the alternate page will have passed
@@ -2898,15 +2898,19 @@
 
     bool isTargetItem = history().provisionalItem() ? history().provisionalItem()->isTargetItem() : false;
 
-    // Two reasons we can't continue:
+    bool urlIsDisallowed = allowNavigationToInvalidURL == AllowNavigationToInvalidURL::No && !request.url().isValid();
+
+    // Three reasons we can't continue:
     //    1) Navigation policy delegate said we can't so request is nil. A primary case of this 
     //       is the user responding Cancel to the form repost nag sheet.
     //    2) User responded Cancel to an alert popped up by the before unload event handler.
-    bool canContinue = shouldContinue && shouldClose();
+    //    3) The request's URL is invalid and navigation to invalid URLs is disallowed.
+    bool canContinue = shouldContinue && shouldClose() && !urlIsDisallowed;
 
     if (!canContinue) {
         // If we were waiting for a quick redirect, but the policy delegate decided to ignore it, then we 
         // need to report that the client redirect was cancelled.
+        // FIXME: The client should be told about ignored non-quick redirects, too.
         if (m_quickRedirectComing)
             clientRedirectCancelledOrFinished(false);
 
@@ -2964,7 +2968,7 @@
 }
 
 void FrameLoader::continueLoadAfterNewWindowPolicy(const ResourceRequest& request,
-    PassRefPtr<FormState> formState, const String& frameName, const NavigationAction& action, bool shouldContinue)
+    PassRefPtr<FormState> formState, const String& frameName, const NavigationAction& action, bool shouldContinue, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
 {
     if (!shouldContinue)
         return;
@@ -2983,7 +2987,7 @@
         mainFrame->loader().setOpener(&frame.get());
         mainFrame->document()->setReferrerPolicy(frame->document()->referrerPolicy());
     }
-    mainFrame->loader().loadWithNavigationAction(request, NavigationAction(request), LockHistory::No, FrameLoadType::Standard, formState);
+    mainFrame->loader().loadWithNavigationAction(request, NavigationAction(request), LockHistory::No, FrameLoadType::Standard, formState, allowNavigationToInvalidURL);
 }
 
 void FrameLoader::requestFromDelegate(ResourceRequest& request, unsigned long& identifier, ResourceError& error)
@@ -3162,7 +3166,7 @@
     history().setProvisionalItem(item);
 
     if (CachedPage* cachedPage = pageCache()->get(item)) {
-        loadWithDocumentLoader(cachedPage->documentLoader(), loadType, 0);   
+        loadWithDocumentLoader(cachedPage->documentLoader(), loadType, 0, AllowNavigationToInvalidURL::Yes);
         return;
     }
 
@@ -3237,7 +3241,7 @@
         action = "" loadType, false);
     }
 
-    loadWithNavigationAction(request, action, LockHistory::No, loadType, 0);
+    loadWithNavigationAction(request, action, LockHistory::No, loadType, 0, AllowNavigationToInvalidURL::Yes);
 }
 
 // Loads content into this frame, as specified by history item

Modified: branches/safari-600.1-branch/Source/WebCore/loader/FrameLoader.h (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebCore/loader/FrameLoader.h	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebCore/loader/FrameLoader.h	2014-08-19 23:49:01 UTC (rev 172787)
@@ -108,7 +108,7 @@
     // FIXME: These are all functions which start loads. We have too many.
     void loadURLIntoChildFrame(const URL&, const String& referer, Frame*);
     void loadFrameRequest(const FrameLoadRequest&, LockHistory, LockBackForwardList,  // Called by submitForm, calls loadPostRequest and loadURL.
-        PassRefPtr<Event>, PassRefPtr<FormState>, ShouldSendReferrer);
+        PassRefPtr<Event>, PassRefPtr<FormState>, ShouldSendReferrer, AllowNavigationToInvalidURL);
 
     void load(const FrameLoadRequest&);
 
@@ -118,7 +118,7 @@
     unsigned long loadResourceSynchronously(const ResourceRequest&, StoredCredentials, ClientCredentialPolicy, ResourceError&, ResourceResponse&, Vector<char>& data);
 
     void changeLocation(SecurityOrigin*, const URL&, const String& referrer, LockHistory = LockHistory::Yes,
-        LockBackForwardList = LockBackForwardList::Yes, bool refresh = false);
+        LockBackForwardList = LockBackForwardList::Yes, bool refresh = false, AllowNavigationToInvalidURL = AllowNavigationToInvalidURL::Yes);
     void urlSelected(const URL&, const String& target, PassRefPtr<Event>, LockHistory, LockBackForwardList, ShouldSendReferrer);
     void submitForm(PassRefPtr<FormSubmission>);
 
@@ -320,8 +320,8 @@
 
     bool handleBeforeUnloadEvent(Chrome&, FrameLoader* frameLoaderBeingNavigated);
 
-    void continueLoadAfterNavigationPolicy(const ResourceRequest&, PassRefPtr<FormState>, bool shouldContinue);
-    void continueLoadAfterNewWindowPolicy(const ResourceRequest&, PassRefPtr<FormState>, const String& frameName, const NavigationAction&, bool shouldContinue);
+    void continueLoadAfterNavigationPolicy(const ResourceRequest&, PassRefPtr<FormState>, bool shouldContinue, AllowNavigationToInvalidURL);
+    void continueLoadAfterNewWindowPolicy(const ResourceRequest&, PassRefPtr<FormState>, const String& frameName, const NavigationAction&, bool shouldContinue, AllowNavigationToInvalidURL);
     void continueFragmentScrollAfterNavigationPolicy(const ResourceRequest&, bool shouldContinue);
 
     bool shouldPerformFragmentNavigation(bool isFormSubmission, const String& httpMethod, FrameLoadType, const URL&);
@@ -342,18 +342,18 @@
 
     void dispatchDidCommitLoad();
 
-    void urlSelected(const FrameLoadRequest&, PassRefPtr<Event>, LockHistory, LockBackForwardList, ShouldSendReferrer, ShouldReplaceDocumentIfJavaScriptURL);
+    void urlSelected(const FrameLoadRequest&, PassRefPtr<Event>, LockHistory, LockBackForwardList, ShouldSendReferrer, ShouldReplaceDocumentIfJavaScriptURL, AllowNavigationToInvalidURL);
 
-    void loadWithDocumentLoader(DocumentLoader*, FrameLoadType, PassRefPtr<FormState>); // Calls continueLoadAfterNavigationPolicy
+    void loadWithDocumentLoader(DocumentLoader*, FrameLoadType, PassRefPtr<FormState>, AllowNavigationToInvalidURL); // Calls continueLoadAfterNavigationPolicy
     void load(DocumentLoader*);                                                         // Calls loadWithDocumentLoader   
 
     void loadWithNavigationAction(const ResourceRequest&, const NavigationAction&,      // Calls loadWithDocumentLoader
-        LockHistory, FrameLoadType, PassRefPtr<FormState>);
+        LockHistory, FrameLoadType, PassRefPtr<FormState>, AllowNavigationToInvalidURL);
 
     void loadPostRequest(const ResourceRequest&, const String& referrer,                // Called by loadFrameRequest, calls loadWithNavigationAction
-        const String& frameName, LockHistory, FrameLoadType, PassRefPtr<Event>, PassRefPtr<FormState>);
+        const String& frameName, LockHistory, FrameLoadType, PassRefPtr<Event>, PassRefPtr<FormState>, AllowNavigationToInvalidURL);
     void loadURL(const URL&, const String& referrer, const String& frameName,          // Called by loadFrameRequest, calls loadWithNavigationAction or dispatches to navigation policy delegate
-        LockHistory, FrameLoadType, PassRefPtr<Event>, PassRefPtr<FormState>);
+        LockHistory, FrameLoadType, PassRefPtr<Event>, PassRefPtr<FormState>, AllowNavigationToInvalidURL);
 
     bool shouldReload(const URL& currentURL, const URL& destinationURL);
 

Modified: branches/safari-600.1-branch/Source/WebCore/loader/FrameLoaderTypes.h (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebCore/loader/FrameLoaderTypes.h	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebCore/loader/FrameLoaderTypes.h	2014-08-19 23:49:01 UTC (rev 172787)
@@ -119,6 +119,11 @@
         Yes,
         No
     };
+
+    enum class AllowNavigationToInvalidURL {
+        Yes,
+        No
+    };
 }
 
 #endif

Modified: branches/safari-600.1-branch/Source/WebCore/loader/NavigationScheduler.cpp (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebCore/loader/NavigationScheduler.cpp	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebCore/loader/NavigationScheduler.cpp	2014-08-19 23:49:01 UTC (rev 172787)
@@ -165,7 +165,7 @@
     {
         UserGestureIndicator gestureIndicator(wasUserGesture() ? DefinitelyProcessingUserGesture : DefinitelyNotProcessingUserGesture);
         bool refresh = equalIgnoringFragmentIdentifier(frame.document()->url(), url());
-        frame.loader().changeLocation(securityOrigin(), url(), referrer(), lockHistory(), lockBackForwardList(), refresh);
+        frame.loader().changeLocation(securityOrigin(), url(), referrer(), lockHistory(), lockBackForwardList(), refresh, AllowNavigationToInvalidURL::No);
     }
 };
 
@@ -173,6 +173,12 @@
 public:
     ScheduledLocationChange(SecurityOrigin* securityOrigin, const URL& url, const String& referrer, LockHistory lockHistory, LockBackForwardList lockBackForwardList, bool duringLoad)
         : ScheduledURLNavigation(0.0, securityOrigin, url, referrer, lockHistory, lockBackForwardList, duringLoad, true) { }
+
+    virtual void fire(Frame& frame) override
+    {
+        UserGestureIndicator gestureIndicator(wasUserGesture() ? DefinitelyProcessingUserGesture : DefinitelyNotProcessingUserGesture);
+        frame.loader().changeLocation(securityOrigin(), url(), referrer(), lockHistory(), lockBackForwardList(), false, AllowNavigationToInvalidURL::No);
+    }
 };
 
 class ScheduledRefresh : public ScheduledURLNavigation {
@@ -240,7 +246,7 @@
             return;
         FrameLoadRequest frameRequest(requestingDocument->securityOrigin());
         m_submission->populateFrameLoadRequest(frameRequest);
-        frame.loader().loadFrameRequest(frameRequest, lockHistory(), lockBackForwardList(), m_submission->event(), m_submission->state(), MaybeSendReferrer);
+        frame.loader().loadFrameRequest(frameRequest, lockHistory(), lockBackForwardList(), m_submission->event(), m_submission->state(), MaybeSendReferrer, AllowNavigationToInvalidURL::Yes);
     }
     
     virtual void didStartTimer(Frame& frame, Timer<NavigationScheduler>& timer) override
@@ -311,8 +317,6 @@
         return false;
     if (protocolIsJavaScript(url))
         return true;
-    if (!url.isValid() && !m_frame.settings().allowNavigationToInvalidURL())
-        return false;
     return NavigationDisablerForBeforeUnload::isNavigationAllowed();
 }
 
@@ -364,7 +368,7 @@
     // fragment part, we don't need to schedule the location change.
     URL parsedURL(ParsedURLString, url);
     if (parsedURL.hasFragmentIdentifier() && equalIgnoringFragmentIdentifier(m_frame.document()->url(), parsedURL)) {
-        loader.changeLocation(securityOrigin, m_frame.document()->completeURL(url), referrer, lockHistory, lockBackForwardList);
+        loader.changeLocation(securityOrigin, m_frame.document()->completeURL(url), referrer, lockHistory, lockBackForwardList, false, AllowNavigationToInvalidURL::No);
         return;
     }
 

Modified: branches/safari-600.1-branch/Source/WebCore/page/ContextMenuController.cpp (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebCore/page/ContextMenuController.cpp	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebCore/page/ContextMenuController.cpp	2014-08-19 23:49:01 UTC (rev 172787)
@@ -206,7 +206,7 @@
     if (!newPage)
         return;
     newPage->chrome().show();
-    newPage->mainFrame().loader().loadFrameRequest(request, LockHistory::No, LockBackForwardList::No, 0, 0, MaybeSendReferrer);
+    newPage->mainFrame().loader().loadFrameRequest(request, LockHistory::No, LockBackForwardList::No, 0, 0, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes);
 }
 
 #if PLATFORM(GTK)
@@ -405,12 +405,12 @@
         break;
     case ContextMenuItemTagOpenLink:
         if (Frame* targetFrame = m_context.hitTestResult().targetFrame())
-            targetFrame->loader().loadFrameRequest(FrameLoadRequest(frame->document()->securityOrigin(), ResourceRequest(m_context.hitTestResult().absoluteLinkURL(), frame->loader().outgoingReferrer())), LockHistory::No, LockBackForwardList::No, 0, 0, MaybeSendReferrer);
+            targetFrame->loader().loadFrameRequest(FrameLoadRequest(frame->document()->securityOrigin(), ResourceRequest(m_context.hitTestResult().absoluteLinkURL(), frame->loader().outgoingReferrer())), LockHistory::No, LockBackForwardList::No, 0, 0, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes);
         else
             openNewWindow(m_context.hitTestResult().absoluteLinkURL(), frame);
         break;
     case ContextMenuItemTagOpenLinkInThisWindow:
-        frame->loader().loadFrameRequest(FrameLoadRequest(frame->document()->securityOrigin(), ResourceRequest(m_context.hitTestResult().absoluteLinkURL(), frame->loader().outgoingReferrer())), LockHistory::No, LockBackForwardList::No, 0, 0, MaybeSendReferrer);
+        frame->loader().loadFrameRequest(FrameLoadRequest(frame->document()->securityOrigin(), ResourceRequest(m_context.hitTestResult().absoluteLinkURL(), frame->loader().outgoingReferrer())), LockHistory::No, LockBackForwardList::No, 0, 0, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes);
         break;
     case ContextMenuItemTagBold:
         frame->editor().command("ToggleBold").execute();

Modified: branches/safari-600.1-branch/Source/WebCore/page/Settings.in (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebCore/page/Settings.in	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebCore/page/Settings.in	2014-08-19 23:49:01 UTC (rev 172787)
@@ -225,10 +225,6 @@
 
 useImageDocumentForSubframePDF initial=false
 
-# Allow clients to permit navigation to an invalid URL. Some apps may use invalid URLs
-# as a means to pass data from the web-portion of their app to the native portion.
-allowNavigationToInvalidURL initial=false
-
 # Allow SourceBuffers to store up to 304MB each, enough for approximately five minutes
 # of 1080p video and stereo audio.
 maximumSourceBufferSize type=int, initial=318767104, conditional=MEDIA_SOURCE

Modified: branches/safari-600.1-branch/Source/WebKit/mac/ChangeLog (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebKit/mac/ChangeLog	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebKit/mac/ChangeLog	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1,3 +1,20 @@
+2014-08-19  Dana Burkart  <[email protected]>
+
+        Merge r172709. <rdar://problem/17850158>
+
+    2014-08-18  Andy Estes  <[email protected]>
+    
+            REGRESSION (r167856): adobe.com no longer able to launch Create Cloud app using a URL with a custom scheme
+            https://bugs.webkit.org/show_bug.cgi?id=136010
+    
+            Reviewed by Darin Adler.
+    
+            * Misc/WebKitVersionChecks.h: Removed WEBKIT_FIRST_VERSION_WITH_NAVIGATION_URL_VALIDATION.
+            * WebView/WebPDFView.mm:
+            (-[WebPDFView PDFViewWillClickOnLink:withURL:]): Passed AllowNavigationToInvalidURL::Yes to FrameLoader::loadFrameRequest.
+            * WebView/WebView.mm:
+            (-[WebView _preferencesChanged:]): Reverted the linked-on-or-after check added in r170120 since it's no longer necessary.
+    
 2014-08-13  Lucas Forschler  <[email protected]>
 
         Merge r172526

Modified: branches/safari-600.1-branch/Source/WebKit/mac/Misc/WebKitVersionChecks.h (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebKit/mac/Misc/WebKitVersionChecks.h	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebKit/mac/Misc/WebKitVersionChecks.h	2014-08-19 23:49:01 UTC (rev 172787)
@@ -71,7 +71,6 @@
 #define WEBKIT_FIRST_VERSION_WITH_CSS_ATTRIBUTE_SETTERS_IGNORING_PRIORITY 2239 // iOS 6.0
 #define WEBKIT_FIRST_VERSION_WITH_YOUTUBE_EMBED_IFRAME_TRANSFORM 2239 // iOS 6.0
 #define WEBKIT_FIRST_VERSION_WITHOUT_LEGACY_BACKGROUNDSIZE_SHORTHAND_BEHAVIOR 2665 // iOS 7.0
-#define WEBKIT_FIRST_VERSION_WITH_NAVIGATION_URL_VALIDATION 3185 // iOS 8.0
 #endif // PLATFORM(IOS)
 
 #ifdef __cplusplus

Modified: branches/safari-600.1-branch/Source/WebKit/mac/WebView/WebPDFView.mm (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebKit/mac/WebView/WebPDFView.mm	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebKit/mac/WebView/WebPDFView.mm	2014-08-19 23:49:01 UTC (rev 172787)
@@ -1032,7 +1032,7 @@
 
     // Call to the frame loader because this is where our security checks are made.
     Frame* frame = core([dataSource webFrame]);
-    frame->loader().loadFrameRequest(FrameLoadRequest(frame->document()->securityOrigin(), ResourceRequest(URL)), LockHistory::No, LockBackForwardList::No, event.get(), 0, MaybeSendReferrer);
+    frame->loader().loadFrameRequest(FrameLoadRequest(frame->document()->securityOrigin(), ResourceRequest(URL)), LockHistory::No, LockBackForwardList::No, event.get(), 0, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes);
 }
 
 - (void)PDFViewOpenPDFInNativeApplication:(PDFView *)sender

Modified: branches/safari-600.1-branch/Source/WebKit/mac/WebView/WebView.mm (172786 => 172787)


--- branches/safari-600.1-branch/Source/WebKit/mac/WebView/WebView.mm	2014-08-19 23:45:13 UTC (rev 172786)
+++ branches/safari-600.1-branch/Source/WebKit/mac/WebView/WebView.mm	2014-08-19 23:49:01 UTC (rev 172787)
@@ -2327,8 +2327,6 @@
 #if ENABLE(IOS_TEXT_AUTOSIZING)
     settings.setMinimumZoomFontSize([preferences _minimumZoomFontSize]);
 #endif
-
-    settings.setAllowNavigationToInvalidURL(!WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITH_NAVIGATION_URL_VALIDATION));
 #endif // PLATFORM(IOS)
 
 #if PLATFORM(MAC)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to