| Index: content/browser/web_contents/web_contents_android.cc
|
| diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
|
| index 63e45013eb0e644f764c8f74a9f3367c34abd78f..33296c100ab1fde8f60151aee7c38d474b1afd0a 100644
|
| --- a/content/browser/web_contents/web_contents_android.cc
|
| +++ b/content/browser/web_contents/web_contents_android.cc
|
| @@ -62,7 +62,8 @@ void JavaScriptResultCallback(const ScopedJavaGlobalRef<jobject>& callback,
|
| }
|
|
|
| ScopedJavaLocalRef<jobject> WalkAXTreeDepthFirst(JNIEnv* env,
|
| - BrowserAccessibilityAndroid* node, float scale_factor) {
|
| + BrowserAccessibilityAndroid* node, float scale_factor,
|
| + float y_offset, float x_scroll) {
|
| ScopedJavaLocalRef<jstring> j_text =
|
| ConvertUTF16ToJavaString(env, node->GetText());
|
| ScopedJavaLocalRef<jstring> j_class =
|
| @@ -83,7 +84,8 @@ ScopedJavaLocalRef<jobject> WalkAXTreeDepthFirst(JNIEnv* env,
|
| }
|
| ScopedJavaLocalRef<jobject> j_node =
|
| Java_WebContentsImpl_createAccessibilitySnapshotNode(env,
|
| - scale_factor * location.x(), scale_factor * location.y(),
|
| + scale_factor * location.x() - x_scroll,
|
| + scale_factor * location.y() + y_offset,
|
| scale_factor * node->GetScrollX(), scale_factor * node->GetScrollY(),
|
| scale_factor * location.width(), scale_factor * location.height(),
|
| j_text.obj(), color, bgcolor, scale_factor * size, text_style,
|
| @@ -94,7 +96,8 @@ ScopedJavaLocalRef<jobject> WalkAXTreeDepthFirst(JNIEnv* env,
|
| static_cast<BrowserAccessibilityAndroid*>(
|
| node->PlatformGetChild(i));
|
| Java_WebContentsImpl_addAccessibilityNodeAsChild(env,
|
| - j_node.obj(), WalkAXTreeDepthFirst(env, child, scale_factor).obj());
|
| + j_node.obj(), WalkAXTreeDepthFirst(env, child, scale_factor, y_offset,
|
| + x_scroll).obj());
|
| }
|
| return j_node;
|
| }
|
| @@ -102,6 +105,8 @@ ScopedJavaLocalRef<jobject> WalkAXTreeDepthFirst(JNIEnv* env,
|
| // Walks over the AXTreeUpdate and creates a light weight snapshot.
|
| void AXTreeSnapshotCallback(const ScopedJavaGlobalRef<jobject>& callback,
|
| float scale_factor,
|
| + float y_offset,
|
| + float x_scroll,
|
| const ui::AXTreeUpdate& result) {
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| if (result.nodes.empty()) {
|
| @@ -115,7 +120,7 @@ void AXTreeSnapshotCallback(const ScopedJavaGlobalRef<jobject>& callback,
|
| BrowserAccessibilityAndroid* root =
|
| static_cast<BrowserAccessibilityAndroid*>(manager->GetRoot());
|
| ScopedJavaLocalRef<jobject> j_root =
|
| - WalkAXTreeDepthFirst(env, root, scale_factor);
|
| + WalkAXTreeDepthFirst(env, root, scale_factor, y_offset, x_scroll);
|
| Java_WebContentsImpl_onAccessibilitySnapshot(
|
| env, j_root.obj(), callback.obj());
|
| }
|
| @@ -460,7 +465,9 @@ jint WebContentsAndroid::GetThemeColor(JNIEnv* env, jobject obj) {
|
|
|
| void WebContentsAndroid::RequestAccessibilitySnapshot(JNIEnv* env,
|
| jobject obj,
|
| - jobject callback) {
|
| + jobject callback,
|
| + jfloat y_offset,
|
| + jfloat x_scroll) {
|
| // Secure the Java callback in a scoped object and give ownership of it to the
|
| // base::Callback.
|
| ScopedJavaGlobalRef<jobject> j_callback;
|
| @@ -470,7 +477,7 @@ void WebContentsAndroid::RequestAccessibilitySnapshot(JNIEnv* env,
|
| ContentViewCoreImpl::FromWebContents(web_contents_);
|
| WebContentsImpl::AXTreeSnapshotCallback snapshot_callback =
|
| base::Bind(&AXTreeSnapshotCallback, j_callback,
|
| - contentViewCore->GetScaleFactor());
|
| + contentViewCore->GetScaleFactor(), y_offset, x_scroll);
|
| static_cast<WebContentsImpl*>(web_contents_)->RequestAXTreeSnapshot(
|
| snapshot_callback);
|
| }
|
|
|