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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 565673003: Properly initialize top controls content offset on LayerTreeHost. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed up unit tests Created 6 years, 3 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 unified diff | Download patch
« no previous file with comments | « cc/trees/layer_tree_host.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 shared_bitmap_manager_(manager), 266 shared_bitmap_manager_(manager),
267 id_(id), 267 id_(id),
268 transfer_buffer_memory_limit_(0u) { 268 transfer_buffer_memory_limit_(0u) {
269 DCHECK(proxy_->IsImplThread()); 269 DCHECK(proxy_->IsImplThread());
270 DidVisibilityChange(this, visible_); 270 DidVisibilityChange(this, visible_);
271 animation_registrar_->set_supports_scroll_animations( 271 animation_registrar_->set_supports_scroll_animations(
272 proxy_->SupportsImplScrolling()); 272 proxy_->SupportsImplScrolling());
273 273
274 SetDebugState(settings.initial_debug_state); 274 SetDebugState(settings.initial_debug_state);
275 275
276 // LTHI always has an active tree.
277 active_tree_ = LayerTreeImpl::create(this);
278 TRACE_EVENT_OBJECT_CREATED_WITH_ID(
279 TRACE_DISABLED_BY_DEFAULT("cc.debug"), "cc::LayerTreeHostImpl", id_);
280
276 if (settings.calculate_top_controls_position) { 281 if (settings.calculate_top_controls_position) {
277 top_controls_manager_ = 282 top_controls_manager_ =
278 TopControlsManager::Create(this, 283 TopControlsManager::Create(this,
279 settings.top_controls_height, 284 settings.top_controls_height,
280 settings.top_controls_show_threshold, 285 settings.top_controls_show_threshold,
281 settings.top_controls_hide_threshold); 286 settings.top_controls_hide_threshold);
282 } 287 }
283
284 SetDebugState(settings.initial_debug_state);
285
286 // LTHI always has an active tree.
287 active_tree_ = LayerTreeImpl::create(this);
288 TRACE_EVENT_OBJECT_CREATED_WITH_ID(
289 TRACE_DISABLED_BY_DEFAULT("cc.debug"), "cc::LayerTreeHostImpl", id_);
290 } 288 }
291 289
292 LayerTreeHostImpl::~LayerTreeHostImpl() { 290 LayerTreeHostImpl::~LayerTreeHostImpl() {
293 DCHECK(proxy_->IsImplThread()); 291 DCHECK(proxy_->IsImplThread());
294 TRACE_EVENT0("cc", "LayerTreeHostImpl::~LayerTreeHostImpl()"); 292 TRACE_EVENT0("cc", "LayerTreeHostImpl::~LayerTreeHostImpl()");
295 TRACE_EVENT_OBJECT_DELETED_WITH_ID( 293 TRACE_EVENT_OBJECT_DELETED_WITH_ID(
296 TRACE_DISABLED_BY_DEFAULT("cc.debug"), "cc::LayerTreeHostImpl", id_); 294 TRACE_DISABLED_BY_DEFAULT("cc.debug"), "cc::LayerTreeHostImpl", id_);
297 295
298 if (input_handler_client_) { 296 if (input_handler_client_) {
299 input_handler_client_->WillShutdown(); 297 input_handler_client_->WillShutdown();
(...skipping 1387 matching lines...) Expand 10 before | Expand all | Expand 10 after
1687 } 1685 }
1688 1686
1689 void LayerTreeHostImpl::UpdateInnerViewportContainerSize() { 1687 void LayerTreeHostImpl::UpdateInnerViewportContainerSize() {
1690 LayerImpl* container_layer = active_tree_->InnerViewportContainerLayer(); 1688 LayerImpl* container_layer = active_tree_->InnerViewportContainerLayer();
1691 if (!container_layer) 1689 if (!container_layer)
1692 return; 1690 return;
1693 1691
1694 if (top_controls_manager_) { 1692 if (top_controls_manager_) {
1695 container_layer->SetBoundsDelta( 1693 container_layer->SetBoundsDelta(
1696 gfx::Vector2dF(0, active_tree_->top_controls_layout_height() - 1694 gfx::Vector2dF(0, active_tree_->top_controls_layout_height() -
1697 active_tree_->total_top_controls_top_offset() - 1695 active_tree_->total_top_controls_content_offset()));
1698 top_controls_manager_->controls_height()));
1699 } 1696 }
1700 } 1697 }
1701 1698
1702 void LayerTreeHostImpl::SetTopControlsLayoutHeight(float height) { 1699 void LayerTreeHostImpl::SetTopControlsLayoutHeight(float height) {
1703 if (active_tree_->top_controls_layout_height() == height) 1700 if (active_tree_->top_controls_layout_height() == height)
1704 return; 1701 return;
1705 1702
1706 active_tree_->set_top_controls_layout_height(height); 1703 active_tree_->set_top_controls_layout_height(height);
1707 UpdateInnerViewportContainerSize(); 1704 UpdateInnerViewportContainerSize();
1708 SetFullRootLayerDamage(); 1705 SetFullRootLayerDamage();
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1814 // tree, rename the pending tree the recycle tree so we can reuse it on the 1811 // tree, rename the pending tree the recycle tree so we can reuse it on the
1815 // next sync. 1812 // next sync.
1816 DCHECK(!recycle_tree_); 1813 DCHECK(!recycle_tree_);
1817 pending_tree_.swap(recycle_tree_); 1814 pending_tree_.swap(recycle_tree_);
1818 1815
1819 active_tree_->SetRootLayerScrollOffsetDelegate( 1816 active_tree_->SetRootLayerScrollOffsetDelegate(
1820 root_layer_scroll_offset_delegate_); 1817 root_layer_scroll_offset_delegate_);
1821 1818
1822 if (top_controls_manager_) { 1819 if (top_controls_manager_) {
1823 top_controls_manager_->SetControlsTopOffset( 1820 top_controls_manager_->SetControlsTopOffset(
1824 active_tree_->total_top_controls_top_offset()); 1821 active_tree_->total_top_controls_content_offset() -
1822 top_controls_manager_->top_controls_height());
1825 } 1823 }
1826 1824
1827 UpdateInnerViewportContainerSize(); 1825 UpdateInnerViewportContainerSize();
1828 } else { 1826 } else {
1829 active_tree_->ProcessUIResourceRequestQueue(); 1827 active_tree_->ProcessUIResourceRequestQueue();
1830 } 1828 }
1831 1829
1832 active_tree_->DidBecomeActive(); 1830 active_tree_->DidBecomeActive();
1833 ActivateAnimations(); 1831 ActivateAnimations();
1834 if (settings_.impl_side_painting) 1832 if (settings_.impl_side_painting)
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
2223 2221
2224 void LayerTreeHostImpl::DidChangeTopControlsPosition() { 2222 void LayerTreeHostImpl::DidChangeTopControlsPosition() {
2225 UpdateInnerViewportContainerSize(); 2223 UpdateInnerViewportContainerSize();
2226 SetNeedsRedraw(); 2224 SetNeedsRedraw();
2227 SetNeedsAnimate(); 2225 SetNeedsAnimate();
2228 active_tree_->set_needs_update_draw_properties(); 2226 active_tree_->set_needs_update_draw_properties();
2229 SetFullRootLayerDamage(); 2227 SetFullRootLayerDamage();
2230 } 2228 }
2231 2229
2232 void LayerTreeHostImpl::SetControlsTopOffset(float offset) { 2230 void LayerTreeHostImpl::SetControlsTopOffset(float offset) {
2233 active_tree_->set_top_controls_delta( 2231 float current_top_offset = active_tree_->top_controls_content_offset() -
2234 offset - active_tree_->top_controls_top_offset()); 2232 top_controls_manager_->top_controls_height();
2233 active_tree_->set_top_controls_delta(offset - current_top_offset);
2235 } 2234 }
2236 2235
2237 float LayerTreeHostImpl::ControlsTopOffset() const { 2236 float LayerTreeHostImpl::ControlsTopOffset() const {
2238 return active_tree_->total_top_controls_top_offset(); 2237 return active_tree_->total_top_controls_content_offset() -
2238 top_controls_manager_->top_controls_height();
2239 } 2239 }
2240 2240
2241 void LayerTreeHostImpl::BindToClient(InputHandlerClient* client) { 2241 void LayerTreeHostImpl::BindToClient(InputHandlerClient* client) {
2242 DCHECK(input_handler_client_ == NULL); 2242 DCHECK(input_handler_client_ == NULL);
2243 input_handler_client_ = client; 2243 input_handler_client_ = client;
2244 } 2244 }
2245 2245
2246 static LayerImpl* NextScrollLayer(LayerImpl* layer) { 2246 static LayerImpl* NextScrollLayer(LayerImpl* layer) {
2247 if (LayerImpl* scroll_parent = layer->scroll_parent()) 2247 if (LayerImpl* scroll_parent = layer->scroll_parent())
2248 return scroll_parent; 2248 return scroll_parent;
(...skipping 1129 matching lines...) Expand 10 before | Expand all | Expand 10 after
3378 } 3378 }
3379 3379
3380 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { 3380 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) {
3381 std::vector<PictureLayerImpl*>::iterator it = 3381 std::vector<PictureLayerImpl*>::iterator it =
3382 std::find(picture_layers_.begin(), picture_layers_.end(), layer); 3382 std::find(picture_layers_.begin(), picture_layers_.end(), layer);
3383 DCHECK(it != picture_layers_.end()); 3383 DCHECK(it != picture_layers_.end());
3384 picture_layers_.erase(it); 3384 picture_layers_.erase(it);
3385 } 3385 }
3386 3386
3387 } // namespace cc 3387 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698