| Index: content/browser/renderer_host/render_widget_host_view_android.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
|
| index efe0d820a15ad79b7389aafb41649ac4f1cdd445..28553f5d23710acfe6225a8031ce5c186e5bb463 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc
|
| @@ -431,7 +431,7 @@ void RenderWidgetHostViewAndroid::GetScaledContentBitmap(
|
| result_callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE);
|
| return;
|
| }
|
| - gfx::Size bounds = layer_->bounds();
|
| + gfx::Size bounds = view_.GetLayer()->bounds();
|
| if (src_subrect.IsEmpty())
|
| src_subrect = gfx::Rect(bounds);
|
| DCHECK_LE(src_subrect.width() + src_subrect.x(), bounds.width());
|
| @@ -451,7 +451,7 @@ void RenderWidgetHostViewAndroid::GetScaledContentBitmap(
|
| bool RenderWidgetHostViewAndroid::HasValidFrame() const {
|
| if (!content_view_core_)
|
| return false;
|
| - if (!layer_.get())
|
| + if (!view_.GetLayer())
|
| return false;
|
|
|
| if (texture_size_in_layer_.IsEmpty())
|
| @@ -468,7 +468,7 @@ gfx::Vector2dF RenderWidgetHostViewAndroid::GetLastScrollOffset() const {
|
| }
|
|
|
| gfx::NativeView RenderWidgetHostViewAndroid::GetNativeView() const {
|
| - return content_view_core_;
|
| + return &view_;
|
| }
|
|
|
| gfx::NativeViewAccessible
|
| @@ -548,8 +548,8 @@ void RenderWidgetHostViewAndroid::UnlockCompositingSurface() {
|
| last_frame_info_.reset();
|
| }
|
|
|
| - if (!is_showing_ && layer_.get())
|
| - layer_->SetHideLayerAndSubtree(true);
|
| + if (!is_showing_ && view_.GetLayer())
|
| + view_.GetLayer()->SetHideLayerAndSubtree(true);
|
| }
|
| }
|
|
|
| @@ -904,7 +904,7 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface(
|
| request->set_area(src_subrect_in_pixel);
|
| // Make sure the layer doesn't get deleted until we fulfill the request.
|
| LockCompositingSurface();
|
| - layer_->RequestCopyOfOutput(std::move(request));
|
| + view_.GetLayer()->RequestCopyOfOutput(std::move(request));
|
| }
|
|
|
| void RenderWidgetHostViewAndroid::CopyFromCompositingSurfaceToVideoFrame(
|
| @@ -977,7 +977,7 @@ void RenderWidgetHostViewAndroid::DestroyDelegatedContent() {
|
| surface_factory_->Destroy(surface_id_);
|
| surface_id_ = cc::SurfaceId();
|
| }
|
| - layer_ = NULL;
|
| + view_.SetLayer(nullptr);
|
| }
|
|
|
| void RenderWidgetHostViewAndroid::CheckOutputSurfaceChanged(
|
| @@ -1008,9 +1008,9 @@ void RenderWidgetHostViewAndroid::SubmitCompositorFrame(
|
| surface_factory_->Destroy(surface_id_);
|
| surface_id_ = id_allocator_->GenerateId();
|
| surface_factory_->Create(surface_id_);
|
| - layer_ = CreateSurfaceLayer(surface_id_, texture_size_in_layer_);
|
| + view_.SetLayer(CreateSurfaceLayer(surface_id_, texture_size_in_layer_));
|
|
|
| - DCHECK(layer_);
|
| + DCHECK(view_.GetLayer());
|
|
|
| current_surface_size_ = texture_size_in_layer_;
|
| location_bar_content_translation_ =
|
| @@ -1061,9 +1061,9 @@ void RenderWidgetHostViewAndroid::InternalSwapCompositorFrame(
|
| DestroyDelegatedContent();
|
| } else {
|
| SubmitCompositorFrame(std::move(frame));
|
| - layer_->SetIsDrawable(true);
|
| - layer_->SetContentsOpaque(true);
|
| - layer_->SetBounds(texture_size_in_layer_);
|
| + view_.GetLayer()->SetIsDrawable(true);
|
| + view_.GetLayer()->SetContentsOpaque(true);
|
| + view_.GetLayer()->SetBounds(texture_size_in_layer_);
|
| }
|
|
|
| if (host_->is_hidden())
|
| @@ -1131,8 +1131,8 @@ void RenderWidgetHostViewAndroid::SynchronousFrameMetadata(
|
| }
|
|
|
| void RenderWidgetHostViewAndroid::SetOverlayVideoMode(bool enabled) {
|
| - if (layer_.get())
|
| - layer_->SetContentsOpaque(!enabled);
|
| + if (view_.GetLayer())
|
| + view_.GetLayer()->SetContentsOpaque(!enabled);
|
| }
|
|
|
| bool RenderWidgetHostViewAndroid::SupportsAnimation() const {
|
| @@ -1188,7 +1188,7 @@ RenderWidgetHostViewAndroid::CreateDrawable() {
|
|
|
| return std::unique_ptr<
|
| ui::TouchHandleDrawable>(new CompositedTouchHandleDrawable(
|
| - content_view_core_->GetLayer().get(), content_view_core_->GetDpiScale(),
|
| + content_view_core_->GetLayer(), content_view_core_->GetDpiScale(),
|
| // Use the activity context (instead of the application context) to ensure
|
| // proper handle theming.
|
| content_view_core_->GetContext().obj()));
|
| @@ -1294,8 +1294,8 @@ void RenderWidgetHostViewAndroid::ShowInternal() {
|
| if (!host_ || !host_->is_hidden())
|
| return;
|
|
|
| - if (layer_.get())
|
| - layer_->SetHideLayerAndSubtree(false);
|
| + if (view_.GetLayer())
|
| + view_.GetLayer()->SetHideLayerAndSubtree(false);
|
|
|
| frame_evictor_->SetVisible(true);
|
|
|
| @@ -1325,8 +1325,8 @@ void RenderWidgetHostViewAndroid::HideInternal() {
|
| bool stop_observing_root_window = !is_showing_ && hide_frontbuffer;
|
|
|
| if (hide_frontbuffer) {
|
| - if (layer_.get() && locks_on_frame_count_ == 0)
|
| - layer_->SetHideLayerAndSubtree(true);
|
| + if (view_.GetLayer() && locks_on_frame_count_ == 0)
|
| + view_.GetLayer()->SetHideLayerAndSubtree(true);
|
|
|
| frame_evictor_->SetVisible(false);
|
| }
|
| @@ -1352,21 +1352,21 @@ void RenderWidgetHostViewAndroid::HideInternal() {
|
| void RenderWidgetHostViewAndroid::AttachLayers() {
|
| if (!content_view_core_)
|
| return;
|
| - if (!layer_.get())
|
| + if (!view_.GetLayer())
|
| return;
|
|
|
| - content_view_core_->AttachLayer(layer_);
|
| - layer_->SetHideLayerAndSubtree(!is_showing_);
|
| + content_view_core_->AttachLayer(view_.GetLayer());
|
| + view_.GetLayer()->SetHideLayerAndSubtree(!is_showing_);
|
| }
|
|
|
| void RenderWidgetHostViewAndroid::RemoveLayers() {
|
| if (!content_view_core_)
|
| return;
|
|
|
| - if (!layer_.get())
|
| + if (!view_.GetLayer())
|
| return;
|
|
|
| - content_view_core_->RemoveLayer(layer_);
|
| + content_view_core_->RemoveLayer(view_.GetLayer());
|
| }
|
|
|
| void RenderWidgetHostViewAndroid::RequestVSyncUpdate(uint32_t requests) {
|
| @@ -1440,7 +1440,7 @@ bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) {
|
| bool needs_animate = false;
|
| if (overscroll_controller_) {
|
| needs_animate |= overscroll_controller_->Animate(
|
| - frame_time, content_view_core_->GetLayer().get());
|
| + frame_time, content_view_core_->GetLayer());
|
| }
|
| if (selection_controller_)
|
| needs_animate |= selection_controller_->Animate(frame_time);
|
| @@ -1455,7 +1455,7 @@ void RenderWidgetHostViewAndroid::RequestDisallowInterceptTouchEvent() {
|
| void RenderWidgetHostViewAndroid::EvictDelegatedFrame() {
|
| DCHECK_EQ(locks_on_frame_count_, 0u);
|
| frame_evictor_->DiscardedFrame();
|
| - if (layer_.get())
|
| + if (view_.GetLayer())
|
| DestroyDelegatedContent();
|
| }
|
|
|
| @@ -1666,7 +1666,7 @@ void RenderWidgetHostViewAndroid::DidOverscroll(
|
| if (sync_compositor_)
|
| sync_compositor_->DidOverscroll(params);
|
|
|
| - if (!content_view_core_ || !layer_.get() || !is_showing_)
|
| + if (!content_view_core_ || !view_.GetLayer() || !is_showing_)
|
| return;
|
|
|
| if (overscroll_controller_)
|
| @@ -1697,14 +1697,17 @@ void RenderWidgetHostViewAndroid::SetContentViewCore(
|
| selection_controller_.reset();
|
| ReleaseLocksOnSurface();
|
| resize = true;
|
| - if (content_view_core_)
|
| + if (content_view_core_) {
|
| content_view_core_->RemoveObserver(this);
|
| - if (content_view_core)
|
| + content_view_core_->GetViewAndroid()->RemoveChild(&view_);
|
| + }
|
| + if (content_view_core) {
|
| content_view_core->AddObserver(this);
|
| + content_view_core->GetViewAndroid()->AddChild(&view_);
|
| + }
|
| + content_view_core_ = content_view_core;
|
| }
|
|
|
| - content_view_core_ = content_view_core;
|
| -
|
| BrowserAccessibilityManager* manager = NULL;
|
| if (host_)
|
| manager = host_->GetRootBrowserAccessibilityManager();
|
| @@ -1859,7 +1862,7 @@ void RenderWidgetHostViewAndroid::OnActivityStarted() {
|
|
|
| void RenderWidgetHostViewAndroid::OnLostResources() {
|
| ReleaseLocksOnSurface();
|
| - if (layer_.get())
|
| + if (view_.GetLayer())
|
| DestroyDelegatedContent();
|
| DCHECK(ack_callbacks_.empty());
|
| }
|
|
|