Enable visual viewports by default on Mac, and iOS Wk2
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 Dec 2016 19:39:32 +0000 (19:39 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 Dec 2016 19:39:32 +0000 (19:39 +0000)
https://bugs.webkit.org/show_bug.cgi?id=165452

Reviewed by Zalan Bujtas.

Source/WebCore:

Some tests revealed an issue where, during scrollbar updates, the visual viewport would be
15px wider than the layout viewport, which results in the layout viewport shifting 15px to the
right. Prevent this by disallowing viewport updates during the AdjustViewSize phase; we'll
be called again in postLayoutTasks.

* page/FrameView.cpp:
(WebCore::FrameView::updateLayoutViewport):

Source/WebKit/mac:

Turn visual viewports on by default for WK1 on Mac.

* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):

Source/WebKit2:

Turn visual viewports on by default for WK2.

* Shared/WebPreferencesDefinitions.h:

LayoutTests:

Skip, fix or adjust tests for visual viewports.

* TestExpectations:
* animations/trigger-container-scroll-boundaries.html:
* animations/trigger-container-scroll-empty.html:
* animations/trigger-container-scroll-simple.html:
* compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html:
* compositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt:
* compositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt:
* fast/scrolling/ios/remove-scrolling-role-expected.txt:
* fast/zooming/client-rect-in-fixed-zoomed-expected.txt:
* fast/zooming/client-rect-in-fixed-zoomed.html:
* platform/ios-simulator-wk2/compositing/geometry/fixed-in-composited-expected.txt: Removed.
* platform/ios-simulator-wk2/compositing/geometry/limit-layer-bounds-fixed-expected.txt:
* platform/ios-simulator-wk2/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt:
* platform/ios-simulator-wk2/compositing/layer-creation/fixed-position-under-transform-expected.txt:
* platform/ios-simulator-wk2/compositing/layer-creation/no-compositing-for-sticky-expected.txt:
* platform/ios-simulator-wk2/fast/overflow/position-fixed-transform-clipping-expected.txt:
* platform/ios-simulator/compositing/absolute-inside-out-of-view-fixed-expected.txt:
* platform/ios-simulator/compositing/geometry/fixed-in-composited-expected.txt:
* scrollingcoordinator/ios/non-stable-viewport-scroll-expected.txt:
* scrollingcoordinator/ios/ui-scrolling-tree-expected.txt:
* tiled-drawing/fixed-layout-size-fixed-attachment-cover.html:
* tiled-drawing/fixed-layout-size-fixed-attachment-local.html:
* tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
* tiled-drawing/scrolling/fixed-background/fixed-body-background-zoomed-expected.txt:
* tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
* tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
* tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
* tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
* tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
* tiled-drawing/scrolling/fixed/four-bars-expected.txt:
* tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
* tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
* tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
* tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
* tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
* tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
* tiled-drawing/scrolling/frames/coordinated-frame-expected.txt:
* tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor-expected.txt:
* tiled-drawing/scrolling/frames/coordinated-frame-in-fixed-expected.txt:
* tiled-drawing/scrolling/frames/coordinated-frame-lose-scrolling-ancestor-expected.txt:
* tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt:
* tiled-drawing/scrolling/frames/frameset-frame-scrollability-expected.txt:
* tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt:
* tiled-drawing/scrolling/frames/remove-coordinated-frame-expected.txt:
* tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
* tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
* tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
* tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
* tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
* tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:

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

