Title: [211341] trunk
Revision
211341
Author
y...@yoav.ws
Date
2017-01-28 14:53:54 -0800 (Sat, 28 Jan 2017)

Log Message

Add Link Preload as an off-by-default experimental feature menu item.
https://bugs.webkit.org/show_bug.cgi?id=167201

Reviewed by Ryosuke Niwa.

Source/WebCore:

Removed the explicit setting of the Link Preload experimental feature,
as it is now on by default for testing.

No new tests as this just removes methods from settings.

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences linkPreloadEnabled]):
(-[WebPreferences setLinkPreloadEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit/win:

* WebPreferenceKeysPrivate.h:
* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::valueForKey):
(WebPreferences::setLinkPreloadEnabled):
(WebPreferences::linkPreloadEnabled):
* WebPreferences.h:
* Interfaces/IWebPreferencesPrivate.idl:

Source/WebKit2:

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetLinkPreloadEnabled):
(WKPreferencesGetLinkPreloadEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
* DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):

Websites/webkit.org:

* experimental-features.html: Added Link Preload.

LayoutTests:

Removed code explicitly enabling Link preload from the tests, as it is now
turned on by default for testing. Corrected expectation files accordingly.

* http/tests/fetch/redirectmode-and-preload.html:
* http/tests/preload/delaying_onload_link_preload_after_discovery.html:
* http/tests/preload/delaying_onload_link_preload_after_discovery_image.html:
* http/tests/preload/download_resources-expected.txt:
* http/tests/preload/download_resources.html:
* http/tests/preload/download_resources_from_header_iframe.html:
* http/tests/preload/download_resources_from_invalid_headers.html:
* http/tests/preload/dynamic_adding_preload.html:
* http/tests/preload/dynamic_remove_preload_href-expected.txt:
* http/tests/preload/dynamic_remove_preload_href.html:
* http/tests/preload/not_delaying_window_onload_before_discovery.html:
* http/tests/preload/onerror_event-expected.txt:
* http/tests/preload/onerror_event.html:
* http/tests/preload/onload_event-expected.txt:
* http/tests/preload/onload_event.html:
* http/tests/preload/resources/download_resources_from_header.php:
* http/tests/preload/resources/invalid_resources_from_header.php:
* http/tests/preload/single_download_preload-expected.txt:
* http/tests/preload/single_download_preload.html:
* http/tests/security/cached-cross-origin-preloaded-css-stylesheet.html:
* http/tests/security/cached-cross-origin-preloading-css-stylesheet.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (211340 => 211341)


--- trunk/LayoutTests/ChangeLog	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/ChangeLog	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,3 +1,35 @@
+2017-01-28  Yoav Weiss  <y...@yoav.ws>
+
+        Add Link Preload as an off-by-default experimental feature menu item.
+        https://bugs.webkit.org/show_bug.cgi?id=167201
+
+        Reviewed by Ryosuke Niwa.
+
+        Removed code explicitly enabling Link preload from the tests, as it is now
+        turned on by default for testing. Corrected expectation files accordingly.
+
+        * http/tests/fetch/redirectmode-and-preload.html:
+        * http/tests/preload/delaying_onload_link_preload_after_discovery.html:
+        * http/tests/preload/delaying_onload_link_preload_after_discovery_image.html:
+        * http/tests/preload/download_resources-expected.txt:
+        * http/tests/preload/download_resources.html:
+        * http/tests/preload/download_resources_from_header_iframe.html:
+        * http/tests/preload/download_resources_from_invalid_headers.html:
+        * http/tests/preload/dynamic_adding_preload.html:
+        * http/tests/preload/dynamic_remove_preload_href-expected.txt:
+        * http/tests/preload/dynamic_remove_preload_href.html:
+        * http/tests/preload/not_delaying_window_onload_before_discovery.html:
+        * http/tests/preload/onerror_event-expected.txt:
+        * http/tests/preload/onerror_event.html:
+        * http/tests/preload/onload_event-expected.txt:
+        * http/tests/preload/onload_event.html:
+        * http/tests/preload/resources/download_resources_from_header.php:
+        * http/tests/preload/resources/invalid_resources_from_header.php:
+        * http/tests/preload/single_download_preload-expected.txt:
+        * http/tests/preload/single_download_preload.html:
+        * http/tests/security/cached-cross-origin-preloaded-css-stylesheet.html:
+        * http/tests/security/cached-cross-origin-preloading-css-stylesheet.html:
+
 2017-01-28  Antoine Quint  <grao...@apple.com>
 
         [Modern Media Controls] REGRESSION: Video stops playing after going into Full Screen in media documents

