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
+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.
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 ]
window.testRunner.waitUntilDone();
}
+if (window.internals)
+ window.internals.settings.setVisualViewportEnabled(false);
+
function runTest() {
results = document.getElementById("results");
box = document.getElementById("box");
window.testRunner.waitUntilDone();
}
+if (window.internals)
+ window.internals.settings.setVisualViewportEnabled(false);
+
function runTest() {
results = document.getElementById("results");
box = document.getElementById("box");
window.testRunner.waitUntilDone();
}
+if (window.internals)
+ window.internals.settings.setVisualViewportEnabled(false);
+
function runTest() {
results = document.getElementById("results");
box = document.getElementById("box");
</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);
(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)
)
(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)
)
(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)
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
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();
}
+++ /dev/null
-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
(contentsOpaque 1)
)
(GraphicsLayer
+ (position 0.00 3000.00)
(bounds 300.00 200.00)
(drawsContent 1)
)
(contentsOpaque 1)
)
(GraphicsLayer
- (position 0.00 13.00)
+ (position 0.00 113.00)
(bounds 150.00 142.00)
(drawsContent 1)
)
(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)
)
(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)
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
(contentsOpaque 1)
(children 1
(GraphicsLayer
+ (position 0.00 200.00)
(bounds 100.00 100.00)
(contentsOpaque 1)
(drawsContent 1)
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
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
(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)
)
(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))))
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);
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);
(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
(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
(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
(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))
)
(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)
(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)
(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)
(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
(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)
(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)
(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)
(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)
)
)
)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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
(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)
(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)
(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)
(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)
)
(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)
)
(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)
(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)
)
(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))
)
(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)
)
(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)
(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 )
(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 )
+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
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;
+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
#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,
+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
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, "", "") \