Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(532)

Unified Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 82553015: Switch the android overscroll glow to use UIResources. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor naming changes Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698