Modified: trunk/LayoutTests/http/tests/fetch/redirectmode-and-preload.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/fetch/redirectmode-and-preload.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/fetch/redirectmode-and-preload.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -8,10 +8,6 @@
     <meta name="author" title="Canon Research France" href=""
     <script src=""
     <script src=""
-    <script>
-if (window.internals)
-    internals.settings.setLinkPreloadEnabled(true);
-    </script>
     <link rel=preload _onload_="startTests()" href=""
   </head>
   <body>

Modified: trunk/LayoutTests/http/tests/preload/delaying_onload_link_preload_after_discovery.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/delaying_onload_link_preload_after_discovery.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/delaying_onload_link_preload_after_discovery.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
 <script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(true);
     if (window.testRunner) {
         testRunner.dumpAsText()
         testRunner.waitUntilDone();
@@ -14,8 +12,6 @@
 <script>
     window.addEventListener("load", function() {
         shouldBeTrue("finishedScript");
-        if (window.internals)
-            window.internals.settings.setLinkPreloadEnabled(false);
         setTimeout(function() { testRunner.notifyDone(); }, 0);
     });
     var scr = document.createElement("script");

Modified: trunk/LayoutTests/http/tests/preload/delaying_onload_link_preload_after_discovery_image.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/delaying_onload_link_preload_after_discovery_image.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/delaying_onload_link_preload_after_discovery_image.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
 <script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(true);
     if (window.testRunner) {
         testRunner.dumpAsText()
         testRunner.waitUntilDone();
@@ -14,8 +12,6 @@
 <script>
     window.addEventListener("load", function() {
         shouldBeTrue("finishedImage");
-        if (window.internals)
-            window.internals.settings.setLinkPreloadEnabled(false);
         testRunner.notifyDone();
     });
     var img = new Image();

Modified: trunk/LayoutTests/http/tests/preload/download_resources-expected.txt (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/download_resources-expected.txt	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/download_resources-expected.txt	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 15: <link rel=preload> must have a valid `as` value
+CONSOLE MESSAGE: line 11: <link rel=preload> must have a valid `as` value
 PASS internals.isPreloaded('../resources/dummy.js'); is true
 PASS internals.isPreloaded('../resources/dummy.css'); is true
 PASS internals.isPreloaded('../resources/square.png'); is true

Modified: trunk/LayoutTests/http/tests/preload/download_resources.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/download_resources.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/download_resources.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,10 +1,6 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(true);
-</script>
 <script src=""
 <link rel=preload href="" as=script>
 <link rel=preload href="" as=style>
@@ -29,7 +25,3 @@
     shouldBeFalse("internals.isPreloaded('../resources/dummy.xml?badvalue');");
     shouldBeTrue("internals.isPreloaded('../resources/dummy.xml');");
 </script>
-<script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(false);
-</script>

Modified: trunk/LayoutTests/http/tests/preload/download_resources_from_header_iframe.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/download_resources_from_header_iframe.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/download_resources_from_header_iframe.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
 <script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(true);
     if (window.testRunner) {
         testRunner.dumpAsText();
         testRunner.dumpChildFramesAsText();

Modified: trunk/LayoutTests/http/tests/preload/download_resources_from_invalid_headers.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/download_resources_from_invalid_headers.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/download_resources_from_invalid_headers.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
 <script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(true);
     if (window.testRunner) {
         testRunner.dumpAsText();
         testRunner.dumpChildFramesAsText();

Modified: trunk/LayoutTests/http/tests/preload/dynamic_adding_preload.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/dynamic_adding_preload.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/dynamic_adding_preload.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,10 +1,6 @@
 <!DOCTYPE html>
 <html>
 <head>
-<script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(true);
-</script>
 <script src=""
 <body>
 <script>
@@ -17,8 +13,5 @@
 <script src=""
 <script>
     shouldBeTrue("internals.isPreloaded('../resources/dummy.js');");
-
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(false);
 </script>
 </body>

Modified: trunk/LayoutTests/http/tests/preload/dynamic_remove_preload_href-expected.txt (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/dynamic_remove_preload_href-expected.txt	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/dynamic_remove_preload_href-expected.txt	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 19: <link rel=preload> has an invalid `href` value
+CONSOLE MESSAGE: line 17: <link rel=preload> has an invalid `href` value
 PASS downloadedImage is false
 PASS successfullyParsed is true
 

Modified: trunk/LayoutTests/http/tests/preload/dynamic_remove_preload_href.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/dynamic_remove_preload_href.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/dynamic_remove_preload_href.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -2,10 +2,8 @@
 <html>
 <head>
 <script>
-    if (window.internals) {
-        window.internals.settings.setLinkPreloadEnabled(true);
+    if (window.internals)
         window.internals.settings.setResourceTimingEnabled(true);
-    }
 </script>
 <script src=""
 <body>
@@ -24,10 +22,8 @@
                 downloadedImage = true;
         }
         shouldBeFalse("downloadedImage");
-        if (window.internals) {
-            window.internals.settings.setLinkPreloadEnabled(false);
+        if (window.internals)
             window.internals.settings.setResourceTimingEnabled(false);
-        }
     });
 </script>
 </body>

Modified: trunk/LayoutTests/http/tests/preload/not_delaying_window_onload_before_discovery.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/not_delaying_window_onload_before_discovery.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/not_delaying_window_onload_before_discovery.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
 <script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(true);
     if (window.testRunner) {
         testRunner.dumpAsText()
         testRunner.waitUntilDone();
@@ -15,8 +13,6 @@
     function test() {
         shouldBeTrue("windowOnLoad");
         if (finishedImage && finishedScript) {
-            if (window.internals)
-                window.internals.settings.setLinkPreloadEnabled(false);
             if (window.testRunner)
                 testRunner.notifyDone();
         }

Modified: trunk/LayoutTests/http/tests/preload/onerror_event-expected.txt (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/onerror_event-expected.txt	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/onerror_event-expected.txt	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 29: <link rel=preload> must have a valid `as` value
+CONSOLE MESSAGE: line 27: <link rel=preload> must have a valid `as` value
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/http/tests/preload/onerror_event.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/onerror_event.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/onerror_event.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
 <script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(true);
     if (window.testRunner) {
         testRunner.dumpAsText()
         testRunner.waitUntilDone();
@@ -37,8 +35,6 @@
         shouldBeTrue("trackFailed");
         shouldBeTrue("gibrishFailed");
         shouldBeTrue("noTypeFailed");
-        if (window.internals)
-            window.internals.settings.setLinkPreloadEnabled(false);
         if (window.testRunner)
             testRunner.notifyDone();
     };

Modified: trunk/LayoutTests/http/tests/preload/onload_event-expected.txt (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/onload_event-expected.txt	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/onload_event-expected.txt	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,5 +1,5 @@
-CONSOLE MESSAGE: line 35: <link rel=preload> must have a valid `as` value
-CONSOLE MESSAGE: line 36: <link rel=preload> must have a valid `as` value
+CONSOLE MESSAGE: line 33: <link rel=preload> must have a valid `as` value
+CONSOLE MESSAGE: line 34: <link rel=preload> must have a valid `as` value
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/http/tests/preload/onload_event.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/onload_event.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/onload_event.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
 <script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(true);
     if (window.testRunner) {
         testRunner.dumpAsText()
         testRunner.waitUntilDone();
@@ -50,8 +48,6 @@
         shouldBeTrue("xsltErrored");
         shouldBeTrue("noTypeLoaded");
         shouldBeTrue("emptyTypeLoaded");
-        if (window.internals)
-            window.internals.settings.setLinkPreloadEnabled(false);
         if (window.testRunner)
             testRunner.notifyDone();
     }

Modified: trunk/LayoutTests/http/tests/preload/resources/download_resources_from_header.php (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/resources/download_resources_from_header.php	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/resources/download_resources_from_header.php	2017-01-28 22:53:54 UTC (rev 211341)
@@ -20,7 +20,3 @@
     shouldBeFalse("internals.isPreloaded('../resources/dummy.xml?badvalue');");
     shouldBeTrue("internals.isPreloaded('../resources/dummy.xml');");
 </script>
-<script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(false);
-</script>

Modified: trunk/LayoutTests/http/tests/preload/resources/invalid_resources_from_header.php (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/resources/invalid_resources_from_header.php	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/resources/invalid_resources_from_header.php	2017-01-28 22:53:54 UTC (rev 211341)
@@ -40,7 +40,3 @@
     shouldBeFalse("internals.isPreloaded('#foobar');");
     shouldBeFalse("internals.isPreloaded('../resources/Ahem.ttf');");
 </script>
-<script>
-    if (window.internals)
-        window.internals.settings.setLinkPreloadEnabled(false);
-</script>

Modified: trunk/LayoutTests/http/tests/preload/single_download_preload-expected.txt (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/single_download_preload-expected.txt	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/single_download_preload-expected.txt	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: line 21: <link rel=preload> must have a valid `as` value
+CONSOLE MESSAGE: line 19: <link rel=preload> must have a valid `as` value
  
 
 PASS Makes sure that preloaded resources are not downloaded again when used 

Modified: trunk/LayoutTests/http/tests/preload/single_download_preload.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/preload/single_download_preload.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/preload/single_download_preload.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,9 +1,7 @@
 <!DOCTYPE html>
 <script>
-    if (window.internals) {
-        internals.settings.setLinkPreloadEnabled(true);
+    if (window.internals)
         internals.settings.setResourceTimingEnabled(true);
-    }
 </script>
 <script src=""
 <script src=""
@@ -61,10 +59,8 @@
             // FIXME: XHR should trigger a single download, but it downloads 2 resources instead.
             verifyDownloadNumber("http://127.0.0.1:8000/resources/dummy.xml", 2);
             // FIXME: We should verify for video and audio as well, but they seem to (flakily?) trigger multiple partial requests.
-            if (window.internals) {
-                internals.settings.setLinkPreloadEnabled(false);
+            if (window.internals)
                 internals.settings.setResourceTimingEnabled(false);
-            }
             t.done();
             }), 100);
     }));

Modified: trunk/LayoutTests/http/tests/security/cached-cross-origin-preloaded-css-stylesheet.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/security/cached-cross-origin-preloaded-css-stylesheet.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/security/cached-cross-origin-preloaded-css-stylesheet.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
 <script>
-if (window.internals)
-    internals.settings.setLinkPreloadEnabled(true);
 if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();

Modified: trunk/LayoutTests/http/tests/security/cached-cross-origin-preloading-css-stylesheet.html (211340 => 211341)


--- trunk/LayoutTests/http/tests/security/cached-cross-origin-preloading-css-stylesheet.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/LayoutTests/http/tests/security/cached-cross-origin-preloading-css-stylesheet.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -2,8 +2,6 @@
 <html>
 <body>
 <script>
-if (window.internals)
-    internals.settings.setLinkPreloadEnabled(true);
 if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();

Modified: trunk/Source/WebCore/ChangeLog (211340 => 211341)


--- trunk/Source/WebCore/ChangeLog	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebCore/ChangeLog	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,3 +1,21 @@
+2017-01-28  Yoav Weiss  <y...@yoav.ws>
+
+        Add Link Preload as an off-by-default experimental feature menu item.
+        https://bugs.webkit.org/show_bug.cgi?id=167201
+
+        Reviewed by Ryosuke Niwa.
+
+        Removed the explicit setting of the Link Preload experimental feature,
+        as it is now on by default for testing.
+
+        No new tests as this just removes methods from settings.
+
+        * testing/InternalSettings.cpp:
+        (WebCore::InternalSettings::Backup::Backup):
+        (WebCore::InternalSettings::Backup::restoreTo):
+        * testing/InternalSettings.h:
+        * testing/InternalSettings.idl:
+
 2017-01-28  Joseph Pecoraro  <pecor...@apple.com>
 
         Fix typo in error message

Modified: trunk/Source/WebCore/testing/InternalSettings.cpp (211340 => 211341)


--- trunk/Source/WebCore/testing/InternalSettings.cpp	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebCore/testing/InternalSettings.cpp	2017-01-28 22:53:54 UTC (rev 211341)
@@ -95,7 +95,6 @@
     , m_forcedDisplayIsMonochromeAccessibilityValue(settings.forcedDisplayIsMonochromeAccessibilityValue())
     , m_forcedPrefersReducedMotionAccessibilityValue(settings.forcedPrefersReducedMotionAccessibilityValue())
     , m_resourceTimingEnabled(RuntimeEnabledFeatures::sharedFeatures().resourceTimingEnabled())
-    , m_linkPreloadEnabled(RuntimeEnabledFeatures::sharedFeatures().linkPreloadEnabled())
 #if ENABLE(INDEXED_DATABASE_IN_WORKERS)
     , m_indexedDBWorkersEnabled(RuntimeEnabledFeatures::sharedFeatures().indexedDBWorkersEnabled())
 #endif
@@ -184,7 +183,6 @@
     Settings::setAllowsAnySSLCertificate(false);
 
     RuntimeEnabledFeatures::sharedFeatures().setResourceTimingEnabled(m_resourceTimingEnabled);
-    RuntimeEnabledFeatures::sharedFeatures().setLinkPreloadEnabled(m_linkPreloadEnabled);
 #if ENABLE(INDEXED_DATABASE_IN_WORKERS)
     RuntimeEnabledFeatures::sharedFeatures().setIndexedDBWorkersEnabled(m_indexedDBWorkersEnabled);
 #endif
@@ -671,11 +669,6 @@
     RuntimeEnabledFeatures::sharedFeatures().setResourceTimingEnabled(enabled);
 }
 
-void InternalSettings::setLinkPreloadEnabled(bool enabled)
-{
-    RuntimeEnabledFeatures::sharedFeatures().setLinkPreloadEnabled(enabled);
-}
-
 void InternalSettings::setIndexedDBWorkersEnabled(bool enabled)
 {
 #if ENABLE(INDEXED_DATABASE_IN_WORKERS)

Modified: trunk/Source/WebCore/testing/InternalSettings.h (211340 => 211341)


--- trunk/Source/WebCore/testing/InternalSettings.h	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebCore/testing/InternalSettings.h	2017-01-28 22:53:54 UTC (rev 211341)
@@ -110,7 +110,6 @@
 
     // RuntimeEnabledFeatures.
     static void setResourceTimingEnabled(bool);
-    static void setLinkPreloadEnabled(bool);
     static void setIndexedDBWorkersEnabled(bool);
     static void setCSSGridLayoutEnabled(bool);
     static void setWebGL2Enabled(bool);
@@ -188,7 +187,6 @@
 
         // Runtime enabled settings.
         bool m_resourceTimingEnabled;
-        bool m_linkPreloadEnabled;
         bool m_indexedDBWorkersEnabled;
         bool m_cssGridLayoutEnabled;
         bool m_webGL2Enabled;

Modified: trunk/Source/WebCore/testing/InternalSettings.idl (211340 => 211341)


--- trunk/Source/WebCore/testing/InternalSettings.idl	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebCore/testing/InternalSettings.idl	2017-01-28 22:53:54 UTC (rev 211341)
@@ -83,7 +83,6 @@
 
     // RuntimeEnabledFeatures.
     void setResourceTimingEnabled(boolean enabled);
-    void setLinkPreloadEnabled(boolean enabled);
     void setIndexedDBWorkersEnabled(boolean enabled);
     void setCSSGridLayoutEnabled(boolean enabled);
     void setWebGL2Enabled(boolean enabled);

Modified: trunk/Source/WebKit/mac/ChangeLog (211340 => 211341)


--- trunk/Source/WebKit/mac/ChangeLog	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit/mac/ChangeLog	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,3 +1,18 @@
+2017-01-28  Yoav Weiss  <y...@yoav.ws>
+
+        Add Link Preload as an off-by-default experimental feature menu item.
+        https://bugs.webkit.org/show_bug.cgi?id=167201
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (-[WebPreferences linkPreloadEnabled]):
+        (-[WebPreferences setLinkPreloadEnabled:]):
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
 2017-01-28  Joseph Pecoraro  <pecor...@apple.com>
 
         Add User Timing Experimental Feature

Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (211340 => 211341)


--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2017-01-28 22:53:54 UTC (rev 211341)
@@ -176,6 +176,7 @@
 #define WebKitSubtleCryptoEnabledPreferenceKey @"WebKitSubtleCryptoEnabled"
 #define WebKitMediaStreamEnabledPreferenceKey @"WebKitMediaStreamEnabled"
 #define WebKitPeerConnectionEnabledPreferenceKey @"WebKitPeerConnectionEnabled"
+#define WebKitLinkPreloadEnabledPreferenceKey @"WebKitLinkPreloadEnabled"
 
 #if !TARGET_OS_IPHONE
 // These are private both because callers should be using the cover methods and because the

Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (211340 => 211341)


--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2017-01-28 22:53:54 UTC (rev 211341)
@@ -2755,6 +2755,16 @@
     [self _setBoolValue:flag forKey:WebKitPeerConnectionEnabledPreferenceKey];
 }
 
+- (BOOL)linkPreloadEnabled
+{
+    return [self _boolValueForKey:WebKitLinkPreloadEnabledPreferenceKey];
+}
+
+- (void)setLinkPreloadEnabled:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitLinkPreloadEnabledPreferenceKey];
+}
+
 - (void)setMetaRefreshEnabled:(BOOL)enabled
 {
     [self setHTTPEquivEnabled:enabled];

Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (211340 => 211341)


--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2017-01-28 22:53:54 UTC (rev 211341)
@@ -529,5 +529,6 @@
 @property (nonatomic) BOOL allowsInlineMediaPlaybackAfterFullscreen;
 @property (nonatomic) BOOL intersectionObserverEnabled;
 @property (nonatomic) BOOL userTimingEnabled;
+@property (nonatomic) BOOL linkPreloadEnabled;
 
 @end

Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (211340 => 211341)


--- trunk/Source/WebKit/mac/WebView/WebView.mm	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm	2017-01-28 22:53:54 UTC (rev 211341)
@@ -2912,6 +2912,8 @@
 
     RuntimeEnabledFeatures::sharedFeatures().setUserTimingEnabled(preferences.userTimingEnabled);
 
+    RuntimeEnabledFeatures::sharedFeatures().setLinkPreloadEnabled(preferences.linkPreloadEnabled);
+
     NSTimeInterval timeout = [preferences incrementalRenderingSuppressionTimeoutInSeconds];
     if (timeout > 0)
         settings.setIncrementalRenderingSuppressionTimeoutInSeconds(timeout);

Modified: trunk/Source/WebKit/win/ChangeLog (211340 => 211341)


--- trunk/Source/WebKit/win/ChangeLog	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit/win/ChangeLog	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,3 +1,19 @@
+2017-01-28  Yoav Weiss  <y...@yoav.ws>
+
+        Add Link Preload as an off-by-default experimental feature menu item.
+        https://bugs.webkit.org/show_bug.cgi?id=167201
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebPreferenceKeysPrivate.h:
+        * WebPreferences.cpp:
+        (WebPreferences::initializeDefaultSettings):
+        (WebPreferences::valueForKey):
+        (WebPreferences::setLinkPreloadEnabled):
+        (WebPreferences::linkPreloadEnabled):
+        * WebPreferences.h:
+        * Interfaces/IWebPreferencesPrivate.idl:
+
 2017-01-28  Joseph Pecoraro  <pecor...@apple.com>
 
         Add User Timing Experimental Feature

Modified: trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl (211340 => 211341)


--- trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl	2017-01-28 22:53:54 UTC (rev 211341)
@@ -196,4 +196,6 @@
     HRESULT setWebAnimationsEnabled([in] BOOL enabled);
     HRESULT userTimingEnabled([out, retval] BOOL*);
     HRESULT setUserTimingEnabled([in] BOOL enabled);
+    HRESULT linkPreloadEnabled([out, retval] BOOL*);
+    HRESULT setLinkPreloadEnabled([in] BOOL enabled);
 }

Modified: trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h (211340 => 211341)


--- trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h	2017-01-28 22:53:54 UTC (rev 211341)
@@ -180,3 +180,5 @@
 #define WebKitWebAnimationsEnabledPreferenceKey "WebKitWebAnimationsEnabled"
 
 #define WebKitUserTimingEnabledPreferenceKey "WebKitUserTimingEnabled"
+
+#define WebKitLinkPreloadEnabledPreferenceKey "WebKitLinkPreloadEnabled"

Modified: trunk/Source/WebKit/win/WebPreferences.cpp (211340 => 211341)


--- trunk/Source/WebKit/win/WebPreferences.cpp	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit/win/WebPreferences.cpp	2017-01-28 22:53:54 UTC (rev 211341)
@@ -309,6 +309,8 @@
 
     CFDictionaryAddValue(defaults, CFSTR(WebKitUserTimingEnabledPreferenceKey), kCFBooleanFalse);
 
+    CFDictionaryAddValue(defaults, CFSTR(WebKitLinkPreloadEnabledPreferenceKey), kCFBooleanFalse);
+
     defaultSettings = defaults;
 }
 