57 files changed:
LayoutTests/ChangeLog
LayoutTests/TestExpectations
LayoutTests/animations/trigger-container-scroll-boundaries.html
LayoutTests/animations/trigger-container-scroll-empty.html
LayoutTests/animations/trigger-container-scroll-simple.html
LayoutTests/compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html
LayoutTests/compositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt
LayoutTests/compositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt
LayoutTests/fast/scrolling/ios/remove-scrolling-role-expected.txt
LayoutTests/fast/zooming/client-rect-in-fixed-zoomed-expected.txt
LayoutTests/fast/zooming/client-rect-in-fixed-zoomed.html
LayoutTests/platform/ios-simulator-wk2/compositing/geometry/fixed-in-composited-expected.txt [deleted file]
LayoutTests/platform/ios-simulator-wk2/compositing/geometry/limit-layer-bounds-fixed-expected.txt
LayoutTests/platform/ios-simulator-wk2/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt
LayoutTests/platform/ios-simulator-wk2/compositing/layer-creation/fixed-position-under-transform-expected.txt
LayoutTests/platform/ios-simulator-wk2/compositing/layer-creation/no-compositing-for-sticky-expected.txt
LayoutTests/platform/ios-simulator-wk2/fast/overflow/position-fixed-transform-clipping-expected.txt
LayoutTests/platform/ios-simulator/compositing/absolute-inside-out-of-view-fixed-expected.txt
LayoutTests/platform/ios-simulator/compositing/geometry/fixed-in-composited-expected.txt
LayoutTests/scrollingcoordinator/ios/non-stable-viewport-scroll-expected.txt
LayoutTests/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt
LayoutTests/tiled-drawing/fixed-layout-size-fixed-attachment-cover.html
LayoutTests/tiled-drawing/fixed-layout-size-fixed-attachment-local.html
LayoutTests/tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed-background/fixed-body-background-zoomed-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/four-bars-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/nested-fixed-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt
LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-expected.txt
LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor-expected.txt
LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-in-fixed-expected.txt
LayoutTests/tiled-drawing/scrolling/frames/coordinated-frame-lose-scrolling-ancestor-expected.txt
LayoutTests/tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt
LayoutTests/tiled-drawing/scrolling/frames/frameset-frame-scrollability-expected.txt
LayoutTests/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt
LayoutTests/tiled-drawing/scrolling/frames/remove-coordinated-frame-expected.txt
LayoutTests/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt
LayoutTests/tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt
LayoutTests/tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt
LayoutTests/tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt
LayoutTests/tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt
LayoutTests/tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/page/FrameView.cpp
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/WebView/WebPreferences.mm
Source/WebKit2/ChangeLog
Source/WebKit2/Shared/WebPreferencesDefinitions.h

index da8e3b3..73bc783 100644 (file)
@@ -1,3 +1,63 @@
+2016-12-06  Simon Fraser  <simon.fraser@apple.com>
+
+        Enable visual viewports by default on Mac, and iOS Wk2
+        https://bugs.webkit.org/show_bug.cgi?id=165452
+
+        Reviewed by Zalan Bujtas.
+
+        Skip, fix or adjust tests for visual viewports.
+
+        * TestExpectations:
+        * animations/trigger-container-scroll-boundaries.html:
+        * animations/trigger-container-scroll-empty.html:
+        * animations/trigger-container-scroll-simple.html:
+        * compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html:
+        * compositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt:
+        * compositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt:
+        * fast/scrolling/ios/remove-scrolling-role-expected.txt:
+        * fast/zooming/client-rect-in-fixed-zoomed-expected.txt:
+        * fast/zooming/client-rect-in-fixed-zoomed.html:
+        * platform/ios-simulator-wk2/compositing/geometry/fixed-in-composited-expected.txt: Removed.
+        * platform/ios-simulator-wk2/compositing/geometry/limit-layer-bounds-fixed-expected.txt:
+        * platform/ios-simulator-wk2/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt:
+        * platform/ios-simulator-wk2/compositing/layer-creation/fixed-position-under-transform-expected.txt:
+        * platform/ios-simulator-wk2/compositing/layer-creation/no-compositing-for-sticky-expected.txt:
+        * platform/ios-simulator-wk2/fast/overflow/position-fixed-transform-clipping-expected.txt:
+        * platform/ios-simulator/compositing/absolute-inside-out-of-view-fixed-expected.txt:
+        * platform/ios-simulator/compositing/geometry/fixed-in-composited-expected.txt:
+        * scrollingcoordinator/ios/non-stable-viewport-scroll-expected.txt:
+        * scrollingcoordinator/ios/ui-scrolling-tree-expected.txt:
+        * tiled-drawing/fixed-layout-size-fixed-attachment-cover.html:
+        * tiled-drawing/fixed-layout-size-fixed-attachment-local.html:
+        * tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
+        * tiled-drawing/scrolling/fixed-background/fixed-body-background-zoomed-expected.txt:
+        * tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
+        * tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
+        * tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
+        * tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
+        * tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
+        * tiled-drawing/scrolling/fixed/four-bars-expected.txt:
+        * tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
+        * tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
+        * tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
+        * tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
+        * tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
+        * tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
+        * tiled-drawing/scrolling/frames/coordinated-frame-expected.txt:
+        * tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor-expected.txt:
+        * tiled-drawing/scrolling/frames/coordinated-frame-in-fixed-expected.txt:
+        * tiled-drawing/scrolling/frames/coordinated-frame-lose-scrolling-ancestor-expected.txt:
+        * tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt:
+        * tiled-drawing/scrolling/frames/frameset-frame-scrollability-expected.txt:
+        * tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt:
+        * tiled-drawing/scrolling/frames/remove-coordinated-frame-expected.txt:
+        * tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
+        * tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
+        * tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
+        * tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
+        * tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
+        * tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:
+
 2016-12-06  Ryan Haddad  <ryanhaddad@apple.com>
 
         Skip modern-media-controls tests until flakiness can be resolved.
