[Mac] Add an experimental feature setting for async frame scrolling
authorfred.wang@free.fr <fred.wang@free.fr@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Jun 2017 06:04:55 +0000 (06:04 +0000)
committerfred.wang@free.fr <fred.wang@free.fr@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Jun 2017 06:04:55 +0000 (06:04 +0000)
https://bugs.webkit.org/show_bug.cgi?id=173359

Source/WebCore:

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-19
Reviewed by Simon Fraser.

The necessary work to use compositing for frames and include them in the scrolling tree on
macOS was performed in r217726 and r217730. ScrollingTreeIncludesFrames was used to
determine when this behavior should be enabled. However, this does not work well on iOS where
ScrollingTreeIncludesFrames defaults to true and really means "include the frames in the
scrolling tree when necessary". Hence we instead introduce a new "async frame scrolling"
switch to enable the behavior on macOS, which will also be used in a follow-up commit on iOS.
This new setting is also made an "experimental feature", so that it will be more convenient
for developer to try it.

Test: compositing/iframes/compositing-for-scrollable-iframe.html
      fast/scrolling/scrolling-tree-includes-frame.html

* page/Settings.in: Declare new setting for async frame scrolling.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView): Also include frames in
scrolling tree when async frame scrolling is enabled.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame): Rely on async frame
scrolling to decide when compositing is needed.

Source/WebKit/mac:

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-19
Reviewed by Simon Fraser.

* WebView/WebPreferenceKeysPrivate.h: Declare key for async frame scrolling preference.
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Initialize async frame scrolling preference to false.
(-[WebPreferences asyncFrameScrollingEnabled]): Define getter for async frame scrolling.
(-[WebPreferences setAsyncFrameScrollingEnabled:]): Define setter for async frame scrolling.
* WebView/WebPreferencesPrivate.h: Declare setter and getter.
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Take into account preference update for async frame
scrolling.

Source/WebKit2:

Reviewed by Simon Fraser.

* Shared/WebPreferencesDefinitions.h: Add experimental feature "async frame scrolling".
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetAsyncFrameScrollingEnabled): Add setter for async frame scrolling.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Declare setter.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setAsyncFrameScrollingEnabled): Add setter for async frame scrolling.
* WebProcess/InjectedBundle/InjectedBundle.h: Declare setter.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Take into account preference update for async frame
scrolling.

Tools:

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-19
Reviewed by Simon Fraser.

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures): Do not enable async frame scrolling for now.
(resetWebPreferencesToConsistentValues): Disable async frame scrolling by default.
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting): Initalize to async frame scrolling to false.

LayoutTests:

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-19
Reviewed by Simon Fraser.

* compositing/iframes/compositing-for-scrollable-iframe.html: Use "async frame scrolling" for
this test.
* fast/scrolling/scrolling-tree-includes-frame.html: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@218534 268f45cc-cd09-0410-ab3c-d52691b4dbfc

22 files changed:
LayoutTests/ChangeLog
LayoutTests/compositing/iframes/compositing-for-scrollable-iframe.html
LayoutTests/fast/scrolling/scrolling-tree-includes-frame.html
Source/WebCore/ChangeLog
Source/WebCore/page/Settings.in
Source/WebCore/page/scrolling/ScrollingCoordinator.cpp
Source/WebCore/rendering/RenderLayerCompositor.cpp
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h
Source/WebKit/mac/WebView/WebPreferences.mm
Source/WebKit/mac/WebView/WebPreferencesPrivate.h
Source/WebKit/mac/WebView/WebView.mm
Source/WebKit2/ChangeLog
Source/WebKit2/Shared/WebPreferencesDefinitions.h
Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp
Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h
Source/WebKit2/WebProcess/WebPage/WebPage.cpp
Tools/ChangeLog
Tools/DumpRenderTree/mac/DumpRenderTree.mm
Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp

index c62f402..4966e57 100644 (file)
@@ -1,3 +1,14 @@
+2017-06-19  Frederic Wang  <fwang@igalia.com>
+
+        [Mac] Add an experimental feature setting for async frame scrolling
+        https://bugs.webkit.org/show_bug.cgi?id=173359
+
+        Reviewed by Simon Fraser.
+
+        * compositing/iframes/compositing-for-scrollable-iframe.html: Use "async frame scrolling" for
+        this test.
+        * fast/scrolling/scrolling-tree-includes-frame.html: Ditto.
+
 2017-06-19  Zan Dobersek  <zdobersek@igalia.com>
 
         [WebCrypto] Add test for ECDH SPKI imports using the ecDH algorithm identifier
