Commit de696521 authored by Ria Jiang's avatar Ria Jiang Committed by Commit Bot

Early out in RenderWidgetHostViewMac get-surface-id related functions.

We can ask RenderWidgetHostViewMac for its FrameSinkId/SurfaceId when
the BrowserCompositorMac is already gone there; early out in those
cases and return invalid FrameSinkId/SurfaceId. When GetCurrentSurfaceId
returns invalid SurfaceId, we are going to send the event to the parent
root_view of the now-invalid view [1].

[1] https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_widget_host_input_event_router.cc?type=cs&l=330

Bug: 828304
Change-Id: I009e51e9c1cfd31dad8efd4a7b504ba63dd49b18
Reviewed-on: https://chromium-review.googlesource.com/996304Reviewed-by: default avatarccameron <ccameron@chromium.org>
Commit-Queue: Ria Jiang <riajiang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548314}
parent 549b1ef0
...@@ -1012,10 +1012,14 @@ RenderWidgetHostViewMac::CreateSyntheticGestureTarget() { ...@@ -1012,10 +1012,14 @@ RenderWidgetHostViewMac::CreateSyntheticGestureTarget() {
} }
viz::LocalSurfaceId RenderWidgetHostViewMac::GetLocalSurfaceId() const { viz::LocalSurfaceId RenderWidgetHostViewMac::GetLocalSurfaceId() const {
if (!browser_compositor_)
return viz::LocalSurfaceId();
return browser_compositor_->GetRendererLocalSurfaceId(); return browser_compositor_->GetRendererLocalSurfaceId();
} }
viz::FrameSinkId RenderWidgetHostViewMac::GetFrameSinkId() { viz::FrameSinkId RenderWidgetHostViewMac::GetFrameSinkId() {
if (!browser_compositor_)
return viz::FrameSinkId();
return browser_compositor_->GetDelegatedFrameHost()->frame_sink_id(); return browser_compositor_->GetDelegatedFrameHost()->frame_sink_id();
} }
...@@ -1073,10 +1077,14 @@ bool RenderWidgetHostViewMac::TransformPointToCoordSpaceForView( ...@@ -1073,10 +1077,14 @@ bool RenderWidgetHostViewMac::TransformPointToCoordSpaceForView(
} }
viz::FrameSinkId RenderWidgetHostViewMac::GetRootFrameSinkId() { viz::FrameSinkId RenderWidgetHostViewMac::GetRootFrameSinkId() {
if (!browser_compositor_)
return viz::FrameSinkId();
return browser_compositor_->GetRootFrameSinkId(); return browser_compositor_->GetRootFrameSinkId();
} }
viz::SurfaceId RenderWidgetHostViewMac::GetCurrentSurfaceId() const { viz::SurfaceId RenderWidgetHostViewMac::GetCurrentSurfaceId() const {
if (!browser_compositor_)
return viz::SurfaceId();
return browser_compositor_->GetDelegatedFrameHost()->GetCurrentSurfaceId(); return browser_compositor_->GetDelegatedFrameHost()->GetCurrentSurfaceId();
} }
......
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