index a41756d..d41849b 100644 (file)
@@ -1083,3 +1083,7 @@ webkit.org/b/165195 svg/dom/SVGColor.html [ Pass Failure ]
 webkit.org/b/165195 svg/dom/SVGPaint.html [ Pass Failure ]
 webkit.org/b/165195 svg/dom/rgb-color-parser.html [ Pass Failure ]
 
+# Visual viewports
+webkit.org/b/165460 compositing/repaint/scroll-fixed-layer-no-content.html [ Failure ]
+webkit.org/b/165460 compositing/repaint/scroll-fixed-layer-out-of-view.html [ Failure ]
+webkit.org/b/165465 tiled-drawing/scrolling/fixed-background/fixed-body-background-zoomed.html [ Failure ]
index 717b0e5..a56a3d1 100644 (file)
@@ -41,6 +41,9 @@ if (window.testRunner) {
     window.testRunner.waitUntilDone();
 }
 
+if (window.internals)
+    window.internals.settings.setVisualViewportEnabled(false);
+
 function runTest() {
     results = document.getElementById("results");
     box = document.getElementById("box");
index 2cb37c7..4ac0c35 100644 (file)
@@ -38,6 +38,9 @@ if (window.testRunner) {
     window.testRunner.waitUntilDone();
 }
 
+if (window.internals)
+    window.internals.settings.setVisualViewportEnabled(false);
+
 function runTest() {
     results = document.getElementById("results");
     box = document.getElementById("box");
index c185b25..4594ade 100644 (file)
@@ -38,6 +38,9 @@ if (window.testRunner) {
     window.testRunner.waitUntilDone();
 }
 
+if (window.internals)
+    window.internals.settings.setVisualViewportEnabled(false);
+
 function runTest() {
     results = document.getElementById("results");
     box = document.getElementById("box");
index 1aaf136..87e8a49 100644 (file)
@@ -25,6 +25,7 @@
 </style>
 <script>
   if (window.internals) {
+    window.internals.settings.setVisualViewportEnabled(false);
     window.internals.settings.setAcceleratedCompositingForFixedPositionEnabled(true);
     window.internals.settings.setFixedPositionCreatesStackingContext(true);
     window.internals.setPageScaleFactor(0.5, 0, 0);
index 946821a..05f5d4d 100644 (file)
@@ -32,11 +32,12 @@ Scale=0.5:
       (transform [0.50 0.00 0.00 0.00] [0.00 0.50 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
       (children 2
         (GraphicsLayer
-          (position 600.00 0.00)
+          (position 1400.00 600.00)
           (bounds 10.00 10.00)
           (contentsOpaque 1)
         )
         (GraphicsLayer
+          (position 800.00 600.00)
           (bounds 10.00 10.00)
           (contentsOpaque 1)
         )
index 09e75eb..1f85ae5 100644 (file)
@@ -33,11 +33,12 @@ Scale=0.5:
       (transform [0.50 0.00 0.00 0.00] [0.00 0.50 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
       (children 2
         (GraphicsLayer
-          (position 600.00 0.00)
+          (position 1400.00 600.00)
           (bounds 10.00 10.00)
           (contentsOpaque 1)
         )
         (GraphicsLayer
+          (position 800.00 600.00)
           (bounds 10.00 10.00)
           (contentsOpaque 1)
         )
index 65c40aa..3c9af56 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 2513)
+  (layout viewport at (0,0) size 800x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1913))
   (children 1
     (Overflow scrolling node
       (scrollable area size 300 400)
index d8b7266..0c48b56 100644 (file)
@@ -4,7 +4,7 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 
 PASS internals.pageScaleFactor() is 2
-PASS JSON.stringify(clientRect) is JSON.stringify({top: 9.515625, right: 42, bottom: 19.515625, left: 22, width: 20, height: 10})
+PASS JSON.stringify(clientRect) is JSON.stringify({top: -108, right: 42, bottom: -98, left: 22, width: 20, height: 10})
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 4c0e63c..60b4ae9 100644 (file)
@@ -40,7 +40,7 @@
             var box = document.getElementById('box');
             clientRect = box.getBoundingClientRect();
             
-            shouldBe('JSON.stringify(clientRect)', 'JSON.stringify({top: 9.515625, right: 42, bottom: 19.515625, left: 22, width: 20, height: 10})');
+            shouldBe('JSON.stringify(clientRect)', 'JSON.stringify({top: -108, right: 42, bottom: -98, left: 22, width: 20, height: 10})');
             
             finishJSTest();
         }
diff --git a/LayoutTests/platform/ios-simulator-wk2/compositing/geometry/fixed-in-composited-expected.txt b/LayoutTests/platform/ios-simulator-wk2/compositing/geometry/fixed-in-composited-expected.txt
deleted file mode 100644 (file)
index b703bcf..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-layer at (0,0) size 800x1000
-  RenderView at (0,0) size 800x600
-layer at (0,0) size 800x1000
-  RenderBlock {HTML} at (0,0) size 800x1000
-    RenderBody {BODY} at (0,0) size 800x1000
-      RenderBlock {P} at (0,210) size 800x20
-        RenderText {#text} at (0,0) size 188x19
-          text run at (0,0) width 188: "You should see no red above."
-layer at (20,70) size 100x100
-  RenderBlock (positioned) {DIV} at (20,70) size 100x100 [bgcolor=#FF0000]
-layer at (220,120) size 100x100
-  RenderBlock (positioned) {DIV} at (220,120) size 100x100 [bgcolor=#FF0000]
-layer at (420,120) size 100x100
-  RenderBlock (positioned) {DIV} at (420,120) size 100x100 [bgcolor=#FF0000]
-layer at (0,0) size 60x60
-  RenderBlock {DIV} at (0,0) size 60x60 [bgcolor=#0000FF33]
-layer at (95,145) size 50x50
-  RenderBlock (positioned) zI: 1 {DIV} at (95,145) size 50x50
-layer at (20,20) size 100x100
-  RenderBlock (positioned) {DIV} at (20,20) size 100x100 [bgcolor=#008000]
-layer at (200,100) size 50x50
-  RenderBlock (positioned) zI: 1 {DIV} at (200,100) size 50x50
-layer at (220,120) size 100x100
-  RenderBlock (positioned) {DIV} at (20,20) size 100x100 [bgcolor=#008000]
-layer at (400,100) size 50x50
-  RenderBlock (positioned) zI: 1 {DIV} at (400,100) size 50x50
-layer at (400,100) size 100x100
-  RenderBlock {DIV} at (0,0) size 100x100
-layer at (420,120) size 100x100
-  RenderBlock (positioned) {DIV} at (20,20) size 100x100 [bgcolor=#008000]
-scrolled to 50,50
index 7f5f650..592bc91 100644 (file)
@@ -12,6 +12,7 @@
           (contentsOpaque 1)
         )
         (GraphicsLayer
+          (position 0.00 3000.00)
           (bounds 300.00 200.00)
           (drawsContent 1)
         )
index 6426e75..c815d15 100644 (file)
@@ -17,7 +17,7 @@ Text here
           (contentsOpaque 1)
         )
         (GraphicsLayer
-          (position 0.00 13.00)
+          (position 0.00 113.00)
           (bounds 150.00 142.00)
           (drawsContent 1)
         )
index 90c7e7a..82baf77 100644 (file)
@@ -15,6 +15,7 @@
           (transform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 1000.00 0.00 1.00])
         )
         (GraphicsLayer
+          (position 0.00 1000.00)
           (bounds 500.00 500.00)
           (contentsOpaque 1)
         )
index 9086b1d..73393ab 100644 (file)
@@ -10,37 +10,37 @@ Left sticky Right sticky Left % sticky Right % sticky Left and Right Left and Ri
       (contentsOpaque 1)
       (children 6
         (GraphicsLayer
-          (position 812.00 61.00)
+          (position 820.00 61.00)
           (bounds 300.00 60.00)
           (contentsOpaque 1)
           (drawsContent 1)
         )
         (GraphicsLayer
-          (position 612.00 129.00)
+          (position 812.00 129.00)
           (bounds 300.00 60.00)
           (contentsOpaque 1)
           (drawsContent 1)
         )
         (GraphicsLayer
-          (position 812.00 197.00)
+          (position 960.00 197.00)
           (bounds 300.00 60.00)
           (contentsOpaque 1)
           (drawsContent 1)
         )
         (GraphicsLayer
-          (position 612.00 265.00)
+          (position 812.00 265.00)
           (bounds 300.00 60.00)
           (contentsOpaque 1)
           (drawsContent 1)
         )
         (GraphicsLayer
-          (position 612.00 333.00)
+          (position 820.00 333.00)
           (bounds 300.00 60.00)
           (contentsOpaque 1)
           (drawsContent 1)
         )
         (GraphicsLayer
-          (position 612.00 401.00)
+          (position 960.00 401.00)
           (bounds 300.00 60.00)
           (contentsOpaque 1)
           (drawsContent 1)
index 04c4845..a6da3a2 100644 (file)
@@ -11,8 +11,8 @@ layer at (0,116) size 310x40
     RenderBR {BR} at (309,15) size 1x0
     RenderText {#text} at (0,20) size 248x19
       text run at (0,20) width 248: "Green box should fill the black border."
-layer at (0,0) size 404x54 clip at (2,2) size 400x50
+layer at (0,25) size 404x54 clip at (2,27) size 400x50
   RenderBlock (positioned) {DIV} at (0,0) size 404x54 [border: (2px solid #000000)]
-layer at (2,2) size 400x50
+layer at (2,27) size 400x50
   RenderBlock {DIV} at (2,2) size 400x50 [bgcolor=#008000]
 scrolled to 0,25
index 266f1d7..f77c401 100644 (file)
@@ -7,6 +7,7 @@
       (contentsOpaque 1)
       (children 1
         (GraphicsLayer
+          (position 0.00 200.00)
           (bounds 100.00 100.00)
           (contentsOpaque 1)
           (drawsContent 1)
index e5471d1..01aad9b 100644 (file)
@@ -16,7 +16,7 @@ layer at (0,0) size 60x60
   RenderBlock {DIV} at (0,0) size 60x60 [bgcolor=#0000FF33]
 layer at (95,145) size 50x50
   RenderBlock (positioned) zI: 1 {DIV} at (95,145) size 50x50
-layer at (20,20) size 100x100
+layer at (70,70) size 100x100
   RenderBlock (positioned) {DIV} at (20,20) size 100x100 [bgcolor=#008000]
 layer at (200,100) size 50x50
   RenderBlock (positioned) zI: 1 {DIV} at (200,100) size 50x50
@@ -28,3 +28,4 @@ layer at (400,100) size 100x100
   RenderBlock {DIV} at (0,0) size 100x100
 layer at (420,120) size 100x100
   RenderBlock (positioned) {DIV} at (20,20) size 100x100 [bgcolor=#008000]
+scrolled to 50,50
index 49b5040..5e2a982 100644 (file)
@@ -17,13 +17,13 @@ fixed
       (children 1
         (GraphicsLayer
           (position 10.00 0.00)
-          (approximate position 10.00 960.75)
+          (approximate position 10.00 621.34)
           (bounds 100.00 568.00)
           (usingTiledLayer 1)
           (contentsOpaque 1)
           (drawsContent 1)
-          (visible rect 0.00, 39.25 96.67 x 189.33)
-          (coverage rect -10.00, -3.42 192.00 x 274.67)
+          (visible rect 0.00, 378.66 96.67 x 189.33)
+          (coverage rect -10.00, 335.99 192.00 x 274.67)
           (intersects coverage rect 1)
           (contentsScale 6.00)
         )
index 0939469..32d7e1e 100644 (file)
@@ -7,6 +7,6 @@
     (behavior for fixed 0)
     (fixed node
       (fixed constraints 
-        (viewport-rect-at-last-layout (0,0) width=683 height=1212)
+        (viewport-rect-at-last-layout (0,0) width=320 height=568)
         (layer-position-at-last-layout (12,10)))
       (layer top left (12,10))))
index 95ec7f1..d3fc09f 100644 (file)
@@ -17,6 +17,7 @@
       window.internals.setFixedLayoutSize(800, 600);
       window.internals.setPageScaleFactor(0.5, 0, 0);
       window.internals.setUseFixedLayout(true);
+      window.internals.settings.setVisualViewportEnabled(false);
     }
   }
   window.addEventListener('load', runTest, false);
index a1993af..2c8baee 100644 (file)
@@ -20,6 +20,7 @@
       window.internals.setFixedLayoutSize(800, 600);
       window.internals.setPageScaleFactor(0.5, 0, 0);
       window.internals.setUseFixedLayout(true);
+      window.internals.settings.setVisualViewportEnabled(false);
     }
   }
   window.addEventListener('load', runTest, false);
index 4c3bd9c..f3a9c5e 100644 (file)
@@ -2,18 +2,27 @@ Attempted scroll to -5000, 0
 (Frame scrolling node
   (scrollable area size 785 585)
   (contents size 5008 5021)
+  (layout viewport at (0,0) size 785x585)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (4223,4436))
 )
 
 Attempted scroll to 0, -5000
 (Frame scrolling node
   (scrollable area size 785 585)
   (contents size 5008 5021)
+  (layout viewport at (0,0) size 785x585)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (4223,4436))
 )
 
 Attempted scroll to -5000, -5000
 (Frame scrolling node
   (scrollable area size 785 585)
   (contents size 5008 5021)
+  (layout viewport at (0,0) size 785x585)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (4223,4436))
 )
 
 Attempted scroll to 10000, 0
@@ -21,6 +30,9 @@ Attempted scroll to 10000, 0
   (scrollable area size 785 585)
   (contents size 5008 5021)
   (requested scroll position 4223 0)
+  (layout viewport at (0,0) size 785x585)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (4223,4436))
 )
 
 Attempted scroll to 0, 10000
@@ -28,6 +40,9 @@ Attempted scroll to 0, 10000
   (scrollable area size 785 585)
   (contents size 5008 5021)
   (requested scroll position 0 4436)
+  (layout viewport at (4223,0) size 785x585)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (4223,4436))
 )
 
 Attempted scroll to 10000, 10000
@@ -35,6 +50,9 @@ Attempted scroll to 10000, 10000
   (scrollable area size 785 585)
   (contents size 5008 5021)
   (requested scroll position 4223 4436)
+  (layout viewport at (0,4436) size 785x585)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (4223,4436))
 )
 
 
index 3d89b69..9b62bbe 100644 (file)
@@ -8,7 +8,6 @@
       (transform [2.30 0.00 0.00 0.00] [0.00 2.30 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
       (children 2
         (GraphicsLayer
-          (position 0.00 154.25)
           (anchor 0.00 0.00)
           (bounds 785.00 585.00)
           (contentsOpaque 1)
index 4a5893a..ca381ea 100644 (file)
@@ -2,6 +2,9 @@
   (scrollable area size 785 600)
   (contents size 785 2710)
   (requested scroll position 0 200)
+  (layout viewport at (0,200) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,2110))
   (children 1
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index 2a112d3..c0306d7 100644 (file)
@@ -2,6 +2,9 @@
   (scrollable area size 785 600)
   (contents size 785 2513)
   (requested scroll position 0 200)
+  (layout viewport at (0,200) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1913))
   (children 1
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index d6a50e9..419cd9d 100644 (file)
@@ -2,6 +2,9 @@
   (scrollable area size 785 600)
   (contents size 785 2213)
   (requested scroll position 0 200)
+  (layout viewport at (0,200) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1613))
   (synchronous event dispatch region for event wheel
     at (0,13) size 204x204)
   (children 1
index 25c428a..a3bd2f7 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1021)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,421))
   (children 1
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index 25c428a..a3bd2f7 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1021)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,421))
   (children 1
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index 7728b6f..3d09db5 100644 (file)
@@ -2,6 +2,9 @@
   (scrollable area size 785 600)
   (contents size 785 2221)
   (requested scroll position 0 200)
+  (layout viewport at (0,200) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1621))
   (children 4
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index 8b0caed..695c0fe 100644 (file)
@@ -2,26 +2,29 @@
   (scrollable area size 785 600)
   (contents size 785 2421)
   (requested scroll position 0 200)
+  (layout viewport at (0,200) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1821))
   (children 4
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
-      (viewport rect at last layout: 0.00 100.00 785.00 600.00)
-      (layer position at last layout 0.00 100.00)
+      (viewport rect at last layout: 0.00 200.00 785.00 600.00)
+      (layer position at last layout 0.00 200.00)
     )
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
-      (viewport rect at last layout: 0.00 100.00 785.00 600.00)
-      (layer position at last layout 6.00 296.00)
+      (viewport rect at last layout: 0.00 200.00 785.00 600.00)
+      (layer position at last layout 6.00 396.00)
     )
     (Fixed node
       (anchor edges: AnchorEdgeRight AnchorEdgeTop)
-      (viewport rect at last layout: 0.00 100.00 785.00 600.00)
-      (layer position at last layout 597.00 296.00)
+      (viewport rect at last layout: 0.00 200.00 785.00 600.00)
+      (layer position at last layout 597.00 396.00)
     )
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeBottom)
-      (viewport rect at last layout: 0.00 100.00 785.00 600.00)
-      (layer position at last layout 0.00 612.00)
+      (viewport rect at last layout: 0.00 200.00 785.00 600.00)
+      (layer position at last layout 0.00 712.00)
     )
   )
 )
index 7d5fa03..46d5176 100644 (file)
@@ -2,6 +2,9 @@
   (scrollable area size 785 585)
   (contents size 1805 5108)
   (frame scale factor 2.30)
+  (layout viewport at (0,0) size 785x585)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1636))
   (children 4
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index 1992ca3..8cf257d 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 2221)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1621))
   (children 1
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index fce2295..93e1629 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 2221)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1621))
   (children 1
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeBottom)
index 1f38a72..bd317a2 100644 (file)
@@ -2,6 +2,9 @@
   (scrollable area size 785 600)
   (contents size 785 2213)
   (requested scroll position 0 200)