index 71a09ea..38ff112 100644 (file)
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html>
   <head>
-    <title>Check whether scrollable iframes require compositing when they are included in the scrolling tree</title>
+    <title>Check whether scrollable iframes require compositing when async frame scrolling is enabled</title>
     <script>
       if (window.internals)
-          window.internals.settings.setScrollingTreeIncludesFrames(true);
+          window.internals.settings.setAsyncFrameScrollingEnabled(true);
     </script>
   </head>
   <body>
index 93c6098..c961468 100644 (file)
@@ -1,12 +1,12 @@
 <!DOCTYPE html>
 <html>
   <head>
-    <title>Check whether scrollable iframes are included in the scrolling tree</title>
+    <title>Check whether scrollable iframes are included in the scrolling tree when async frame scrolling is enabled</title>
     <script>
       if (window.testRunner)
           testRunner.dumpAsText();
       if (window.internals)
-          window.internals.settings.setScrollingTreeIncludesFrames(true);
+          window.internals.settings.setAsyncFrameScrollingEnabled(true);
       function doTest()
       {
           if (window.internals)
index ff82140..c88f9b4 100644 (file)
@@ -1,3 +1,30 @@
+2017-06-19  Frederic Wang  <fwang@igalia.com>
+
+        [Mac] Add an experimental feature setting for async frame scrolling
+        https://bugs.webkit.org/show_bug.cgi?id=173359
+
+        Reviewed by Simon Fraser.
+
+        The necessary work to use compositing for frames and include them in the scrolling tree on
+        macOS was performed in r217726 and r217730. ScrollingTreeIncludesFrames was used to
+        determine when this behavior should be enabled. However, this does not work well on iOS where
+        ScrollingTreeIncludesFrames defaults to true and really means "include the frames in the
+        scrolling tree when necessary". Hence we instead introduce a new "async frame scrolling"
+        switch to enable the behavior on macOS, which will also be used in a follow-up commit on iOS.
+        This new setting is also made an "experimental feature", so that it will be more convenient
+        for developer to try it.
+
+        Test: compositing/iframes/compositing-for-scrollable-iframe.html
+              fast/scrolling/scrolling-tree-includes-frame.html
+
+        * page/Settings.in: Declare new setting for async frame scrolling.
+        * page/scrolling/ScrollingCoordinator.cpp:
+        (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView): Also include frames in
+        scrolling tree when async frame scrolling is enabled.
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame): Rely on async frame
+        scrolling to decide when compositing is needed.
+
 2017-06-19  Zalan Bujtas  <zalan@apple.com>
 
         AX: Remove redundant AXObjectCache::textChanged(RenderObject*).
index f94303d..29f4385 100644 (file)
@@ -176,6 +176,7 @@ autostartOriginPlugInSnapshottingEnabled initial=true
 primaryPlugInSnapshotDetectionEnabled initial=true
 maximumPlugInSnapshotAttempts type=unsigned, initial=20
 frameFlattening type=FrameFlattening, initial=FrameFlatteningDisabled
+asyncFrameScrollingEnabled initial=false
 
 webSecurityEnabled initial=true
 spatialNavigationEnabled initial=false
index d186bc6..4fe2d84 100644 (file)
@@ -88,7 +88,11 @@ bool ScrollingCoordinator::coordinatesScrollingForFrameView(const FrameView& fra
     ASSERT(isMainThread());
     ASSERT(m_page);
 
-    if (!frameView.frame().isMainFrame() && !m_page->settings().scrollingTreeIncludesFrames())
+    if (!frameView.frame().isMainFrame() && !m_page->settings().scrollingTreeIncludesFrames()
+#if PLATFORM(MAC)
+        && !m_page->settings().asyncFrameScrollingEnabled()
+#endif
+    )
         return false;
 
     RenderView* renderView = frameView.frame().contentRenderer();
index 57333cb..7749e93 100644 (file)
@@ -2469,7 +2469,7 @@ bool RenderLayerCompositor::requiresCompositingForScrollableFrame() const
         return false;
 
 #if PLATFORM(MAC)
-    if (!m_renderView.settings().scrollingTreeIncludesFrames())
+    if (!m_renderView.settings().asyncFrameScrollingEnabled())
         return false;
 #endif
 
index 72ebc45..fd1e401 100644 (file)
@@ -1,3 +1,20 @@
+2017-06-19  Frederic Wang  <fwang@igalia.com>
+
+        [Mac] Add an experimental feature setting for async frame scrolling
+        https://bugs.webkit.org/show_bug.cgi?id=173359
+
+        Reviewed by Simon Fraser.
+
+        * WebView/WebPreferenceKeysPrivate.h: Declare key for async frame scrolling preference.
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]): Initialize async frame scrolling preference to false.
+        (-[WebPreferences asyncFrameScrollingEnabled]): Define getter for async frame scrolling.
+        (-[WebPreferences setAsyncFrameScrollingEnabled:]): Define setter for async frame scrolling.
+        * WebView/WebPreferencesPrivate.h: Declare setter and getter.
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]): Take into account preference update for async frame
+        scrolling.
+
 2017-06-19  Chris Dumez  <cdumez@apple.com>
 
         Use WTF::Function instead of std::function in more places in WebCore/