@@ -2008,6 +2010,20 @@
     return S_OK;
 }
 
+HRESULT WebPreferences::setLinkPreloadEnabled(BOOL enabled)
+{
+    setBoolValue(WebKitLinkPreloadEnabledPreferenceKey, enabled);
+    return S_OK;
+}
+
+HRESULT WebPreferences::linkPreloadEnabled(_Out_ BOOL* enabled)
+{
+    if (!enabled)
+        return E_POINTER;
+    *enabled = boolValueForKey(WebKitLinkPreloadEnabledPreferenceKey);
+    return S_OK;
+}
+
 HRESULT WebPreferences::setApplicationId(BSTR applicationId)
 {
     m_applicationId = String(applicationId).createCFString();

Modified: trunk/Source/WebKit/win/WebPreferences.h (211340 => 211341)


--- trunk/Source/WebKit/win/WebPreferences.h	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit/win/WebPreferences.h	2017-01-28 22:53:54 UTC (rev 211341)
@@ -249,6 +249,8 @@
     virtual HRESULT STDMETHODCALLTYPE setWebAnimationsEnabled(BOOL);
     virtual HRESULT STDMETHODCALLTYPE userTimingEnabled(_Out_ BOOL*);
     virtual HRESULT STDMETHODCALLTYPE setUserTimingEnabled(BOOL);
+    virtual HRESULT STDMETHODCALLTYPE linkPreloadEnabled(_Out_ BOOL*);
+    virtual HRESULT STDMETHODCALLTYPE setLinkPreloadEnabled(BOOL);
 
     // WebPreferences
 

Modified: trunk/Source/WebKit2/ChangeLog (211340 => 211341)


--- trunk/Source/WebKit2/ChangeLog	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit2/ChangeLog	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,3 +1,18 @@
+2017-01-28  Yoav Weiss  <y...@yoav.ws>
+
+        Add Link Preload as an off-by-default experimental feature menu item.
+        https://bugs.webkit.org/show_bug.cgi?id=167201
+
+        Reviewed by Ryosuke Niwa.
+
+        * Shared/WebPreferencesDefinitions.h:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetLinkPreloadEnabled):
+        (WKPreferencesGetLinkPreloadEnabled):
+        * UIProcess/API/C/WKPreferencesRefPrivate.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+
 2017-01-28  Joseph Pecoraro  <pecor...@apple.com>
 
         Add User Timing Experimental Feature

