| Index: components/web_contents_delegate_android/validation_message_bubble_android.cc
|
| diff --git a/components/web_contents_delegate_android/validation_message_bubble_android.cc b/components/web_contents_delegate_android/validation_message_bubble_android.cc
|
| index 754b608572ab537432a9984b36fbe98ae3033c95..a57763697a0a8a447ec630cecc85eadca7ba8445 100644
|
| --- a/components/web_contents_delegate_android/validation_message_bubble_android.cc
|
| +++ b/components/web_contents_delegate_android/validation_message_bubble_android.cc
|
| @@ -17,12 +17,15 @@ using content::RenderWidgetHost;
|
|
|
| namespace {
|
|
|
| -inline ContentViewCore* GetContentViewCoreFrom(RenderWidgetHost* widget_host) {
|
| - return ContentViewCore::FromWebContents(
|
| - content::WebContents::FromRenderViewHost(
|
| +base::android::ScopedJavaLocalRef<jobject> GetJavaContentViewCoreFrom(
|
| + RenderWidgetHost* widget_host) {
|
| + ContentViewCore* content_view_core =
|
| + ContentViewCore::FromWebContents(content::WebContents::FromRenderViewHost(
|
| content::RenderViewHost::From(widget_host)));
|
| + if (!content_view_core)
|
| + return base::android::ScopedJavaLocalRef<jobject>();
|
| + return content_view_core->GetJavaObject();
|
| }
|
| -
|
| }
|
|
|
| namespace web_contents_delegate_android {
|
| @@ -32,11 +35,16 @@ ValidationMessageBubbleAndroid::ValidationMessageBubbleAndroid(
|
| const gfx::Rect& anchor_in_root_view,
|
| const base::string16& main_text,
|
| const base::string16& sub_text) {
|
| + base::android::ScopedJavaLocalRef<jobject> java_content_view_core =
|
| + GetJavaContentViewCoreFrom(widget_host);
|
| + if (java_content_view_core.is_null())
|
| + return;
|
| +
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| java_validation_message_bubble_.Reset(
|
| Java_ValidationMessageBubble_createAndShow(
|
| env,
|
| - GetContentViewCoreFrom(widget_host)->GetJavaObject().obj(),
|
| + java_content_view_core.obj(),
|
| anchor_in_root_view.x(),
|
| anchor_in_root_view.y(),
|
| anchor_in_root_view.width(),
|
| @@ -52,10 +60,15 @@ ValidationMessageBubbleAndroid::~ValidationMessageBubbleAndroid() {
|
|
|
| void ValidationMessageBubbleAndroid::SetPositionRelativeToAnchor(
|
| RenderWidgetHost* widget_host, const gfx::Rect& anchor_in_root_view) {
|
| + base::android::ScopedJavaLocalRef<jobject> java_content_view_core =
|
| + GetJavaContentViewCoreFrom(widget_host);
|
| + if (java_content_view_core.is_null())
|
| + return;
|
| +
|
| Java_ValidationMessageBubble_setPositionRelativeToAnchor(
|
| base::android::AttachCurrentThread(),
|
| java_validation_message_bubble_.obj(),
|
| - GetContentViewCoreFrom(widget_host)->GetJavaObject().obj(),
|
| + java_content_view_core.obj(),
|
| anchor_in_root_view.x(),
|
| anchor_in_root_view.y(),
|
| anchor_in_root_view.width(),
|
|
|