index fabcce6..08ee13f 100644 (file)
 #define WebKitForceWebGLUsesLowPowerPreferenceKey @"WebKitForceWebGLUsesLowPower"
 #define WebKitAccelerated2dCanvasEnabledPreferenceKey @"WebKitAccelerated2dCanvasEnabled"
 #define WebKitFrameFlatteningPreferenceKey @"WebKitFrameFlattening"
+#define WebKitAsyncFrameScrollingEnabledPreferenceKey @"WebKitAsyncFrameScrollingEnabled"
 #define WebKitSpatialNavigationEnabledPreferenceKey @"WebKitSpatialNavigationEnabled"
 #define WebKitPaginateDuringLayoutEnabledPreferenceKey @"WebKitPaginateDuringLayoutEnabled"
 #define WebKitDNSPrefetchingEnabledPreferenceKey @"WebKitDNSPrefetchingEnabled"
index 91943c4..a6e2357 100644 (file)
@@ -524,6 +524,7 @@ public:
 #else
         [NSNumber numberWithUnsignedInt:FrameFlatteningDisabled], WebKitFrameFlatteningPreferenceKey,
 #endif
+        [NSNumber numberWithBool:NO], WebKitAsyncFrameScrollingEnabledPreferenceKey,
         [NSNumber numberWithBool:NO],   WebKitSpatialNavigationEnabledPreferenceKey,
         [NSNumber numberWithBool:NO],  WebKitDNSPrefetchingEnabledPreferenceKey,
         [NSNumber numberWithBool:NO],   WebKitFullScreenEnabledPreferenceKey,
@@ -2127,6 +2128,16 @@ static NSString *classIBCreatorID = nil;
     [self _setUnsignedIntValue:flattening forKey:WebKitFrameFlatteningPreferenceKey];
 }
 
+- (BOOL)asyncFrameScrollingEnabled
+{
+    return [self _boolValueForKey:WebKitAsyncFrameScrollingEnabledPreferenceKey];
+}
+
+- (void)setAsyncFrameScrollingEnabled:(BOOL)enabled
+{
+    [self _setBoolValue:enabled forKey:WebKitAsyncFrameScrollingEnabledPreferenceKey];
+}
+
 - (BOOL)isSpatialNavigationEnabled
 {
     return [self _boolValueForKey:WebKitSpatialNavigationEnabledPreferenceKey];
index c49c58f..ee1695a 100644 (file)
@@ -165,6 +165,9 @@ extern NSString *WebPreferencesCacheModelChangedInternalNotification;
 - (WebKitFrameFlattening)frameFlattening;
 - (void)setFrameFlattening:(WebKitFrameFlattening)flag;
 
+- (BOOL)asyncFrameScrollingEnabled;
+- (void)setAsyncFrameScrollingEnabled:(BOOL)enabled;
+
 - (BOOL)isSpatialNavigationEnabled;
 - (void)setSpatialNavigationEnabled:(BOOL)flag;
 
index 808ee06..3a7155d 100644 (file)
@@ -2802,6 +2802,7 @@ static bool needsSelfRetainWhileLoadingQuirk()
     settings.setLoadDeferringEnabled(shouldEnableLoadDeferring());
     settings.setWindowFocusRestricted(shouldRestrictWindowFocus());
     settings.setFrameFlattening((const WebCore::FrameFlattening)[preferences frameFlattening]);
+    settings.setAsyncFrameScrollingEnabled([preferences asyncFrameScrollingEnabled]);
     settings.setSpatialNavigationEnabled([preferences isSpatialNavigationEnabled]);
     settings.setPaginateDuringLayoutEnabled([preferences paginateDuringLayoutEnabled]);
 
index 598062e..7707834 100644 (file)
@@ -1,3 +1,21 @@
+2017-06-19  Frederic Wang  <fred.wang@free.fr>
+
+        [Mac] Add an experimental feature setting for async frame scrolling
+        https://bugs.webkit.org/show_bug.cgi?id=173359
+
+        Reviewed by Simon Fraser.
+
+        * Shared/WebPreferencesDefinitions.h: Add experimental feature "async frame scrolling".
+        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+        (WKBundleSetAsyncFrameScrollingEnabled): Add setter for async frame scrolling.
+        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Declare setter.
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::setAsyncFrameScrollingEnabled): Add setter for async frame scrolling.
+        * WebProcess/InjectedBundle/InjectedBundle.h: Declare setter.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences): Take into account preference update for async frame
+        scrolling.
+
 2017-06-19  Darin Adler  <darin@apple.com>
 
         Merge MediaDevicesRequest and MediaDevicesEnumerationRequest to tighten up code and object lifetime
