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: "willPerformClientRedirectToURL: x-dummy://A=a&B=b".</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 <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".</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: "willPerformClientRedirectToURL: x-dummy://A=a&B=b".</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 <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".</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: "willPerformClientRedirectToURL: http://A=a&B=b" followed by "didCancelClientRedirectForFrame".</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: "willPerformClientRedirectToURL: http://A=a&B=b" followed by "didCancelClientRedirectForFrame".</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 <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".</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 <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".</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: "willPerformClientRedirectToURL: http://A=a&B=b" followed by "didCancelClientRedirectForFrame".</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)