+  (layout viewport at (0,200) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1613))
   (children 1
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index 3b92bc0..07a7307 100644 (file)
@@ -2,6 +2,9 @@
   (scrollable area size 785 600)
   (contents size 785 2513)
   (requested scroll position 0 200)
+  (layout viewport at (0,200) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1913))
   (children 1
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index 057ddf1..82e2950 100644 (file)
@@ -1,12 +1,18 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1016)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,416))
   (synchronous event dispatch region for event wheel
     at (45,47) size 404x304)
   (children 1
     (Frame scrolling node
       (scrollable area size 485 300)
       (contents size 485 420)
+      (layout viewport at (500,300) size 485x300)
+      (min layout viewport origin (0,0))
+      (max layout viewport origin (0,120))
       (children 1
         (Sticky node
           (anchor edges: AnchorEdgeTop AnchorEdgeBottom)
index 1677776..1bd1e60 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1016)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,416))
   (synchronous event dispatch region for event wheel
     at (45,47) size 404x304)
   (children 1
@@ -12,6 +15,9 @@
         (Frame scrolling node
           (scrollable area size 500 300)
           (contents size 500 420)
+          (layout viewport at (500,300) size 500x300)
+          (min layout viewport origin (0,0))
+          (max layout viewport origin (0,120))
           (children 1
             (Sticky node
               (anchor edges: AnchorEdgeTop AnchorEdgeBottom)
index fc2c3ff..aed1786 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1016)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,416))
   (synchronous event dispatch region for event wheel
     at (45,37) size 404x304)
   (children 1
@@ -12,6 +15,9 @@
         (Frame scrolling node
           (scrollable area size 485 300)
           (contents size 485 420)
+          (layout viewport at (500,300) size 485x300)
+          (min layout viewport origin (0,0))
+          (max layout viewport origin (0,120))
           (children 1
             (Sticky node
               (anchor edges: AnchorEdgeTop AnchorEdgeBottom)
index 9297b73..57cb12f 100644 (file)
@@ -1,12 +1,18 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1016)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,416))
   (synchronous event dispatch region for event wheel
     at (45,47) size 404x304)
   (children 1
     (Frame scrolling node
       (scrollable area size 500 300)
       (contents size 500 420)
+      (layout viewport at (500,300) size 500x300)
+      (min layout viewport origin (0,0))
+      (max layout viewport origin (0,120))
       (children 1
         (Sticky node
           (anchor edges: AnchorEdgeTop AnchorEdgeBottom)
index 9704c4e..6bc1eb0 100644 (file)
@@ -2,11 +2,17 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 657)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,57))
   (children 1
     (Frame scrolling node
       (scrollable area size 465 400)
       (contents size 465 1016)
       (requested scroll position 0 120)
+      (layout viewport at (0,120) size 465x400)
+      (min layout viewport origin (0,0))
+      (max layout viewport origin (0,616))
       (children 1
         (Fixed node
           (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index a65bf18..9599e35 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (layout viewport at (0,0) size 800x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,0))
   (synchronous event dispatch region for event wheel
     at (0,0) size 800x594)
 )
index 8450392..03fdcce 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (layout viewport at (0,0) size 800x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,0))
   (synchronous event dispatch region for event wheel
     at (0,166) size 280x434)
 )
index 87c8ba6..310c381 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1016)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,416))
   (children 1
     (Fixed node
       (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
index 45c13c0..b7058af 100644 (file)
@@ -2,6 +2,9 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 757)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,157))
   (synchronous event dispatch region for event wheel
     at (68,68) size 300x300)
 )
index e8974b7..00db473 100644 (file)
@@ -2,5 +2,8 @@
   (scrollable area size 785 600)
   (contents size 785 5021)
   (requested scroll position 0 3000)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,4421))
 )
 
