| Index: android_webview/browser/browser_view_renderer.cc
|
| diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc
|
| index ba3defa6fa867c16a79348e24e3f270ea2f22f0a..1f0d849e1e5b60719b9b133bb0cca61acf518678 100644
|
| --- a/android_webview/browser/browser_view_renderer.cc
|
| +++ b/android_webview/browser/browser_view_renderer.cc
|
| @@ -246,29 +246,35 @@ bool BrowserViewRenderer::OnDrawHardware() {
|
| return current_compositor_frame_consumer_->HasFrameOnUI();
|
| }
|
|
|
| - OnDrawHardwareProcessFrame(std::move(frame));
|
| + std::unique_ptr<ChildFrame> child_frame = base::MakeUnique<ChildFrame>(
|
| + frame.compositor_frame_sink_id, std::move(frame.frame), compositor_id_,
|
| + viewport_rect_for_tile_priority.IsEmpty(), transform_for_tile_priority,
|
| + offscreen_pre_raster_, external_draw_constraints_.is_layer);
|
| +
|
| + ReturnUnusedResource(
|
| + current_compositor_frame_consumer_->PassUncommittedFrameOnUI());
|
| + current_compositor_frame_consumer_->SetFrameOnUI(std::move(child_frame),
|
| + nullptr);
|
| +
|
| return true;
|
| }
|
|
|
| -void BrowserViewRenderer::OnDrawHardwareProcessFrame(
|
| - content::SynchronousCompositor::Frame frame) {
|
| - TRACE_EVENT0("android_webview",
|
| - "BrowserViewRenderer::OnDrawHardwareProcessFrame");
|
| - if (!frame.frame)
|
| - return;
|
| -
|
| +void BrowserViewRenderer::OnDrawHardwareProcessFrameFuture(
|
| + const scoped_refptr<content::SynchronousCompositor::FrameFuture>&
|
| + frame_future) {
|
| gfx::Transform transform_for_tile_priority =
|
| external_draw_constraints_.transform;
|
| gfx::Rect viewport_rect_for_tile_priority =
|
| ComputeViewportRectForTilePriority();
|
| - std::unique_ptr<ChildFrame> child_frame = base::MakeUnique<ChildFrame>(
|
| - frame.compositor_frame_sink_id, std::move(frame.frame), compositor_id_,
|
| - viewport_rect_for_tile_priority.IsEmpty(), transform_for_tile_priority,
|
| - offscreen_pre_raster_, external_draw_constraints_.is_layer);
|
|
|
| ReturnUnusedResource(
|
| current_compositor_frame_consumer_->PassUncommittedFrameOnUI());
|
| - current_compositor_frame_consumer_->SetFrameOnUI(std::move(child_frame));
|
| + current_compositor_frame_consumer_->SetFrameOnUI(
|
| + base::MakeUnique<ChildFrame>(
|
| + 0, nullptr, compositor_id_, viewport_rect_for_tile_priority.IsEmpty(),
|
| + transform_for_tile_priority, offscreen_pre_raster_,
|
| + external_draw_constraints_.is_layer),
|
| + frame_future);
|
| }
|
|
|
| gfx::Rect BrowserViewRenderer::ComputeViewportRectForTilePriority() {
|
|
|