| Index: content/browser/android/content_view_core_impl.cc
|
| diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc
|
| index 4a5a33f39516ec9f29fe52f866a4a42a7696bbcc..57c48a2faf5119dca6e67f27d097cf5c84eae37d 100644
|
| --- a/content/browser/android/content_view_core_impl.cc
|
| +++ b/content/browser/android/content_view_core_impl.cc
|
| @@ -25,6 +25,7 @@
|
| #include "content/browser/frame_host/interstitial_page_impl.h"
|
| #include "content/browser/frame_host/navigation_controller_impl.h"
|
| #include "content/browser/frame_host/navigation_entry_impl.h"
|
| +#include "content/browser/frame_host/render_frame_host_impl.h"
|
| #include "content/browser/geolocation/geolocation_dispatcher_host.h"
|
| #include "content/browser/media/media_web_contents_observer.h"
|
| #include "content/browser/renderer_host/compositor_impl_android.h"
|
| @@ -423,8 +424,12 @@ void ContentViewCoreImpl::OnBackgroundColorChanged(SkColor color) {
|
| Java_ContentViewCore_onBackgroundColorChanged(env, obj.obj(), color);
|
| }
|
|
|
| -void ContentViewCoreImpl::ShowSelectPopupMenu(const gfx::Rect& bounds,
|
| - const std::vector<MenuItem>& items, int selected_item, bool multiple) {
|
| +void ContentViewCoreImpl::ShowSelectPopupMenu(
|
| + RenderFrameHost* frame,
|
| + const gfx::Rect& bounds,
|
| + const std::vector<MenuItem>& items,
|
| + int selected_item,
|
| + bool multiple) {
|
| JNIEnv* env = AttachCurrentThread();
|
| ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env);
|
| if (j_obj.is_null())
|
| @@ -468,7 +473,9 @@ void ContentViewCoreImpl::ShowSelectPopupMenu(const gfx::Rect& bounds,
|
| }
|
| ScopedJavaLocalRef<jobjectArray> items_array(
|
| base::android::ToJavaArrayOfStrings(env, labels));
|
| - Java_ContentViewCore_showSelectPopup(env, j_obj.obj(),
|
| + Java_ContentViewCore_showSelectPopup(env,
|
| + j_obj.obj(),
|
| + reinterpret_cast<intptr_t>(frame),
|
| bounds_rect.obj(),
|
| items_array.obj(),
|
| enabled_array.obj(),
|
| @@ -810,12 +817,13 @@ scoped_refptr<cc::Layer> ContentViewCoreImpl::GetLayer() const {
|
|
|
| void ContentViewCoreImpl::SelectPopupMenuItems(JNIEnv* env,
|
| jobject obj,
|
| + jlong selectPopupSourceFrame,
|
| jintArray indices) {
|
| - RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>(
|
| - web_contents_->GetRenderViewHost());
|
| - DCHECK(rvhi);
|
| + RenderFrameHostImpl* rfhi =
|
| + reinterpret_cast<RenderFrameHostImpl*>(selectPopupSourceFrame);
|
| + DCHECK(rfhi);
|
| if (indices == NULL) {
|
| - rvhi->DidCancelPopupMenu();
|
| + rfhi->DidCancelPopupMenu();
|
| return;
|
| }
|
|
|
| @@ -825,7 +833,7 @@ void ContentViewCoreImpl::SelectPopupMenuItems(JNIEnv* env,
|
| for (int i = 0; i < selected_count; ++i)
|
| selected_indices.push_back(indices_ptr[i]);
|
| env->ReleaseIntArrayElements(indices, indices_ptr, JNI_ABORT);
|
| - rvhi->DidSelectPopupMenuItems(selected_indices);
|
| + rfhi->DidSelectPopupMenuItems(selected_indices);
|
| }
|
|
|
| void ContentViewCoreImpl::LoadUrl(
|
|
|