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

Unified Diff: content/browser/web_contents/web_contents_android.cc

Issue 1246823003: Provide an accessibility tree snapshot (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix gn Created 5 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
« no previous file with comments | « content/browser/web_contents/web_contents_android.h ('k') | content/content.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
« no previous file with comments | « content/browser/web_contents/web_contents_android.h ('k') | content/content.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698