Title: [227054] trunk/LayoutTests
Revision
227054
Author
commit-qu...@webkit.org
Date
2018-01-17 01:34:46 -0800 (Wed, 17 Jan 2018)

Log Message

Update web platform tests for Visual Viewport API
https://bugs.webkit.org/show_bug.cgi?id=181689

Patch by Ali Juma <aj...@chromium.org> on 2018-01-17
Reviewed by Alex Christensen.

Rename the test directory from 'viewport' to 'visual-viewport', and update
viewport-resize-event-on-load-overflowing-page.html.

This corresponds to the following upstream commits:
1) https://github.com/w3c/web-platform-tests/commit/f878fee4df619e55c7fbfce1a2ff5e5d4d83a03b
2) https://github.com/w3c/web-platform-tests/commit/03a684d63e62d85cffed38bc942f468692d7d54f

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* web-platform-tests/viewport/w3c-import.log: Removed.
* web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-no-resize-event-on-overflow-recalc-expected.txt.
* web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-no-resize-event-on-overflow-recalc.html.
* web-platform-tests/visual-viewport/viewport-read-size-causes-layout-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-causes-layout-expected.txt.
* web-platform-tests/visual-viewport/viewport-read-size-causes-layout.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-causes-layout.html.
* web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-in-iframe-causes-layout-expected.txt.
* web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-in-iframe-causes-layout.html.
* web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page-expected.txt.
* web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page.html.
* web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-scrollbars-cause-resize-expected.txt.
* web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-scrollbars-cause-resize.html.
* web-platform-tests/visual-viewport/viewport-type-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-type-expected.txt.
* web-platform-tests/visual-viewport/viewport-type.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-type.html.
* web-platform-tests/visual-viewport/viewport-unscaled-scale-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-iframe-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-iframe.html.
* web-platform-tests/visual-viewport/viewport-unscaled-scale.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale.html.
* web-platform-tests/visual-viewport/viewport-unscaled-scroll-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe.html.
* web-platform-tests/visual-viewport/viewport-unscaled-scroll.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll.html.
* web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-size-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe.html.
* web-platform-tests/visual-viewport/viewport-unscaled-size.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size.html.
* web-platform-tests/visual-viewport/viewport_support.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport_support.js.
* web-platform-tests/visual-viewport/w3c-import.log: Added.

LayoutTests:

* TestExpectations: Updated test path.
* platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe-expected.txt.
* platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-expected.txt.
Updated expectation since tests in a directory named 'viewport' but not 'visual-viewport' get a flexible viewport on iOS.
* platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe-expected.txt.

Modified Paths

Added Paths

Removed Paths

  • trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/
  • trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/

Diff

Modified: trunk/LayoutTests/ChangeLog (227053 => 227054)


--- trunk/LayoutTests/ChangeLog	2018-01-17 09:24:26 UTC (rev 227053)
+++ trunk/LayoutTests/ChangeLog	2018-01-17 09:34:46 UTC (rev 227054)
@@ -1,3 +1,23 @@
+2018-01-17  Ali Juma  <aj...@chromium.org>
+
+        Update web platform tests for Visual Viewport API
+        https://bugs.webkit.org/show_bug.cgi?id=181689
+
+        Reviewed by Alex Christensen.
+
+        Rename the test directory from 'viewport' to 'visual-viewport', and update
+        viewport-resize-event-on-load-overflowing-page.html.
+
+        This corresponds to the following upstream commits:
+        1) https://github.com/w3c/web-platform-tests/commit/f878fee4df619e55c7fbfce1a2ff5e5d4d83a03b
+        2) https://github.com/w3c/web-platform-tests/commit/03a684d63e62d85cffed38bc942f468692d7d54f
+
+        * TestExpectations: Updated test path.
+        * platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe-expected.txt.
+        * platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-expected.txt.
+        Updated expectation since tests in a directory named 'viewport' but not 'visual-viewport' get a flexible viewport on iOS.
+        * platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe-expected.txt.
+
 2018-01-17  Zan Dobersek  <zdober...@igalia.com>
 
         CanvasImageData: createImageData() parameter should not be nullable

Modified: trunk/LayoutTests/TestExpectations (227053 => 227054)


--- trunk/LayoutTests/TestExpectations	2018-01-17 09:24:26 UTC (rev 227053)
+++ trunk/LayoutTests/TestExpectations	2018-01-17 09:34:46 UTC (rev 227054)
@@ -276,7 +276,7 @@
 imported/w3c/web-platform-tests/html/dom/interfaces.worker.html [ Pass Failure ]
 imported/w3c/web-platform-tests/mediacapture-fromelement/creation.html [ Pass Failure ]
 webkit.org/b/180240 imported/w3c/web-platform-tests/resource-timing/single-entry-per-resource.html [ Pass Failure ]