index 425bac0..bbf2742 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (layout viewport at (0,0) size 800x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,0))
   (Scrolling on main thread because: Has slow repaint objects)
 )
 
index 85f1d9f..9657241 100644 (file)
@@ -1,6 +1,9 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 2216)
+  (layout viewport at (0,0) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,1616))
   (children 1
     (Sticky node
       (anchor edges: AnchorEdgeLeft AnchorEdgeRight AnchorEdgeBottom)
index 7061c43..f89ef51 100644 (file)
@@ -3,6 +3,9 @@ Left sticky Right sticky Left % sticky Right % sticky Left and Right Left and Ri
   (scrollable area size 800 585)
   (contents size 2008 585)
   (requested scroll position 800 0)
+  (layout viewport at (800,0) size 800x585)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (1208,0))
   (children 6
     (Sticky node
       (anchor edges: AnchorEdgeLeft )
index 15d0cc6..c28bfdf 100644 (file)
@@ -7,6 +7,9 @@ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
   (scrollable area size 785 600)
   (contents size 785 2908)
   (requested scroll position 0 580)
+  (layout viewport at (0,580) size 785x600)
+  (min layout viewport origin (0,0))
+  (max layout viewport origin (0,2308))
   (children 6
     (Sticky node
       (anchor edges: AnchorEdgeTop )
index e15fe8c..424a945 100644 (file)
@@ -1,3 +1,18 @@
+2016-12-06  Simon Fraser  <simon.fraser@apple.com>
+
+        Enable visual viewports by default on Mac, and iOS Wk2
+        https://bugs.webkit.org/show_bug.cgi?id=165452
+
+        Reviewed by Zalan Bujtas.
+
+        Some tests revealed an issue where, during scrollbar updates, the visual viewport would be
+        15px wider than the layout viewport, which results in the layout viewport shifting 15px to the
+        right. Prevent this by disallowing viewport updates during the AdjustViewSize phase; we'll
+        be called again in postLayoutTasks.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::updateLayoutViewport):
+
 2016-12-06  Daniel Bates  <dabates@apple.com>
 
         Cleanup: Rename some HTTP 0.9-specific functions to conform to WebKit Code Style Guidelines
index 59096dd..8d34c56 100644 (file)
@@ -1856,6 +1856,11 @@ void FrameView::updateLayoutViewport()
     if (!frame().settings().visualViewportEnabled())
         return;
     
+    // Don't update the layout viewport if we're in the middle of adjusting scrollbars. We'll get another call
+    // as a post-layout task.
+    if (m_layoutPhase == InViewSizeAdjust)
+        return;
+    
     if (m_layoutViewportOverrideRect) {
         LOG_WITH_STREAM(Scrolling, stream << "\nFrameView " << this << " updateLayoutViewport() - has layoutViewportOverrideRect" << m_layoutViewportOverrideRect.value());
         return;
index b0023ed..e73a4c8 100644 (file)
@@ -1,3 +1,15 @@
+2016-12-06  Simon Fraser  <simon.fraser@apple.com>
+
+        Enable visual viewports by default on Mac, and iOS Wk2
+        https://bugs.webkit.org/show_bug.cgi?id=165452
+
+        Reviewed by Zalan Bujtas.
+
+        Turn visual viewports on by default for WK1 on Mac.
+
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]):
+
 2016-12-05  Dean Jackson  <dino@apple.com>
 
         pointer lock needs to be feature detectable
index d398af5..96b8078 100644 (file)
@@ -628,7 +628,13 @@ public:
 #if ENABLE(WEB_ANIMATIONS)
         [NSNumber numberWithBool:NO], WebKitWebAnimationsEnabledPreferenceKey,
 #endif
+
+#if PLATFORM(IOS)
         [NSNumber numberWithBool:NO], WebKitVisualViewportEnabledPreferenceKey,
+#else
+        [NSNumber numberWithBool:YES], WebKitVisualViewportEnabledPreferenceKey,
+#endif
+
         [NSNumber numberWithBool:YES], WebKitNeedsStorageAccessFromFileURLsQuirkKey,
 #if ENABLE(SUBTLE_CRYPTO)
         [NSNumber numberWithBool:YES], WebKitSubtleCryptoEnabledPreferenceKey,
index d6d1a76..298b7c1 100644 (file)
@@ -1,3 +1,14 @@
+2016-12-06  Simon Fraser  <simon.fraser@apple.com>
+
+        Enable visual viewports by default on Mac, and iOS Wk2
+        https://bugs.webkit.org/show_bug.cgi?id=165452
+
+        Reviewed by Zalan Bujtas.
+
+        Turn visual viewports on by default for WK2.
+
+        * Shared/WebPreferencesDefinitions.h:
+
 2016-12-06  Daniel Bates  <dabates@apple.com>
 
         WebKitTestRunner: Plugins are disabled in new windows
index 47f10ab..c8bc252 100644 (file)
     macro(SelectionPaintingWithoutSelectionGapsEnabled, selectionPaintingWithoutSelectionGapsEnabled, Bool, bool, DEFAULT_SELECTION_PAINTING_WITHOUT_SELECTION_GAPS_ENABLED, "", "") \
     macro(ApplePayEnabled, applePayEnabled, Bool, bool, false, "", "") \
     macro(ApplePayCapabilityDisclosureAllowed, applePayCapabilityDisclosureAllowed, Bool, bool, true, "", "") \
-    macro(VisualViewportEnabled, visualViewportEnabled, Bool, bool, false, "", "") \
+    macro(VisualViewportEnabled, visualViewportEnabled, Bool, bool, true, "", "") \
     macro(NeedsStorageAccessFromFileURLsQuirk, needsStorageAccessFromFileURLsQuirk, Bool, bool, true, "", "") \
     macro(LargeImageAsyncDecodingEnabled, largeImageAsyncDecodingEnabled, Bool, bool, true, "", "") \
     macro(AnimatedImageAsyncDecodingEnabled, animatedImageAsyncDecodingEnabled, Bool, bool, true, "", "") \