Commit 0f5bfb94 authored by Albert Chaulk's avatar Albert Chaulk Committed by Commit Bot

Force a commit when the webview's RenderFrameHost changes

Changing RFH can change the surface the WebContents draws into,
so we need to update the current draw quad being used. Since we
can't guarantee that we will get a timely wayland commit, force
one immediately

Bug: 143651420
Test: browsing webpages
Change-Id: I70ebe9b09551c0adbede1eebe245c899572a0984
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1899751Reviewed-by: default avatarDaniel Nicoara <dnicoara@chromium.org>
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#713195}
parent 860b2619
...@@ -394,6 +394,15 @@ void WebContentController::RenderFrameDeleted( ...@@ -394,6 +394,15 @@ void WebContentController::RenderFrameDeleted(
current_render_frame_set_.erase(render_frame_host); current_render_frame_set_.erase(render_frame_host);
} }
void WebContentController::RenderFrameHostChanged(
content::RenderFrameHost* old_host,
content::RenderFrameHost* new_host) {
// The surface ID may have changed, so trigger a new commit to re-issue the
// draw quad.
if (surface_)
surface_->Commit();
}
void WebContentController::OnJsClientInstanceRegistered( void WebContentController::OnJsClientInstanceRegistered(
int process_id, int process_id,
int routing_id, int routing_id,
......
...@@ -89,6 +89,8 @@ class WebContentController : public exo::SurfaceObserver, ...@@ -89,6 +89,8 @@ class WebContentController : public exo::SurfaceObserver,
// content::WebContentsObserver // content::WebContentsObserver
void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override; void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override;
void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override; void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override;
void RenderFrameHostChanged(content::RenderFrameHost* old_host,
content::RenderFrameHost* new_host) override;
// JsClientInstance::Observer // JsClientInstance::Observer
void OnJsClientInstanceRegistered(int process_id, void OnJsClientInstanceRegistered(int process_id,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment