Convert AwViewMsg_DocumentHasImages[Response] to Mojo message
This CL converts AwViewMsg_DocumentHasImages and
AwViewMsg_DocumentHasImagesResponse to android_webview's
LocalMainFrame interface. The response IPC message was handled
by reply callback.
Bug: 1146492
Change-Id: I03248da153c230e7850d4728bdfd844cd54ca6b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2563015
Commit-Queue: Gyuyoung Kim <[email protected]>
Reviewed-by: Bo <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Reviewed-by: Dave Tapuska <[email protected]>
Cr-Commit-Position: refs/heads/master@{#833107}
diff --git a/android_webview/renderer/aw_render_frame_ext.cc b/android_webview/renderer/aw_render_frame_ext.cc
index fc7de82..14ab5a5 100644
--- a/android_webview/renderer/aw_render_frame_ext.cc
+++ b/android_webview/renderer/aw_render_frame_ext.cc
@@ -228,7 +228,6 @@
bool AwRenderFrameExt::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(AwRenderFrameExt, message)
- IPC_MESSAGE_HANDLER(AwViewMsg_DocumentHasImages, OnDocumentHasImagesRequest)
IPC_MESSAGE_HANDLER(AwViewMsg_SetTextZoomFactor, OnSetTextZoomFactor)
IPC_MESSAGE_HANDLER(AwViewMsg_ResetScrollAndScaleState,
OnResetScrollAndScaleState)
@@ -239,20 +238,6 @@
return handled;
}
-void AwRenderFrameExt::OnDocumentHasImagesRequest(uint32_t id) {
- blink::WebLocalFrame* frame = render_frame()->GetWebFrame();
-
- // AwViewMsg_DocumentHasImages should only be sent to the main frame.
- DCHECK(frame);
- DCHECK(!frame->Parent());
-
- const blink::WebElement child_img = GetImgChild(frame->GetDocument());
- bool has_images = !child_img.IsNull();
-
- Send(new AwViewHostMsg_DocumentHasImagesResponse(routing_id(), id,
- has_images));
-}
-
void AwRenderFrameExt::FocusedElementChanged(const blink::WebElement& element) {
if (element.IsNull() || !render_frame() || !render_frame()->GetRenderView())
return;
@@ -341,6 +326,19 @@
webview->SetBaseBackgroundColor(c);
}
+void AwRenderFrameExt::DocumentHasImage(DocumentHasImageCallback callback) {
+ blink::WebLocalFrame* frame = render_frame()->GetWebFrame();
+
+ // DocumentHasImages Mojo message should only be sent to the main frame.
+ DCHECK(frame);
+ DCHECK(!frame->Parent());
+
+ const blink::WebElement child_img = GetImgChild(frame->GetDocument());
+ bool has_images = !child_img.IsNull();
+
+ std::move(callback).Run(has_images);
+}
+
void AwRenderFrameExt::OnSmoothScroll(int target_x,
int target_y,
base::TimeDelta duration) {
diff --git a/android_webview/renderer/aw_render_frame_ext.h b/android_webview/renderer/aw_render_frame_ext.h
index 2f83e47..92e8c00 100644
--- a/android_webview/renderer/aw_render_frame_ext.h
+++ b/android_webview/renderer/aw_render_frame_ext.h
@@ -47,8 +47,6 @@
void FocusedElementChanged(const blink::WebElement& element) override;
void OnDestruct() override;
- void OnDocumentHasImagesRequest(uint32_t id);
-
void OnSetTextZoomFactor(float zoom_factor);
void OnResetScrollAndScaleState();
@@ -61,6 +59,7 @@
void SetBackgroundColor(SkColor c) override;
void HitTest(const gfx::PointF& touch_center,
const gfx::SizeF& touch_area) override;
+ void DocumentHasImage(DocumentHasImageCallback callback) override;
void BindLocalMainFrame(
mojo::PendingAssociatedReceiver<mojom::LocalMainFrame> pending_receiver);