--- /dev/null
+<!doctype>
+<html><head>
+ <style>
+ #spacer {
+ width: 100px;
+ height: 100px;
+ background: blue;
+ }
+ #scrollable {
+ background: white;
+ border: 1px solid black;
+ overflow: auto;
+ position: relative;
+ width: 250px;
+ }
+ #container {
+ position:relative;
+ display:inline-block;
+ width:100%;
+ height:130px;
+ }
+ #margin {
+ position: absolute;
+ width: 200px;
+ top: 12px;
+ margin-right: 12px;
+ left: 12px;
+ height: 110px;
+ }
+ </style>
+ </head>
+ <body>
+ <div>
+ Starting point: No horizontal scrollbar<br/>
+ Expected: Get back to starting point after clicking through steps (do 1, do 2, cancel 1, cancel 2)<br/>
+ Actual: Scrollbars after doing the steps<br/><br/>
+ </div>
+<button id="step1" onclick="step1();">Step 1 - Enlarge container</button>
+<button id="step2" onclick="step2();">Step 2 - Move child</button>
+<button id="step3" onclick="step3();">Step 3 - Reduce container</button>
+<button id="step4" onclick="step4();">Step 4 - Return child</button>
+<div id="scrollable">
+<div id="container">
+<div id="margin" style="">
+<div id="spacer" style="height: 100px; width: 100%;">
+</div>
+</div>
+</div>
+</div>
+
+<script>
+function step1() {
+ document.getElementById("container").style.width="110%";
+}
+function step2() {
+ document.getElementById("margin").style.left="200px";
+}
+function step3() {
+ document.getElementById("container").style.width="100%";
+}
+function step4() {
+ document.getElementById("margin").style.left="12px";
+}
+
+</script>
+
+
+</body>
+</html>
--- /dev/null
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.browserfeatures;
+
+import org.junit.Test;
+import org.openqa.selenium.By;
+
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+public class WebkitPositionAbsoluteScrollbarsTest extends MultiBrowserTest {
+
+ @Override
+ protected String getDeploymentPath() {
+ return "/statictestfiles/browserfeatures/WebkitPositionAbsoluteScrollbars.html";
+ }
+
+ @Test
+ public void testWebkitScrollbarProblem() throws Exception {
+ openTestURL();
+ getDriver().findElement(By.id("step1")).click();
+ getDriver().findElement(By.id("step2")).click();
+ getDriver().findElement(By.id("step3")).click();
+ getDriver().findElement(By.id("step4")).click();
+ compareScreen("no-scrollbars");
+ }
+}