Modified: trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h (211340 => 211341)


--- trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h	2017-01-28 22:53:54 UTC (rev 211341)
@@ -315,6 +315,7 @@
     macro(CSSGridLayoutEnabled, cssGridLayoutEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "CSS Grid", "CSS Grid Layout Module support") \
     macro(SpringTimingFunctionEnabled, springTimingFunctionEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "CSS Spring Animations", "CSS Spring Animation prototype") \
     macro(GamepadsEnabled, gamepadsEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Gamepads", "Web Gamepad API support") \
+    macro(LinkPreloadEnabled, linkPreloadEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Link Preload", "Link preload support") \
     macro(ModernMediaControlsEnabled, modernMediaControlsEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Modern Media Controls", "Use modern media controls look") \
     macro(InputEventsEnabled, inputEventsEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Input Events", "Enable InputEvents support") \
     macro(SubtleCryptoEnabled, subtleCryptoEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "SubtleCrypto", "Enable SubtleCrypto support") \

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (211340 => 211341)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1641,6 +1641,16 @@
     return toImpl(preferencesRef)->subtleCryptoEnabled();
 }
 
+void WKPreferencesSetLinkPreloadEnabled(WKPreferencesRef preferencesRef, bool flag)
+{
+    toImpl(preferencesRef)->setLinkPreloadEnabled(flag);
+}
+
+bool WKPreferencesGetLinkPreloadEnabled(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->linkPreloadEnabled();
+}
+
 void WKPreferencesSetShouldSuppressKeyboardInputDuringProvisionalNavigation(WKPreferencesRef preferencesRef, bool flag)
 {
     toImpl(preferencesRef)->setShouldSuppressKeyboardInputDuringProvisionalNavigation(flag);

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h (211340 => 211341)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h	2017-01-28 22:53:54 UTC (rev 211341)
@@ -461,6 +461,10 @@
 WK_EXPORT void WKPreferencesSetShouldSuppressKeyboardInputDuringProvisionalNavigation(WKPreferencesRef, bool flag);
 WK_EXPORT bool WKPreferencesGetShouldSuppressKeyboardInputDuringProvisionalNavigation(WKPreferencesRef);
 
+// Defaults to false.
+WK_EXPORT void WKPreferencesSetLinkPreloadEnabled(WKPreferencesRef, bool flag);
+WK_EXPORT bool WKPreferencesGetLinkPreloadEnabled(WKPreferencesRef);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (211340 => 211341)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2017-01-28 22:53:54 UTC (rev 211341)
@@ -3240,6 +3240,8 @@
 
     // Experimental Features.
 
+    RuntimeEnabledFeatures::sharedFeatures().setLinkPreloadEnabled(store.getBoolValueForKey(WebPreferencesKey::linkPreloadEnabledKey()));
+
 #if ENABLE(CSS_GRID_LAYOUT)
     RuntimeEnabledFeatures::sharedFeatures().setCSSGridLayoutEnabled(store.getBoolValueForKey(WebPreferencesKey::cssGridLayoutEnabledKey()));
 #endif

Modified: trunk/Tools/ChangeLog (211340 => 211341)


--- trunk/Tools/ChangeLog	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Tools/ChangeLog	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,3 +1,15 @@
+2017-01-28  Yoav Weiss  <y...@yoav.ws>
+
+        Add Link Preload as an off-by-default experimental feature menu item.
+        https://bugs.webkit.org/show_bug.cgi?id=167201
+
+        Reviewed by Ryosuke Niwa.
+
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (resetWebPreferencesToConsistentValues):
+        * DumpRenderTree/win/DumpRenderTree.cpp:
+        (resetWebPreferencesToConsistentValues):
+
 2017-01-28  Joseph Pecoraro  <pecor...@apple.com>
 
         Add User Timing Experimental Feature

Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (211340 => 211341)


--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2017-01-28 22:53:54 UTC (rev 211341)
@@ -900,6 +900,7 @@
     [preferences setCSSGridLayoutEnabled:YES];
     // FIXME: SpringTimingFunction
     [preferences setGamepadsEnabled:YES];
+    [preferences setLinkPreloadEnabled:YES];
     [preferences setModernMediaControlsEnabled:YES];
     // FIXME: InputEvents
     [preferences setSubtleCryptoEnabled:YES];

Modified: trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp (211340 => 211341)


--- trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp	2017-01-28 22:53:54 UTC (rev 211341)
@@ -879,6 +879,7 @@
     prefsPrivate4->setShadowDOMEnabled(TRUE);
     prefsPrivate4->setCustomElementsEnabled(TRUE);
     prefsPrivate4->setModernMediaControlsEnabled(FALSE);
+    prefsPrivate4->setLinkPreloadEnabled(TRUE);
 
     setAlwaysAcceptCookies(false);
 }