-webkit.org/b/181435 imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page.html [ Pass Failure ]
+webkit.org/b/181435 imported/w3c/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html [ Pass Failure ]
 
 # The follow two tests change their output each run
 imported/w3c/web-platform-tests/fetch/api/abort/general.any.html [ Skip ]

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (227053 => 227054)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2018-01-17 09:24:26 UTC (rev 227053)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2018-01-17 09:34:46 UTC (rev 227054)
@@ -1,3 +1,46 @@
+2018-01-17  Ali Juma  <aj...@chromium.org>
+
+        Update web platform tests for Visual Viewport API
+        https://bugs.webkit.org/show_bug.cgi?id=181689
+
+        Reviewed by Alex Christensen.
+
+        Rename the test directory from 'viewport' to 'visual-viewport', and update
+        viewport-resize-event-on-load-overflowing-page.html.
+
+        This corresponds to the following upstream commits:
+        1) https://github.com/w3c/web-platform-tests/commit/f878fee4df619e55c7fbfce1a2ff5e5d4d83a03b
+        2) https://github.com/w3c/web-platform-tests/commit/03a684d63e62d85cffed38bc942f468692d7d54f
+
+        * resources/import-expectations.json:
+        * web-platform-tests/viewport/w3c-import.log: Removed.
+        * web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-no-resize-event-on-overflow-recalc-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-no-resize-event-on-overflow-recalc.html.
+        * web-platform-tests/visual-viewport/viewport-read-size-causes-layout-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-causes-layout-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-read-size-causes-layout.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-causes-layout.html.
+        * web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-in-iframe-causes-layout-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-in-iframe-causes-layout.html.
+        * web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page.html.
+        * web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-scrollbars-cause-resize-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-scrollbars-cause-resize.html.
+        * web-platform-tests/visual-viewport/viewport-type-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-type-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-type.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-type.html.
+        * web-platform-tests/visual-viewport/viewport-unscaled-scale-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-iframe-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-iframe.html.
+        * web-platform-tests/visual-viewport/viewport-unscaled-scale.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale.html.
+        * web-platform-tests/visual-viewport/viewport-unscaled-scroll-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe.html.
+        * web-platform-tests/visual-viewport/viewport-unscaled-scroll.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll.html.
+        * web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe-expected.txt.
+        * web-platform-tests/visual-viewport/viewport-unscaled-size-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe.html.
+        * web-platform-tests/visual-viewport/viewport-unscaled-size.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size.html.
+        * web-platform-tests/visual-viewport/viewport_support.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport_support.js.
+        * web-platform-tests/visual-viewport/w3c-import.log: Added.
+
 2018-01-12  Jiewen Tan  <jiewen_...@apple.com>
 
         [WebAuthN] Implement dummy WebAuthN IDLs

Modified: trunk/LayoutTests/imported/w3c/resources/import-expectations.json (227053 => 227054)


--- trunk/LayoutTests/imported/w3c/resources/import-expectations.json	2018-01-17 09:24:26 UTC (rev 227053)
+++ trunk/LayoutTests/imported/w3c/resources/import-expectations.json	2018-01-17 09:34:46 UTC (rev 227054)
@@ -316,6 +316,7 @@
     "web-platform-tests/url": "import", 
     "web-platform-tests/user-timing": "import", 
     "web-platform-tests/vibration": "skip", 
