AX: Size of web view in Safari as reported by AX changes when adding/removing bars...
authorcfleizach@apple.com <cfleizach@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Sep 2014 00:32:05 +0000 (00:32 +0000)
committercfleizach@apple.com <cfleizach@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Sep 2014 00:32:05 +0000 (00:32 +0000)
https://bugs.webkit.org/show_bug.cgi?id=136756

Reviewed by Beth Dakin.

Source/WebCore:

topContentInset not only seems to push the scroll view's origin down, but it also shrinks its height as well, which
was not accounted for in the original fix.

Modified: platform/mac-wk2/accessibility/content-inset-scrollview-frame.html

* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::elementRect):

LayoutTests:

* platform/mac-wk2/accessibility/content-inset-scrollview-frame-expected.txt:
* platform/mac-wk2/accessibility/content-inset-scrollview-frame.html:

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

LayoutTests/ChangeLog
LayoutTests/platform/mac-wk2/accessibility/content-inset-scrollview-frame-expected.txt
LayoutTests/platform/mac-wk2/accessibility/content-inset-scrollview-frame.html
Source/WebCore/ChangeLog
Source/WebCore/accessibility/AccessibilityScrollView.cpp

index c85b3b6..ffd09a1 100644 (file)
@@ -1,3 +1,13 @@
+2014-09-11  Chris Fleizach  <cfleizach@apple.com>
+
+        AX: Size of web view in Safari as reported by AX changes when adding/removing bars is wrong
+        https://bugs.webkit.org/show_bug.cgi?id=136756
+
+        Reviewed by Beth Dakin.
+
+        * platform/mac-wk2/accessibility/content-inset-scrollview-frame-expected.txt:
+        * platform/mac-wk2/accessibility/content-inset-scrollview-frame.html:
+
 2014-09-11  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r173530.
index 9045019..99c0d90 100644 (file)
@@ -5,8 +5,16 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 The position of the web area and the scroll view should be the same when there's no content inset
 PASS webX == scrollViewX && webY == scrollViewY is true
+
+
 After setting the content inset, the new y position should be less than the initial
-PASS scrollViewY - scrollView.y is 100
+PASS newScrollViewY - scrollViewY is 100
+
+
+The content inset also reduces the height of the scroll view, which should be reflected here.
+PASS scrollViewHeight > newScrollViewHeight is true
+
+
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 9d7481d..3e299b1 100644 (file)
     if (window.accessibilityController) {
         var webArea = accessibilityController.rootElement.childAtIndex(0);
         var webX = webArea.x;
-        var webY = webArea.y;
+        var webY = webArea.y - webArea.height;
 
         var scrollView = webArea.parentElement();
         var scrollViewX = scrollView.x;
-        var scrollViewY = scrollView.y;
-  
+        // to get what the y that we're expecting, we need to subtract the height, because Cocoa requires the bottom point to be consider the y origin.
+        var scrollViewY = scrollView.y - scrollView.height;
+        var scrollViewHeight = scrollView.height;  
+
         debug("The position of the web area and the scroll view should be the same when there's no content inset");
         shouldBeTrue("webX == scrollViewX && webY == scrollViewY");
+        debug("\n");
  
         window.internals.setTopContentInset(100);
 
+        var newScrollViewHeight = scrollView.height;
+        var newScrollViewY =  scrollView.y - scrollView.height;
         debug("After setting the content inset, the new y position should be less than the initial");
-        shouldBe("scrollViewY - scrollView.y", "100")
+        shouldBe("newScrollViewY - scrollViewY", "100")
+        debug("\n");
+
+        debug("The content inset also reduces the height of the scroll view, which should be reflected here.");
+        shouldBeTrue("scrollViewHeight > newScrollViewHeight");
+        debug("\n");
     }
 </script>
 
index e60735e..2d17962 100644 (file)
@@ -1,3 +1,18 @@
+2014-09-11  Chris Fleizach  <cfleizach@apple.com>
+
+        AX: Size of web view in Safari as reported by AX changes when adding/removing bars is wrong
+        https://bugs.webkit.org/show_bug.cgi?id=136756
+
+        Reviewed by Beth Dakin.
+
+        topContentInset not only seems to push the scroll view's origin down, but it also shrinks its height as well, which
+        was not accounted for in the original fix.
+
+        Modified: platform/mac-wk2/accessibility/content-inset-scrollview-frame.html
+
+        * accessibility/AccessibilityScrollView.cpp:
+        (WebCore::AccessibilityScrollView::elementRect):
+
 2014-09-11  Roger Fong  <roger_fong@apple.com>
 
         [Windows] Unreviewed build fix.
index 7c6a82d..9f24c97 100644 (file)
@@ -222,7 +222,10 @@ LayoutRect AccessibilityScrollView::elementRect() const
         return LayoutRect();
 
     LayoutRect rect = m_scrollView->frameRect();
-    rect.setY(rect.y() + m_scrollView->topContentInset());
+    float topContentInset = m_scrollView->topContentInset();
+    // Top content inset pushes the frame down and shrinks it.
+    rect.move(0, topContentInset);
+    rect.contract(0, topContentInset);
     return rect;
 }