Modified: trunk/Websites/webkit.org/ChangeLog (211340 => 211341)


--- trunk/Websites/webkit.org/ChangeLog	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Websites/webkit.org/ChangeLog	2017-01-28 22:53:54 UTC (rev 211341)
@@ -1,3 +1,12 @@
+2017-01-28  Yoav Weiss  <y...@yoav.ws>
+
+        Add Link Preload as an off-by-default experimental feature menu item.
+        https://bugs.webkit.org/show_bug.cgi?id=167201
+
+        Reviewed by Ryosuke Niwa.
+
+        * experimental-features.html: Added Link Preload.
+
 2017-01-28  Joseph Pecoraro  <pecor...@apple.com>
 
         Add User Timing Experimental Feature

Modified: trunk/Websites/webkit.org/experimental-features.html (211340 => 211341)


--- trunk/Websites/webkit.org/experimental-features.html	2017-01-28 22:35:17 UTC (rev 211340)
+++ trunk/Websites/webkit.org/experimental-features.html	2017-01-28 22:53:54 UTC (rev 211341)
@@ -78,6 +78,11 @@
     return canvas.getContext("webgl2");
 }
 
+function testLinkPreload() {
+    var link = document.createElement("link");
+    return link.relList.supports("preload");
+}
+
 function testGamepad() {
     return navigator.getGamepads;
 }
@@ -140,6 +145,7 @@
         <div class="test" id="Gamepad"><p>Gamepad API</p></div>
         <div class="test" id="FormValidation"><p>HTML Form Validation</p></div>
         <div class="test" id="InputEvents"><p>HTML Input Events</p></div>
+        <div class="test" id="LinkPreload"><p>Link Preload</p></div>
         <div class="test" id="SubtleCrypto"><p>SubtleCrypto</p></div>
         <div class="test" id="VariationFonts"><p>Variation Fonts</p></div>
         <div class="test" id="UserTiming"><p>User Timing</p></div>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to