Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(666)

Unified Diff: content/shell/test_runner/web_ax_object_proxy.cc

Issue 2956053005: Keep track of fixed positioning in accessibility tree.
Patch Set: GetSimpleRelativeBounds, add failing test for fixed with transform Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/shell/test_runner/web_ax_object_proxy.cc
diff --git a/content/shell/test_runner/web_ax_object_proxy.cc b/content/shell/test_runner/web_ax_object_proxy.cc
index e9a49191218860385a7c246a9ad6342c3524c327..03ade01f59858b2253de37a0165a63445bb12b56 100644
--- a/content/shell/test_runner/web_ax_object_proxy.cc
+++ b/content/shell/test_runner/web_ax_object_proxy.cc
@@ -327,17 +327,20 @@ blink::WebFloatRect BoundsForObject(const blink::WebAXObject& object) {
blink::WebAXObject container;
blink::WebFloatRect bounds;
SkMatrix44 matrix;
- object.GetRelativeBounds(container, bounds, matrix);
+ bool is_fixed_positioned;
+ object.GetRelativeBounds(container, bounds, matrix, is_fixed_positioned);
gfx::RectF computedBounds(0, 0, bounds.width, bounds.height);
while (!container.IsDetached()) {
computedBounds.Offset(bounds.x, bounds.y);
- computedBounds.Offset(-container.GetScrollOffset().x,
- -container.GetScrollOffset().y);
+ if (!is_fixed_positioned) {
+ computedBounds.Offset(-container.GetScrollOffset().x,
+ -container.GetScrollOffset().y);
+ }
if (!matrix.isIdentity()) {
gfx::Transform transform(matrix);
transform.TransformRect(&computedBounds);
}
- container.GetRelativeBounds(container, bounds, matrix);
+ container.GetRelativeBounds(container, bounds, matrix, is_fixed_positioned);
}
return blink::WebFloatRect(computedBounds.x(), computedBounds.y(),
computedBounds.width(), computedBounds.height());
@@ -1810,7 +1813,9 @@ v8::Local<v8::Object> WebAXObjectProxy::OffsetContainer() {
blink::WebAXObject container;
blink::WebFloatRect bounds;
SkMatrix44 matrix;
- accessibility_object_.GetRelativeBounds(container, bounds, matrix);
+ bool is_fixed_positioned;
+ accessibility_object_.GetRelativeBounds(container, bounds, matrix,
+ is_fixed_positioned);
return factory_->GetOrCreate(container);
}
@@ -1819,7 +1824,9 @@ float WebAXObjectProxy::BoundsInContainerX() {
blink::WebAXObject container;
blink::WebFloatRect bounds;
SkMatrix44 matrix;
- accessibility_object_.GetRelativeBounds(container, bounds, matrix);
+ bool is_fixed_positioned;
+ accessibility_object_.GetRelativeBounds(container, bounds, matrix,
+ is_fixed_positioned);
return bounds.x;
}
@@ -1828,7 +1835,9 @@ float WebAXObjectProxy::BoundsInContainerY() {
blink::WebAXObject container;
blink::WebFloatRect bounds;
SkMatrix44 matrix;
- accessibility_object_.GetRelativeBounds(container, bounds, matrix);
+ bool is_fixed_positioned;
+ accessibility_object_.GetRelativeBounds(container, bounds, matrix,
+ is_fixed_positioned);
return bounds.y;
}
@@ -1837,7 +1846,9 @@ float WebAXObjectProxy::BoundsInContainerWidth() {
blink::WebAXObject container;
blink::WebFloatRect bounds;
SkMatrix44 matrix;
- accessibility_object_.GetRelativeBounds(container, bounds, matrix);
+ bool is_fixed_positioned;
+ accessibility_object_.GetRelativeBounds(container, bounds, matrix,
+ is_fixed_positioned);
return bounds.width;
}
@@ -1846,7 +1857,9 @@ float WebAXObjectProxy::BoundsInContainerHeight() {
blink::WebAXObject container;
blink::WebFloatRect bounds;
SkMatrix44 matrix;
- accessibility_object_.GetRelativeBounds(container, bounds, matrix);
+ bool is_fixed_positioned;
+ accessibility_object_.GetRelativeBounds(container, bounds, matrix,
+ is_fixed_positioned);
return bounds.height;
}
@@ -1856,7 +1869,9 @@ bool WebAXObjectProxy::HasNonIdentityTransform() {
blink::WebAXObject container;
blink::WebFloatRect bounds;
SkMatrix44 matrix;
- accessibility_object_.GetRelativeBounds(container, bounds, matrix);
+ bool is_fixed_positioned;
+ accessibility_object_.GetRelativeBounds(container, bounds, matrix,
+ is_fixed_positioned);
return !matrix.isIdentity();
}

Powered by Google App Engine
This is Rietveld 408576698