+    "web-platform-tests/visual-viewport": "import", 
     "web-platform-tests/wai-aria": "skip", 
     "web-platform-tests/wasm": "skip", 
     "web-platform-tests/web-animations": "skip", 

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-no-resize-event-on-overflow-recalc-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,7 @@
+No Resize Event Fired on Overflow Recalc
+
+Test Description: This test ensures we don't fire spurrious resize events when overflow is recalculated.
+
+
+PASS Resize event not fired at window.visualViewport when content is added 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-no-resize-event-on-overflow-recalc.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,49 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Viewport: No Resize Event Fired on Overflow Recalc</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, minimum-scale=1">
+        <script src=""
+        <script src=""
+        <script src=""
+        <style>
+          html {
+              height: 100%;
+          }
+          body {
+              /* Ensure overflow to start */
+              height: 200%;
+          }
+        </style>
+    </head>
+    <body>
+    <h1>No Resize Event Fired on Overflow Recalc</h1>
+    <h4>
+        Test Description: This test ensures we don't fire spurrious resize
+        events when overflow is recalculated.
+    </h4>
+    <script>
+      function runTest() {
+        var t = async_test(
+            "Resize event not fired at window.visualViewport when content is added");
+        var viewResized = false;
+        window.visualViewport.addEventListener('resize', function() {
+            viewResized = true;
+        });
+
+        requestAnimationFrame(t.step_func_done(function() {
+            assert_equals(viewResized, false);
+        }));
+
+        document.body.style.height = "400%";
+      }
+
+      // Run the test after load to make sure any resize from load doesn't
+      // interfere.
+      window._onload_ = requestAnimationFrame(runTest);
+    </script>
+    <div id="log"></div>
+    </body>
+</html>
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-causes-layout-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-causes-layout-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-causes-layout-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-causes-layout-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,5 @@
+This test checks that requesting the viewport size causes any pending layout to occur.
+
+
+PASS Untitled 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-causes-layout.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-causes-layout.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-causes-layout.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-causes-layout.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta name="viewport" content="width=device-width, minimum-scale=1">
+<script src=""
+<script src=""
+
+<style>
+  html {
+    height: 100%;
+  }
+</style>
+
+<h4>This test checks that requesting the viewport size causes any pending layout to occur.</h4>
+<script>
+  async_test(function(t) {
+    window._onload_ = t.step_func(function() {
+      assert_equals(window.visualViewport.width, document.documentElement.clientWidth,
+          "window.visualViewport.width should match the window width.");
+      assert_equals(visualViewport.height, document.documentElement.clientHeight,
+          "window.visualViewport.height should match the window height.");
+
+      // Add overflow so scrollbars appear.
+      document.body.style.width = "2000px";
+      document.body.style.height = "2000px";
+
+      var viewportWidth = window.visualViewport.width;
+      var viewportHeight = window.visualViewport.height;
+
+      assert_equals(viewportWidth, document.documentElement.clientWidth,
+          "Reading viewport width should cause a layout and exclude the new scrollbar.");
+      assert_equals(viewportHeight, document.documentElement.clientHeight,
+          "Reading viewport height should cause a layout and exclude the new scrollbar.");
+      t.done();
+    });
+  });
+</script>

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-in-iframe-causes-layout-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,6 @@
+This test checks that requesting the viewport size in an iframe causes any pending layout to occur.
+
+
+
+PASS Untitled 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-in-iframe-causes-layout.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta name="viewport" content="width=device-width, minimum-scale=1">
+<script src=""
+<script src=""
+<style>
+  iframe {
+    width: 200px;
+    height: 300px;
+  }
+</style>
+
+<h4>This test checks that requesting the viewport size in an iframe causes any pending layout to occur.</h4>
+<iframe srcdoc="<!DOCTYPE html><style>html{height:100%}</style>"></iframe>
+<script>
+  async_test(function(t) {
+    window._onload_ = t.step_func(function() {
+      assert_equals(frames[0].window.visualViewport.width, 200,
+          "Reading width of iframe viewport should match iframe width.");
+      assert_equals(frames[0].window.visualViewport.height, 300,
+          "Reading height of iframe viewport should match iframe height.");
+
+      // Add overflow so scrollbars appear.
+      window.frames[0].window.document.body.style.width = "2000px";
+      window.frames[0].window.document.body.style.height = "2000px";
+
+      var viewportWidth = frames[0].window.visualViewport.width;
+      var viewportHeight = frames[0].window.visualViewport.height;
+
+      assert_equals(viewportWidth, frames[0].window.document.documentElement.clientWidth,
+          "Reading width of iframe viewport should cause a layout and exclude the new scrollbar.");
+      assert_equals(viewportHeight, frames[0].window.document.documentElement.clientHeight,
+          "Reading height of iframe viewport should cause a layout and exclude the new scrollbar.");
+      t.done();
+    });
+  });
+</script>

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,7 @@
+Viewport: Resize Event On Load Overflowing Page
+
+Test Description: This test ensures that we fire a resize event against window.visualViewport if the page has overflow (since this creates a scrollbar and thus changes the viewport size).
+
+
+PASS Resize event fired exactly once against window.visualViewport if scrollbars affect layout. 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,62 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Viewport: Resize Event On Load Overflowing Page</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, minimum-scale=1">
+        <script src=""
+        <script src=""
+        <script src=""
+        <script>
+            // This first case ensures that we load into the same kind of
+            // viewport. If the previous test had a page-scale factor set or a
+            // different viewport <meta> we might get a resize because of that.
+            if (location.search === "") {
+                window.addEventListener('load', function() {
+                    var url = "" + "?reloaded";
+                    window.location.href = ""
+                });
+            } else {
+                var t = async_test(
+                    "Resize event fired exactly once against window.visualViewport if " +
+                    "scrollbars affect layout.");
+                var numViewResizes = 0;
+                window.visualViewport.addEventListener('resize', function() {
+                    numViewResizes++;
+                });
+
+                window.addEventListener('load', function() {
+                  requestAnimationFrame(function() {
+                    requestAnimationFrame(
+                        t.step_func_done(function() {
+                            var isOverlay = calculateScrollbarThickness() == 0;
+                            assert_equals(numViewResizes, isOverlay ? 0 : 1);
+                        }));
+                    });
+                });
+            }
+        </script>
+        <style>
+          html {
+            height: 100%;
+          }
+          body {
+              /* Ensure overflow */
+              height: 200%;
+          }
+          #log {
+              overflow: auto;
+          }
+        </style>
+    </head>
+    <body>
+    <h1>Viewport: Resize Event On Load Overflowing Page</h1>
+    <h4>
+        Test Description: This test ensures that we fire a resize event against
+        window.visualViewport if the page has overflow (since this creates a scrollbar
+        and thus changes the viewport size).
+    </h4>
+    <div id="log"></div>
+    </body>
+</html>
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-scrollbars-cause-resize-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,7 @@
+Viewport: Scrollbars Cause Resize
+
+Test Description: This test checks that the appearance of classic scrollbars will cause a resize event to be fired at window.visualViewport.
+
+
+PASS view size initially matches window size 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-scrollbars-cause-resize.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,66 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Viewport: Scrollbars Cause Resize</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, minimum-scale=1">
+        <script src=""
+        <script src=""
+        <script src=""
+    </head>
+    <body>
+    <h1>Viewport: Scrollbars Cause Resize</h1>
+    <h4>
+        Test Description: This test checks that the appearance of classic
+        scrollbars will cause a resize event to be fired at window.visualViewport.
+    </h4>
+    <script>
+      function runTest() {
+        var scrollbarThickness = calculateScrollbarThickness();
+
+        document.documentElement.style.overflow = "hidden";
+        var initialWidth = visualViewport.width;
+        var initialHeight = visualViewport.height;
+
+        test(function() {
+              assert_equals(window.visualViewport.width, window.innerWidth);
+              assert_equals(window.visualViewport.height, window.innerHeight);
+            }, "view size initially matches window size");
+
+
+        var t = async_test(
+            "Resize event was fired at window.visualViewport if, and only if, " +
+            "scrollbars are classic (i.e. affect flow)");
+        var viewResized = false;
+        window.visualViewport.addEventListener('resize', function() {
+            viewResized = true;
+        });
+
+        requestAnimationFrame(t.step_func_done(function() {
+            assert_equals(viewResized, scrollbarThickness > 0);
+        }));
+
+        document.documentElement.style.overflow = "";
+        document.body.style.width = "10000px";
+        document.body.style.height = "10000px";
+
+        var expectedWidth = initialWidth - scrollbarThickness;
+        var expectedHeight = initialHeight - scrollbarThickness;
+
+        test(function() {
+              assert_equals(window.visualViewport.width, expectedWidth);
+              assert_equals(window.visualViewport.height, expectedHeight);
+            }, "view size reflects appearance of classic scrollbars");
+
+
+        document.body.style.width = "";
+        document.body.style.height = "";
+      }
+
+      // Run the test after load to make sure any resize from a previous test
+      // doesn't interfere.
+      window._onload_ = runTest;
+    </script>
+    <div id="log"></div>
+    </body>
+</html>

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-type-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-type-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-type-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-type-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,10 @@
+Viewport: window.visualViewport type
+
+Test Description: This test checks that window.visualViewport is an object of type VisualViewport.
+
+window.visualViewport is of type: object.
+
+
+PASS window.visualViewport is an object 
+PASS window.visualViewport has type `VisualViewport` 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-type.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-type.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-type.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-type.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,31 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Viewport: window.visualViewport type</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width">
+        <script src=""
+        <script src=""
+    </head>
+    <body>
+    <h1>Viewport: window.visualViewport type</h1>
+    <h4>Test Description: This test checks that window.visualViewport is an object of type VisualViewport.</h4>
+    <script>
+        test(function() {
+              assert_equals(typeof(window.visualViewport), "object");
+            }, "window.visualViewport is an object");
+
+        test(function() {
+              assert_equals(window.visualViewport.toString(), "[object VisualViewport]");
+            }, "window.visualViewport has type `VisualViewport`");
+
+        addEventListener("load", function() {
+            document.getElementById("viewtype-log").innerText = typeof(window.visualViewport);
+        });
+    </script>
+    <div id="complete-notice">
+        <p>window.visualViewport is of type: <span id="viewtype-log"></span>.</p>
+    </div>
+    <div id="log"></div>
+    </body>
+</html>

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,9 @@
+Viewport: Unscaled scale
+
+Test Description: This test checks that the default value for scale is 1.
+
+window.visualViewport.scale is 1.
+
+
+PASS visualViewport.scale default value. 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-iframe-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,10 @@
+Viewport: Unscaled scale iframe
+
+Test Description: This test checks that the default value for scale inside an iframe is 1.
+
+
+iframe's window.visualViewport.scale is 1.
+
+
+PASS iframe's visualViewport.scale default value. 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-iframe.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,33 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Viewport: Unscaled scale iframe</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width">
+        <script src=""
+        <script src=""
+        <script src=""
+        <style>
+            iframe {
+              width: 200px;
+              height: 300px;
+            }
+        </style>
+    </head>
+    <body>
+    <h1>Viewport: Unscaled scale iframe</h1>
+    <h4>Test Description: This test checks that the default value for scale inside an iframe is 1.</h4>
+    <iframe></iframe>
+    <div id="complete-notice">
+        <p>iframe's window.visualViewport.scale is <span id="view-scale-log"></span>.</p>
+    </div>
+    <div id="log"></div>
+    </body>
+    <script>
+        test(function() {
+              assert_equals(frames[0].window.visualViewport.scale, 1);
+            }, "iframe's visualViewport.scale default value.");
+
+        document.getElementById("view-scale-log").innerText = frames[0].window.visualViewport.scale;
+    </script>
+</html>

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,26 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Viewport: Unscaled scale</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width">
+        <script src=""
+        <script src=""
+        <script src=""
+    </head>
+    <body>
+    <h1>Viewport: Unscaled scale</h1>
+    <h4>Test Description: This test checks that the default value for scale is 1.</h4>
+    <div id="complete-notice">
+        <p>window.visualViewport.scale is <span id="view-scale-log"></span>.</p>
+    </div>
+    <div id="log"></div>
+    </body>
+    <script>
+        test(function() {
+              assert_equals(window.visualViewport.scale, 1);
+            }, "visualViewport.scale default value.");
+
+        document.getElementById("view-scale-log").innerText = window.visualViewport.scale;
+    </script>
+</html>

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,14 @@
+Viewport: Scroll - no page scale
+
+Test Description: This test checks that window.visualViewport returns correct offset and scroll values without any pinch-zoom page scale applied.
+
+window.visualViewport's offsetLeft and offsetTop is (0, 0).
+
+window.visualViewport's pageLeft and pageTop is (1000, 1200).
+
+
+PASS offsetLeft must be 0. 
+PASS offsetTop must be 0. 
+PASS pageLeft must reflect location of viewport in document. 
+PASS pageTop must reflect location of viewport in document. 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,15 @@
+Viewport: Scroll in iframe - no page scale
+
+Test Description: This test checks that window.visualViewport returns correct offset and scroll values without any pinch-zoom page scale applied.
+
+
+frames[0].window.visualViewport's offsetLeft and offsetTop is (0, 0).
+
+frames[0].window.visualViewport's pageLeft and pageTop is (1000, 1200).
+
+
+PASS offsetLeft must be 0. 
+PASS offsetTop must be 0. 
+PASS pageLeft must reflect location of viewport in document. 
+PASS pageTop must reflect location of viewport in document. 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,54 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Viewport: Scroll in iframe - no page scale</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width">
+        <script src=""
+        <script src=""
+        <script src=""
+        <style>
+          iframe {
+            width: 200px;
+            height: 300px;
+            border: 0;
+          }
+        </style>
+    </head>
+    <body>
+    <h1>Viewport: Scroll in iframe - no page scale</h1>
+    <h4>Test Description: This test checks that window.visualViewport returns correct offset and scroll values without any pinch-zoom page scale applied.</h4>
+    <iframe></iframe>
+    <div id="complete-notice">
+        <p>frames[0].window.visualViewport's offsetLeft and offsetTop is (<span id="scroll-offset-log"></span>).</p>
+        <p>frames[0].window.visualViewport's pageLeft and pageTop is (<span id="scroll-page-log"></span>).</p>
+    </div>
+    <div id="log"></div>
+    </body>
+    <script>
+        var iframe = frames[0].window;
+
+        // Add overflow we can scroll.
+        iframe.document.body.style.width = "2000px";
+        iframe.document.body.style.height = "2000px";
+
+        iframe.scrollTo(1000, 1200);
+
+
+        test(function() {
+              assert_equals(iframe.visualViewport.offsetLeft, 0);
+            }, "offsetLeft must be 0.");
+        test(function() {
+              assert_equals(iframe.visualViewport.offsetTop, 0);
+            }, "offsetTop must be 0.");
+        test(function() {
+              assert_equals(iframe.visualViewport.pageLeft, 1000);
+            }, "pageLeft must reflect location of viewport in document.");
+        test(function() {
+              assert_equals(iframe.visualViewport.pageTop, 1200);
+            }, "pageTop must reflect location of viewport in document.");
+
+        document.getElementById("scroll-offset-log").innerText = iframe.visualViewport.offsetLeft+ ", " + iframe.visualViewport.offsetTop;
+        document.getElementById("scroll-page-log").innerText = iframe.visualViewport.pageLeft + ", " + iframe.visualViewport.pageTop;
+    </script>
+</html>

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,45 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Viewport: Scroll - no page scale</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, minimum-scale=1">
+        <script src=""
+        <script src=""
+        <script src=""
+    </head>
+    <body>
+    <h1>Viewport: Scroll - no page scale</h1>
+    <h4>Test Description: This test checks that window.visualViewport returns correct offset and scroll values without any pinch-zoom page scale applied.</h4>
+    <div id="complete-notice">
+        <p>window.visualViewport's offsetLeft and offsetTop is (<span id="scroll-offset-log"></span>).</p>
+        <p>window.visualViewport's pageLeft and pageTop is (<span id="scroll-page-log"></span>).</p>
+    </div>
+    <div id="log"></div>
+    </body>
+    <script>
+        // Add overflow we can scroll.
+        document.body.style.width = "5000px";
+        document.body.style.height = "5000px";
+
+        scrollTo(1000, 1200);
+
+        test(function() {
+              assert_equals(window.visualViewport.offsetLeft, 0);
+            }, "offsetLeft must be 0.");
+        test(function() {
+              assert_equals(window.visualViewport.offsetTop, 0);
+            }, "offsetTop must be 0.");
+        test(function() {
+              assert_equals(window.visualViewport.pageLeft, 1000);
+            }, "pageLeft must reflect location of viewport in document.");
+        test(function() {
+              assert_equals(window.visualViewport.pageTop, 1200);
+            }, "pageTop must reflect location of viewport in document.");
+
+        document.getElementById("scroll-offset-log").innerText = window.visualViewport.offsetLeft+ ", " + window.visualViewport.offsetTop;
+        document.getElementById("scroll-page-log").innerText = window.visualViewport.pageLeft + ", " + window.visualViewport.pageTop;
+
+        scrollTo(0, 0);
+    </script>
+</html>

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,14 @@
+Viewport: Size unscaled
+
+Test Description: This test checks that window.visualViewport returns correct sizes without any pinch-zoom page scale applied.
+
+window.visualViewport width and height is (800, 600).
+
+window.visualViewport width and height when scrollbars are present is (785, 585).
+
+
+PASS visualViewport.width should match documentElement.clientWidth when unzoomed. 
+PASS visualViewport.height should match documentElement.clientHeight when unzoomed. 
+PASS visualViewport.width should exclude scrollbar. 
+PASS visualViewport.height should exclude scrollbar. 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe-expected.txt) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,15 @@
+Viewport: Size in iframe - no page scale
+
+Test Description: This test checks that window.visualViewport returns correct sizes without any pinch-zoom page scale applied but with scrollbars.
+
+
+frames[0].window.visualViewport width and height is (200, 300).
+
+frames[0].window.visualViewport width and height when scrollbars are present is (185, 285).
+
+
+PASS window.visualViewport.width of iframe viewport should match iframe width. 
+PASS window.visualViewport.height of iframe viewport should match iframe height. 
+PASS window.visualViewport.width of iframe viewport should not include scrollbar. 
+PASS window.visualViewport.height of iframe viewport should not include scrollbar. 
+

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,53 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Viewport: Size in iframe - no page scale</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width">
+        <script src=""
+        <script src=""
+        <script src=""
+        <style>
+          iframe {
+            width: 200px;
+            height: 300px;
+            border: 0;
+          }
+        </style>
+    </head>
+    <body>
+    <h1>Viewport: Size in iframe - no page scale</h1>
+    <h4>Test Description: This test checks that window.visualViewport returns correct sizes without any pinch-zoom page scale applied but with scrollbars.</h4>
+    <iframe></iframe>
+    <div id="complete-notice">
+        <p>frames[0].window.visualViewport width and height is (<span id="size-log"></span>).</p>
+        <p>frames[0].window.visualViewport width and height when scrollbars are present is (<span id="size-scrollbars-log"></span>).</p>
+    </div>
+    <div id="log"></div>
+    </body>
+    <script>
+        var scrollbarThickness = calculateScrollbarThickness();
+
+        test(function() {
+              assert_equals(frames[0].window.visualViewport.width, 200);
+            }, "window.visualViewport.width of iframe viewport should match iframe width.");
+        test(function() {
+              assert_equals(frames[0].window.visualViewport.height, 300);
+            }, "window.visualViewport.height of iframe viewport should match iframe height.");
+
+        document.getElementById("size-log").innerText = frames[0].window.visualViewport.width + ", " + frames[0].window.visualViewport.height;
+
+        // Add overflow so scrollbars appear.
+        window.frames[0].window.document.body.style.width = "2000px";
+        window.frames[0].window.document.body.style.height = "2000px";
+
+        test(function() {
+              assert_equals(frames[0].window.visualViewport.width, 200 - scrollbarThickness);
+            }, "window.visualViewport.width of iframe viewport should not include scrollbar.");
+        test(function() {
+              assert_equals(frames[0].window.visualViewport.height, 300 - scrollbarThickness);
+            }, "window.visualViewport.height of iframe viewport should not include scrollbar.");
+
+        document.getElementById("size-scrollbars-log").innerText = frames[0].window.visualViewport.width + ", " + frames[0].window.visualViewport.height;
+    </script>
+</html>

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size.html (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size.html) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size.html	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size.html	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,51 @@
+<!doctype html>
+<html>
+    <head>
+        <title>Viewport: Size unscaled</title>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, minimum-scale=1">
+        <script src=""
+        <script src=""
+        <script src=""
+        <style>
+          html {
+            width: 100%;
+            height: 100%;
+          }
+        </style>
+    </head>
+    <body>
+    <h1>Viewport: Size unscaled</h1>
+    <h4>Test Description: This test checks that window.visualViewport returns correct sizes without any pinch-zoom page scale applied.</h4>
+    <div id="complete-notice">
+        <p>window.visualViewport width and height is (<span id="view-size-log"></span>).</p>
+        <p>window.visualViewport width and height when scrollbars are present is (<span id="view-size-scrollbar-log"></span>).</p>
+    </div>
+    <div id="log"></div>
+    </body>
+    <script>
+        var scrollbarThickness = calculateScrollbarThickness();
+
+        test(function() {
+              assert_equals(window.visualViewport.width, document.documentElement.clientWidth);
+            }, "visualViewport.width should match documentElement.clientWidth when unzoomed.");
+        test(function() {
+              assert_equals(window.visualViewport.height, document.documentElement.clientHeight);
+            }, "visualViewport.height should match documentElement.clientHeight when unzoomed.");
+
+        document.getElementById("view-size-log").innerText = window.visualViewport.width + ", " + window.visualViewport.height;
+
+        // Add overflow so scrollbars appear.
+        document.body.style.width = "2000px";
+        document.body.style.height = "2000px";
+
+        test(function() {
+              assert_equals(window.visualViewport.width, document.documentElement.clientWidth);
+            }, "visualViewport.width should exclude scrollbar.");
+        test(function() {
+              assert_equals(window.visualViewport.height, document.documentElement.clientHeight);
+            }, "visualViewport.height should exclude scrollbar.");
+
+        document.getElementById("view-size-scrollbar-log").innerText = window.visualViewport.width + ", " + window.visualViewport.height;
+    </script>
+</html>

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport_support.js (from rev 227053, trunk/LayoutTests/imported/w3c/web-platform-tests/viewport/viewport_support.js) (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport_support.js	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport_support.js	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,153 @@
+// If scrollbars affect layout (i.e. what the CSS Overflow spec calls "classic
+// scrollbars", as opposed to overlay scrollbars), return the scrollbar
+// thickness in CSS pixels. Returns 0 otherwise.
+function calculateScrollbarThickness() {
+    var container = document.createElement("div");
+    container.style.width = "100px";
+    container.style.height = "100px";
+    container.style.position = "absolute";
+    container.style.visibility = "hidden";
+    container.style.overflow = "auto";
+
+    document.body.appendChild(container);
+
+    var widthBefore = container.clientWidth;
+    var longContent = document.createElement("div");
+    longContent.style.height = "1000px";
+    container.appendChild(longContent);
+
+    var widthAfter = container.clientWidth;
+
+    container.remove();
+
+    return widthBefore - widthAfter;
+}
+
+// Puts up a widget on screen instructing the user to pinch-zoom in to the
+// given scale. The widget is sized such that the given scale is achieved. The
+// widget is placed at (x, y) on the page. A button on the widget is used by
+// the user to let the widget know that the user has finished. If a callback is
+// provided, it will be called when the user dismisses the widget.
+function showPinchWidget(scale, x, y, callback) {
+    var border = 10;
+    var width = window.innerWidth / scale - border;
+    var height = window.innerHeight / scale - border;
+
+    var box = document.createElement("div");
+    box.style.width = width + "px";
+    box.style.height = height + "px";
+
+    // Adjust the x/y coordinates by the border width. We want the box to
+    // appear in a place such that if the user gets the window edges exactly on
+    // the half-point of the border they end up at x/y
+    box.style.left = x - border/2 + "px";
+    box.style.top = y - border/2 + "px";
+
+    box.style.position = "absolute";
+    box.style.backgroundColor = "coral";
+    box.style.border = border + "px solid blue";
+    box.style.borderBottom = "0";
+    box.style.overflow = "auto";
+
+    var oldDocumentOverflow = document.documentElement.style.overflow;
+
+    var instructions = document.createElement("p");
+    instructions.innerText =
+        "Pinch-zoom and align this box so that the left, right, and top " +
+        "window edges are over the border on each side. When done, click the " +
+        "'DONE' button above";
+    instructions.style.textAlign = "center";
+    instructions.style.fontSize = "medium";
+
+    var button = document.createElement("button");
+    button.innerText = "DONE";
+    button.style.width = "50%";
+    button.style.height = "20%";
+    button.style.fontSize = "medium";
+    button.style.marginLeft = "25%";
+    button.addEventListener("click", function() {
+        box.remove();
+        document.documentElement.style.overflow = oldDocumentOverflow;
+        if (callback)
+            callback();
+    });
+
+    box.appendChild(button);
+    box.appendChild(instructions);
+
+    document.documentElement.style.overflow = "hidden";
+
+    document.body.appendChild(box);
+}
+
+// Ends a manual test. Must be called before any async tests are started.
+function skipManualTest() {
+    test(function() { assert_true(false); }, "Manual Test Skipped");
+    done();
+}
+
+var stepInstructions = [];
+var testNames = [];
+var stepFunctions = [];
+var steps;
+var curStep = 0;
+
+// Adds a manual test step to the test. A test will add a series of steps,
+// along with instructions.  Once all the tests steps are added, the test can
+// be run by continually running the nextStep() function. All manual test steps
+// must be added before calling nextStep.
+//
+// |func| A function to be executed at the given step. This function can include
+//        testharness assertions if |testName| is provided. If this is the last
+//        step, the |done()| function (used for manual testharness.js tests)
+//        will be called after |func| is executed.
+// |testName| If provided, the |func| will be wrapped in a testharness.js
+//            async_test with this name. If null, |func| will be executed as a
+//            free function.
+// |instructions| The text to display to the user. Note, these are shown after
+//                step is executed so these should be instructions to setup the
+//                checks in the next step.
+function addManualTestStep(func, testName, instructions) {
+    stepFunctions.push(func);
+    testNames.push(testName);
+    stepInstructions.push(instructions);
+}
+
+// Runs the next step of the test. This must be called only after all test steps
+// have been added using |addManualTestStep|.
+//
+// |callbackFunc| If provided, will be called with a single argument being the
+//                instruction string for the current step. Use this to update
+//                any necessary UI.
+function nextStep(callbackFunc) {
+    if (curStep == 0)
+      _startManualTest();
+
+    if (typeof(callbackFunc) === 'function')
+        callbackFunc(stepInstructions[curStep]);
+
+    steps[curStep]();
+    curStep++;
+}
+
+function _startManualTest() {
+    steps = [];
+    for (let i = 0; i < stepFunctions.length; ++i) {
+        var stepFunc = stepFunctions[i];
+        var testName = testNames[i];
+        if (testName) {
+            steps.push(async_test(testName).step_func(function() {
+                stepFunctions[i]();
+                this.done();
+                if (i == stepFunctions.length - 1)
+                    done();
+            }));
+        } else {
+            steps.push(function() {
+                stepFunctions[i]();
+                if (i == stepFunctions.length - 1)
+                    done();
+            });
+        }
+    }
+}

Added: trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/w3c-import.log (0 => 227054)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/w3c-import.log	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/w3c-import.log	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,30 @@
+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the WPT github:
+	https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/OWNERS
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-causes-layout.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-type.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scale.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size.html
+/LayoutTests/imported/w3c/web-platform-tests/visual-viewport/viewport_support.js

Copied: trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt (from rev 227053, trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe-expected.txt) (0 => 227054)


--- trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,15 @@
+Viewport: Scroll in iframe - no page scale
+
+Test Description: This test checks that window.visualViewport returns correct offset and scroll values without any pinch-zoom page scale applied.
+
+
+frames[0].window.visualViewport's offsetLeft and offsetTop is (0, 0).
+
+frames[0].window.visualViewport's pageLeft and pageTop is (0, 0).
+
+
+PASS offsetLeft must be 0. 
+PASS offsetTop must be 0. 
+FAIL pageLeft must reflect location of viewport in document. assert_equals: expected 1000 but got 0
+FAIL pageTop must reflect location of viewport in document. assert_equals: expected 1200 but got 0
+

Copied: trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt (from rev 227053, trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-expected.txt) (0 => 227054)


--- trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,14 @@
+Viewport: Size unscaled
+
+Test Description: This test checks that window.visualViewport returns correct sizes without any pinch-zoom page scale applied.
+
+window.visualViewport width and height is (800, 600).
+
+window.visualViewport width and height when scrollbars are present is (800, 600).
+
+
+PASS visualViewport.width should match documentElement.clientWidth when unzoomed. 
+PASS visualViewport.height should match documentElement.clientHeight when unzoomed. 
+PASS visualViewport.width should exclude scrollbar. 
+PASS visualViewport.height should exclude scrollbar. 
+

Copied: trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt (from rev 227053, trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe-expected.txt) (0 => 227054)


--- trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt	2018-01-17 09:34:46 UTC (rev 227054)
@@ -0,0 +1,15 @@
+Viewport: Size in iframe - no page scale
+
+Test Description: This test checks that window.visualViewport returns correct sizes without any pinch-zoom page scale applied but with scrollbars.
+
+
+frames[0].window.visualViewport width and height is (200, 300).
+
+frames[0].window.visualViewport width and height when scrollbars are present is (200, 300).
+
+
+PASS window.visualViewport.width of iframe viewport should match iframe width. 
+PASS window.visualViewport.height of iframe viewport should match iframe height. 
+FAIL window.visualViewport.width of iframe viewport should not include scrollbar. assert_equals: expected 185 but got 200
+FAIL window.visualViewport.height of iframe viewport should not include scrollbar. assert_equals: expected 285 but got 300
+
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to