Chromium Code Reviews| 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); |
|
Ted C
2015/07/21 21:21:03
Hmm...didn't know we used ContentViewCore in this
sgurun-gerrit only
2015/07/21 21:33:49
Alternatively -which I think is a better alternati
|
| static_cast<WebContentsImpl*>(web_contents_)->RequestAXTreeSnapshot( |
| snapshot_callback); |
| } |