Convert AwViewMsg_ResetScrollAndScaleState to Mojo
This CL migrates AwViewMsg_ResetScrollAndScaleState to
LocalMainFrame interface.
Bug: 1157122
Change-Id: I353739146052f471d2f45bbfd7b0d579cd2f0772
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2583588
Commit-Queue: Gyuyoung Kim <[email protected]>
Reviewed-by: Dave Tapuska <[email protected]>
Reviewed-by: Bo <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Cr-Commit-Position: refs/heads/master@{#836391}
diff --git a/android_webview/browser/renderer_host/aw_render_view_host_ext.cc b/android_webview/browser/renderer_host/aw_render_view_host_ext.cc
index ed883fad..a4b36a8 100644
--- a/android_webview/browser/renderer_host/aw_render_view_host_ext.cc
+++ b/android_webview/browser/renderer_host/aw_render_view_host_ext.cc
@@ -82,8 +82,8 @@
void AwRenderViewHostExt::ResetScrollAndScaleState() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- web_contents()->GetMainFrame()->Send(new AwViewMsg_ResetScrollAndScaleState(
- web_contents()->GetMainFrame()->GetRoutingID()));
+ if (local_main_frame_remote_)
+ local_main_frame_remote_->ResetScrollAndScaleState();
}
void AwRenderViewHostExt::SetInitialPageScale(double page_scale_factor) {
diff --git a/android_webview/common/mojom/frame.mojom b/android_webview/common/mojom/frame.mojom
index 5b0568f..f1bb8ba 100644
--- a/android_webview/common/mojom/frame.mojom
+++ b/android_webview/common/mojom/frame.mojom
@@ -95,6 +95,11 @@
// Requests for the renderer to determine if the document contains any image
// elements.
DocumentHasImage() => (bool has_images);
+
+ // Resets Blink WebView scrolling and scale state. We need to call this
+ // method whenever we want to guarantee that page's scale will be recalculated
+ // by Blink.
+ ResetScrollAndScaleState();
};
// Similar to blink::mojom::FrameHost. Implemented in Browser, this
diff --git a/android_webview/common/render_view_messages.h b/android_webview/common/render_view_messages.h
index 00d0949..20c2f625 100644
--- a/android_webview/common/render_view_messages.h
+++ b/android_webview/common/render_view_messages.h
@@ -20,11 +20,6 @@
// RenderView messages
// These are messages sent from the browser to the renderer process.
-// Resets WebKit WebView scrolling and scale state. We need to send this
-// message whenever we want to guarantee that page's scale will be
-// recalculated by WebKit.
-IPC_MESSAGE_ROUTED0(AwViewMsg_ResetScrollAndScaleState)
-
// Sets the initial page scale. This overrides initial scale set by
// the meta viewport tag.
IPC_MESSAGE_ROUTED1(AwViewMsg_SetInitialPageScale,
diff --git a/android_webview/renderer/aw_render_frame_ext.cc b/android_webview/renderer/aw_render_frame_ext.cc
index 8d5401ed..80ae8f3 100644
--- a/android_webview/renderer/aw_render_frame_ext.cc
+++ b/android_webview/renderer/aw_render_frame_ext.cc
@@ -240,8 +240,6 @@
bool AwRenderFrameExt::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(AwRenderFrameExt, message)
- IPC_MESSAGE_HANDLER(AwViewMsg_ResetScrollAndScaleState,
- OnResetScrollAndScaleState)
IPC_MESSAGE_HANDLER(AwViewMsg_SetInitialPageScale, OnSetInitialPageScale)
IPC_MESSAGE_HANDLER(AwViewMsg_SmoothScroll, OnSmoothScroll)
IPC_MESSAGE_UNHANDLED(handled = false)
@@ -300,14 +298,6 @@
GetFrameHost()->UpdateHitTestData(std::move(data));
}
-void AwRenderFrameExt::OnResetScrollAndScaleState() {
- blink::WebView* webview = GetWebView();
- if (!webview)
- return;
-
- webview->ResetScrollAndScaleState();
-}
-
void AwRenderFrameExt::OnSetInitialPageScale(double page_scale_factor) {
blink::WebView* webview = GetWebView();
if (!webview)
@@ -362,6 +352,14 @@
webview->SmoothScroll(target_x, target_y, duration);
}
+void AwRenderFrameExt::ResetScrollAndScaleState() {
+ blink::WebView* webview = GetWebView();
+ if (!webview)
+ return;
+
+ webview->ResetScrollAndScaleState();
+}
+
blink::WebView* AwRenderFrameExt::GetWebView() {
if (!render_frame() || !render_frame()->GetRenderView() ||
!render_frame()->GetRenderView()->GetWebView())
diff --git a/android_webview/renderer/aw_render_frame_ext.h b/android_webview/renderer/aw_render_frame_ext.h
index 3b1e2f8..6b7cd6f 100644
--- a/android_webview/renderer/aw_render_frame_ext.h
+++ b/android_webview/renderer/aw_render_frame_ext.h
@@ -48,8 +48,6 @@
void FocusedElementChanged(const blink::WebElement& element) override;
void OnDestruct() override;
- void OnResetScrollAndScaleState();
-
void OnSetInitialPageScale(double page_scale_factor);
void OnSmoothScroll(int target_x, int target_y, base::TimeDelta duration);
@@ -60,6 +58,7 @@
void HitTest(const gfx::PointF& touch_center,
const gfx::SizeF& touch_area) override;
void DocumentHasImage(DocumentHasImageCallback callback) override;
+ void ResetScrollAndScaleState() override;
void BindLocalMainFrame(
mojo::PendingAssociatedReceiver<mojom::LocalMainFrame> pending_receiver);