Chromium Code Reviews| Index: ui/android/view_android.cc |
| diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc |
| index 664758cd5304088709f1cd99bdb655bae764aadf..0ab53036f2f8657783c7e05f476c4182717b8e4d 100644 |
| --- a/ui/android/view_android.cc |
| +++ b/ui/android/view_android.cc |
| @@ -15,6 +15,7 @@ |
| namespace ui { |
| +using base::android::JavaParamRef; |
| using base::android::JavaRef; |
| using base::android::ScopedJavaLocalRef; |
| @@ -68,11 +69,6 @@ ViewAndroid::ScopedAnchorView::view() const { |
| return view_.get(env); |
| } |
| -ViewAndroid::ViewAndroid(const JavaRef<jobject>& delegate) |
| - : parent_(nullptr) |
| - , delegate_(base::android::AttachCurrentThread(), |
| - delegate.obj()) {} |
| - |
| ViewAndroid::ViewAndroid() : parent_(nullptr) {} |
| ViewAndroid::~ViewAndroid() { |
| @@ -86,8 +82,13 @@ ViewAndroid::~ViewAndroid() { |
| } |
| void ViewAndroid::SetDelegate(const JavaRef<jobject>& delegate) { |
| + // A ViewAndroid may have its own delegate or otherwise will |
| + // use the next available parent's delegate. |
| JNIEnv* env = base::android::AttachCurrentThread(); |
| delegate_ = JavaObjectWeakGlobalRef(env, delegate); |
| + Java_ViewAndroidDelegate_setNativePointer(env, |
|
boliu
2016/11/15 04:51:03
delegate has a many-to-one relationship with view,
Jinsuk Kim
2016/11/15 16:47:44
My intention was to maintain only one handler per
|
| + delegate, |
| + reinterpret_cast<jlong>(this)); |
| } |
| void ViewAndroid::AddChild(ViewAndroid* child) { |
| @@ -179,4 +180,19 @@ bool ViewAndroid::StartDragAndDrop(const JavaRef<jstring>& jtext, |
| jimage); |
| } |
| +void ViewAndroid::OnPhysicalBackingSizeChanged( |
| + JNIEnv* env, |
| + const JavaParamRef<jobject>& obj, |
| + jint width, jint height) { |
| + if (!physical_backing_size_changed_handler_.is_null()) { |
| + physical_backing_size_changed_handler_.Run(width, height); |
| + return; |
| + } |
| +} |
| + |
| +// static |
| +bool ViewAndroid::RegisterViewAndroid(JNIEnv* env) { |
| + return RegisterNativesImpl(env); |
| +} |
| + |
| } // namespace ui |