| 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 fe64d9240c1ca08a6ab3fbb4bb6cd3e3cea82514..821e42447e9109e376b2b00bae9bd5619e943dcf 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc
|
| @@ -124,13 +124,6 @@ RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid(
|
|
|
| overscroll_effect_enabled_ = !CommandLine::ForCurrentProcess()->
|
| HasSwitch(switches::kDisableOverscrollEdgeEffect);
|
| - // Don't block the main thread with effect resource loading.
|
| - // Actual effect creation is deferred until an overscroll event is received.
|
| - if (overscroll_effect_enabled_) {
|
| - base::WorkerPool::PostTask(FROM_HERE,
|
| - base::Bind(&OverscrollGlow::EnsureResources),
|
| - true);
|
| - }
|
|
|
| host_->SetView(this);
|
| SetContentViewCore(content_view_core);
|
| @@ -865,7 +858,7 @@ void RenderWidgetHostViewAndroid::RemoveLayers() {
|
| return;
|
|
|
| if (overscroll_effect_)
|
| - content_view_core_->RemoveLayer(overscroll_effect_->root_layer());
|
| + overscroll_effect_->RemoveLayer();
|
|
|
| content_view_core_->RemoveLayer(layer_);
|
| }
|
| @@ -876,7 +869,7 @@ bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) {
|
|
|
| bool overscroll_running = overscroll_effect_->Animate(frame_time);
|
| if (!overscroll_running)
|
| - content_view_core_->RemoveLayer(overscroll_effect_->root_layer());
|
| + overscroll_effect_->RemoveLayer();
|
|
|
| return overscroll_running;
|
| }
|
| @@ -911,11 +904,11 @@ void RenderWidgetHostViewAndroid::ScheduleAnimationIfNecessary() {
|
| return;
|
|
|
| if (overscroll_effect_->NeedsAnimate() && are_layers_attached_) {
|
| - if (!overscroll_effect_->root_layer()->parent())
|
| - content_view_core_->AttachLayer(overscroll_effect_->root_layer());
|
| + if (!overscroll_effect_->IsAttached())
|
| + overscroll_effect_->AttachLayerTo(content_view_core_->GetLayer());
|
| content_view_core_->SetNeedsAnimate();
|
| } else {
|
| - content_view_core_->RemoveLayer(overscroll_effect_->root_layer());
|
| + overscroll_effect_->RemoveLayer();
|
| }
|
| }
|
|
|
| @@ -1262,8 +1255,22 @@ void RenderWidgetHostViewAndroid::HasTouchEventHandlers(
|
| content_view_core_->HasTouchEventHandlers(need_touch_events);
|
| }
|
|
|
| -void RenderWidgetHostViewAndroid::OnCompositingDidCommit() {
|
| +void RenderWidgetHostViewAndroid::OnCompositingDidCommit(
|
| + Compositor* compositor) {
|
| RunAckCallbacks();
|
| + if (overscroll_effect_) {
|
| + cc::UIResourceId edge_id = compositor->GetOverscrollEdgeId();
|
| + cc::UIResourceId glow_id = compositor->GetOverscrollGlowId();
|
| + if (edge_id && glow_id) {
|
| + bool updated_resources = overscroll_effect_->SetLayerResources(
|
| + edge_id,
|
| + glow_id,
|
| + compositor->GetUIResourceSize(edge_id),
|
| + compositor->GetUIResourceSize(glow_id));
|
| + if (updated_resources)
|
| + ScheduleAnimationIfNecessary();
|
| + }
|
| + }
|
| }
|
|
|
| void RenderWidgetHostViewAndroid::OnDetachCompositor() {
|
|
|