| Index: android_webview/browser/hardware_renderer.cc
|
| diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc
|
| index acac292f4be6b8311fa1c56334dccd5710442810..c75ec943e1c58da6c7c687e5a39c440c9872f481 100644
|
| --- a/android_webview/browser/hardware_renderer.cc
|
| +++ b/android_webview/browser/hardware_renderer.cc
|
| @@ -110,7 +110,7 @@ void HardwareRenderer::CommitFrame() {
|
| last_committed_output_surface_id_ = child_frame->output_surface_id;
|
| ReturnResourcesInChildFrame();
|
| child_frame_ = std::move(child_frame);
|
| - DCHECK(child_frame_->frame.get());
|
| + DCHECK(child_frame_->frame);
|
| DCHECK(!child_frame_->frame->gl_frame_data);
|
| }
|
|
|
| @@ -131,7 +131,7 @@ void HardwareRenderer::DrawGL(AwDrawGLInfo* draw_info,
|
| // during "kModeSync" stage (which does not allow GL) might result in extra
|
| // kModeProcess. Instead, submit the frame in "kModeDraw" stage to avoid
|
| // unnecessary kModeProcess.
|
| - if (child_frame_.get() && child_frame_->frame.get()) {
|
| + if (child_frame_.get() && child_frame_->frame) {
|
| if (!compositor_id_.Equals(child_frame_->compositor_id) ||
|
| last_submitted_output_surface_id_ != child_frame_->output_surface_id) {
|
| if (!root_id_.is_null())
|
| @@ -150,8 +150,9 @@ void HardwareRenderer::DrawGL(AwDrawGLInfo* draw_info,
|
| new cc::SurfaceFactory(surface_manager_.get(), this));
|
| }
|
|
|
| - std::unique_ptr<cc::CompositorFrame> child_compositor_frame =
|
| - std::move(child_frame_->frame);
|
| + std::unique_ptr<cc::CompositorFrame> child_compositor_frame(
|
| + new cc::CompositorFrame);
|
| + *child_compositor_frame = std::move(*child_frame_->frame);
|
|
|
| // On Android we put our browser layers in physical pixels and set our
|
| // browser CC device_scale_factor to 1, so suppress the transform between
|
| @@ -218,7 +219,7 @@ void HardwareRenderer::DrawGL(AwDrawGLInfo* draw_info,
|
| std::unique_ptr<cc::DelegatedFrameData> delegated_frame(
|
| new cc::DelegatedFrameData);
|
| delegated_frame->render_pass_list.push_back(std::move(render_pass));
|
| - std::unique_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame);
|
| + std::unique_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame());
|
| frame->delegated_frame_data = std::move(delegated_frame);
|
|
|
| if (root_id_.is_null()) {
|
| @@ -253,7 +254,7 @@ void HardwareRenderer::SetBackingFrameBufferObject(
|
| }
|
|
|
| void HardwareRenderer::ReturnResourcesInChildFrame() {
|
| - if (child_frame_.get() && child_frame_->frame.get()) {
|
| + if (child_frame_.get() && child_frame_->frame) {
|
| cc::ReturnedResourceArray resources_to_return;
|
| cc::TransferableResource::ReturnResources(
|
| child_frame_->frame->delegated_frame_data->resource_list,
|
|
|