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

Unified Diff: android_webview/native/aw_contents.cc

Issue 2263043002: android_webview: Let AwContents manage TouchHandleDrawable (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: use SynchronousCompositorClient Created 4 years, 4 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: android_webview/native/aw_contents.cc
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc
index 25a8c5885377ae2201de7bf034058db66d9ba10b..14248ea15e8862d87f5466c14199276180da1093 100644
--- a/android_webview/native/aw_contents.cc
+++ b/android_webview/native/aw_contents.cc
@@ -34,6 +34,7 @@
#include "android_webview/native/permission/aw_permission_request.h"
#include "android_webview/native/permission/permission_request_handler.h"
#include "android_webview/native/permission/simple_permission_request.h"
+#include "android_webview/native/popup_touch_handle_drawable.h"
#include "android_webview/native/state_serializer.h"
#include "android_webview/public/browser/draw_gl.h"
#include "base/android/jni_android.h"
@@ -1060,6 +1061,20 @@ void AwContents::DidOverscroll(const gfx::Vector2d& overscroll_delta,
overscroll_velocity.y());
}
+ui::TouchHandleDrawable* AwContents::CreateDrawable(float dip_scale) {
+ JNIEnv* env = AttachCurrentThread();
+ auto obj = java_ref_.get(env);
boliu 2016/08/24 23:35:30 don't use auto, jni types are scary, but not that
Jinsuk Kim 2016/08/25 07:32:21 Done.
+ if (obj.is_null())
+ return nullptr;
+ auto cvc = ContentViewCore::FromWebContents(web_contents_.get());
boliu 2016/08/24 23:35:30 ditto here and below, imo auto is making things ha
Jinsuk Kim 2016/08/25 07:32:21 Done.
+ DCHECK(cvc);
+ auto drawable = PopupTouchHandleDrawable::Create(cvc, dip_scale);
boliu 2016/08/24 23:35:30 if gc runs between this line and the line below, t
Jinsuk Kim 2016/08/25 07:32:21 Oops did it again.... Done.
+ auto drawable_obj = drawable->GetJavaObj().get(env);
+ if (!drawable_obj.is_null())
+ Java_AwContents_onCreatedTouchHandle(env, obj, drawable_obj);
+ return drawable.release();
+}
+
void AwContents::SetDipScale(JNIEnv* env,
const JavaParamRef<jobject>& obj,
jfloat dip_scale) {

Powered by Google App Engine
This is Rietveld 408576698