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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 511253003: Made Blink aware of top controls offset (Chromium-side) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months 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: cc/trees/layer_tree_host_impl.cc
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index e8d9142d8e8f160e054b87ca530c4f21ac75c7fa..65d12a8fb67243ab496ee7d43ac3021ebc1c94d4 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -249,7 +249,6 @@ LayerTreeHostImpl::LayerTreeHostImpl(
zero_budget_(false),
device_scale_factor_(1.f),
overhang_ui_resource_id_(0),
- top_controls_layout_height_(0.f),
resourceless_software_draw_(false),
begin_impl_frame_interval_(BeginFrameArgs::DefaultInterval()),
animation_registrar_(AnimationRegistrar::Create()),
@@ -1678,11 +1677,10 @@ void LayerTreeHostImpl::UpdateInnerViewportContainerSize() {
if (!container_layer)
return;
- if (top_controls_manager_)
+ if (top_controls_manager_) {
container_layer->SetBoundsDelta(
- gfx::Vector2dF(0,
- top_controls_layout_height_ -
- top_controls_manager_->content_top_offset()));
+ gfx::Vector2dF(0, -active_tree_->top_controls_delta()));
+ }
}
void LayerTreeHostImpl::DidLoseOutputSurface() {
@@ -1791,6 +1789,11 @@ void LayerTreeHostImpl::ActivateSyncTree() {
active_tree_->SetRootLayerScrollOffsetDelegate(
root_layer_scroll_offset_delegate_);
+
+ top_controls_manager_->SetControlsTopOffset(
+ active_tree_->total_top_controls_content_offset()
+ - top_controls_manager_->top_controls_height());
+
UpdateInnerViewportContainerSize();
} else {
active_tree_->ProcessUIResourceRequestQueue();
@@ -2146,16 +2149,6 @@ void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) {
active_tree_->set_needs_update_draw_properties();
}
-void LayerTreeHostImpl::SetTopControlsLayoutHeight(
- float top_controls_layout_height) {
- if (top_controls_layout_height_ == top_controls_layout_height)
- return;
- top_controls_layout_height_ = top_controls_layout_height;
-
- UpdateInnerViewportContainerSize();
- SetFullRootLayerDamage();
-}
-
void LayerTreeHostImpl::SetOverhangUIResource(
UIResourceId overhang_ui_resource_id,
const gfx::Size& overhang_ui_resource_size) {
@@ -2201,6 +2194,10 @@ const gfx::Transform& LayerTreeHostImpl::DrawTransform() const {
}
void LayerTreeHostImpl::DidChangeTopControlsPosition() {
+ active_tree_->set_top_controls_delta(
aelias_OOO_until_Jul13 2014/08/29 04:37:01 We end up holding a field with redundant informati
bokan 2014/08/29 18:02:14 sgtm
bokan 2014/09/02 18:57:16 Done.
+ top_controls_manager_->content_top_offset() -
+ active_tree_->top_controls_content_offset());
+
UpdateInnerViewportContainerSize();
SetNeedsRedraw();
SetNeedsAnimate();
@@ -2908,6 +2905,11 @@ scoped_ptr<ScrollAndScaleSet> LayerTreeHostImpl::ProcessScrollDeltas() {
scroll_info->page_scale_delta = active_tree_->page_scale_delta();
active_tree_->set_sent_page_scale_delta(scroll_info->page_scale_delta);
scroll_info->swap_promises.swap(swap_promises_for_main_thread_scroll_update_);
+ scroll_info->top_controls_content_offset =
+ active_tree()->total_top_controls_content_offset();
+ active_tree_->set_sent_top_controls_delta(
+ scroll_info->top_controls_content_offset -
+ active_tree()->top_controls_content_offset());
return scroll_info.Pass();
}

Powered by Google App Engine
This is Rietveld 408576698