index 9ecdae2..2c7a51f 100644 (file)
     macro(WebAnimationsEnabled, webAnimationsEnabled, Bool, bool, false, "Web Animations", "Web Animations prototype") \
     macro(WebGL2Enabled, webGL2Enabled, Bool, bool, false, "WebGL 2.0", "WebGL 2 prototype") \
     macro(WebGPUEnabled, webGPUEnabled, Bool, bool, false, "WebGPU", "WebGPU prototype") \
+    macro(AsyncFrameScrollingEnabled, asyncFrameScrollingEnabled, Bool, bool, false, "Async Frame Scrolling", "Perform frame scrolling in a dedicated thread or process") \
     \
 
 #if PLATFORM(COCOA)
index 96b73d2..d0826dd 100644 (file)
@@ -151,6 +151,11 @@ void WKBundleSetFrameFlatteningEnabled(WKBundleRef bundleRef, WKBundlePageGroupR
     toImpl(bundleRef)->setFrameFlatteningEnabled(toImpl(pageGroupRef), enabled);
 }
 
+void WKBundleSetAsyncFrameScrollingEnabled(WKBundleRef bundleRef, WKBundlePageGroupRef pageGroupRef, bool enabled)
+{
+    toImpl(bundleRef)->setAsyncFrameScrollingEnabled(toImpl(pageGroupRef), enabled);
+}
+
 void WKBundleSetJavaScriptCanAccessClipboard(WKBundleRef bundleRef, WKBundlePageGroupRef pageGroupRef, bool enabled)
 {
     toImpl(bundleRef)->setJavaScriptCanAccessClipboard(toImpl(pageGroupRef), enabled);
index 047afb1..ce83243 100644 (file)
@@ -48,6 +48,7 @@ WK_EXPORT void WKBundleSetAllowFileAccessFromFileURLs(WKBundleRef bundle, WKBund
 WK_EXPORT void WKBundleSetAllowStorageAccessFromFileURLS(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool needsQuirk);
 WK_EXPORT void WKBundleSetMinimumLogicalFontSize(WKBundleRef bundleRef, WKBundlePageGroupRef pageGroupRef, int size);
 WK_EXPORT void WKBundleSetFrameFlatteningEnabled(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);
+WK_EXPORT void WKBundleSetAsyncFrameScrollingEnabled(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);
 WK_EXPORT void WKBundleSetJavaScriptCanAccessClipboard(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);
 WK_EXPORT void WKBundleSetPrivateBrowsingEnabled(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);
 WK_EXPORT void WKBundleSetUseDashboardCompatibilityMode(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);
index 1e5c4ff..457ef82 100644 (file)
@@ -305,6 +305,13 @@ void InjectedBundle::setFrameFlatteningEnabled(WebPageGroupProxy* pageGroup, boo
         (*iter)->settings().setFrameFlattening(enabled ? FrameFlatteningFullyEnabled : FrameFlatteningDisabled);
 }
 
+void InjectedBundle::setAsyncFrameScrollingEnabled(WebPageGroupProxy* pageGroup, bool enabled)
+{
+    const HashSet<Page*>& pages = PageGroup::pageGroup(pageGroup->identifier())->pages();
+    for (HashSet<Page*>::iterator iter = pages.begin(); iter != pages.end(); ++iter)
+        (*iter)->settings().setAsyncFrameScrollingEnabled(enabled);
+}
+
 void InjectedBundle::setJavaScriptCanAccessClipboard(WebPageGroupProxy* pageGroup, bool enabled)
 {
     const HashSet<Page*>& pages = PageGroup::pageGroup(pageGroup->identifier())->pages();
index e8ff6a4..94d9adf 100644 (file)
@@ -97,6 +97,7 @@ public:
     void setNeedsStorageAccessFromFileURLsQuirk(WebPageGroupProxy*, bool);
     void setMinimumLogicalFontSize(WebPageGroupProxy*, int size);
     void setFrameFlatteningEnabled(WebPageGroupProxy*, bool);
+    void setAsyncFrameScrollingEnabled(WebPageGroupProxy*, bool);
     void setPluginsEnabled(WebPageGroupProxy*, bool);
     void setJavaScriptCanAccessClipboard(WebPageGroupProxy*, bool);
     void setPrivateBrowsingEnabled(WebPageGroupProxy*, bool);
index ac4ea2f..3e9f84d 100644 (file)
@@ -3055,6 +3055,7 @@ void WebPage::updatePreferences(const WebPreferencesStore& store)
     settings.setLocalStorageEnabled(store.getBoolValueForKey(WebPreferencesKey::localStorageEnabledKey()));
     settings.setXSSAuditorEnabled(store.getBoolValueForKey(WebPreferencesKey::xssAuditorEnabledKey()));
     settings.setFrameFlattening(static_cast<WebCore::FrameFlattening>(store.getUInt32ValueForKey(WebPreferencesKey::frameFlatteningKey())));
+    settings.setAsyncFrameScrollingEnabled(store.getBoolValueForKey(WebPreferencesKey::asyncFrameScrollingEnabledKey()));
     if (store.getBoolValueForKey(WebPreferencesKey::privateBrowsingEnabledKey()) && !usesEphemeralSession())
         setSessionID(SessionID::legacyPrivateSessionID());
     else if (!store.getBoolValueForKey(WebPreferencesKey::privateBrowsingEnabledKey()) && sessionID() == SessionID::legacyPrivateSessionID())
index 7558885..9d1b8be 100644 (file)
@@ -1,3 +1,16 @@
+2017-06-19  Frederic Wang  <fwang@igalia.com>
+
+        [Mac] Add an experimental feature setting for async frame scrolling
+        https://bugs.webkit.org/show_bug.cgi?id=173359
+
+        Reviewed by Simon Fraser.
+
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (enableExperimentalFeatures): Do not enable async frame scrolling for now.
+        (resetWebPreferencesToConsistentValues): Disable async frame scrolling by default.
+        * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
+        (WTR::InjectedBundle::beginTesting): Initalize to async frame scrolling to false.
+
 2017-06-19  Guillaume Emont  <guijemont@igalia.com>
 
         Unreviewed, adding myself to contributors.json
index 611ffac..523f3f3 100644 (file)
@@ -849,6 +849,7 @@ static void enableExperimentalFeatures(WebPreferences* preferences)
     [preferences setWebAnimationsEnabled:YES];
     [preferences setWebGL2Enabled:YES];
     [preferences setWebGPUEnabled:YES];
+    // FIXME: AsyncFrameScrollingEnabled
     [preferences setWebRTCLegacyAPIEnabled:YES];
     [preferences setCredentialManagementEnabled:YES];
     [preferences setReadableByteStreamAPIEnabled:YES];
@@ -904,6 +905,7 @@ static void resetWebPreferencesToConsistentValues()
     [preferences setLoadsImagesAutomatically:YES];
     [preferences setLoadsSiteIconsIgnoringImageLoadingPreference:NO];
     [preferences setFrameFlattening:WebKitFrameFlatteningDisabled];
+    [preferences setAsyncFrameScrollingEnabled:NO];
     [preferences setSpatialNavigationEnabled:NO];
     [preferences setMetaRefreshEnabled:YES];
 
index 893b227..9486290 100644 (file)
@@ -318,6 +318,7 @@ void InjectedBundle::beginTesting(WKDictionaryRef settings)
     WKBundleSetUseDashboardCompatibilityMode(m_bundle, m_pageGroup, false);
     WKBundleSetAuthorAndUserStylesEnabled(m_bundle, m_pageGroup, true);
     WKBundleSetFrameFlatteningEnabled(m_bundle, m_pageGroup, false);
+    WKBundleSetAsyncFrameScrollingEnabled(m_bundle, m_pageGroup, false);
     WKBundleSetMinimumLogicalFontSize(m_bundle, m_pageGroup, 9);
     WKBundleSetSpatialNavigationEnabled(m_bundle, m_pageGroup, false);
     WKBundleSetAllowFileAccessFromFileURLs(m_bundle, m_pageGroup, true);