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

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

Issue 2417783005: [Master/Overview CL] Make PageScaleFactor work for oopif subframe.
Patch Set: Rebase to master@{#429656}. Created 4 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 unified diff | Download patch
« no previous file with comments | « cc/trees/layer_tree.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 <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 DCHECK(mutator_host_); 237 DCHECK(mutator_host_);
238 mutator_host_->SetMutatorHostClient(this); 238 mutator_host_->SetMutatorHostClient(this);
239 239
240 DCHECK(task_runner_provider_->IsImplThread()); 240 DCHECK(task_runner_provider_->IsImplThread());
241 DidVisibilityChange(this, visible_); 241 DidVisibilityChange(this, visible_);
242 242
243 SetDebugState(settings.initial_debug_state); 243 SetDebugState(settings.initial_debug_state);
244 244
245 // LTHI always has an active tree. 245 // LTHI always has an active tree.
246 active_tree_ = base::MakeUnique<LayerTreeImpl>( 246 active_tree_ = base::MakeUnique<LayerTreeImpl>(
247 this, new SyncedProperty<ScaleGroup>, new SyncedBrowserControls, 247 this, new SyncedProperty<ScaleGroup>, new SyncedProperty<ScaleGroup>,
248 new SyncedElasticOverscroll); 248 new SyncedBrowserControls, new SyncedElasticOverscroll);
249 active_tree_->property_trees()->is_active = true; 249 active_tree_->property_trees()->is_active = true;
250 250
251 viewport_ = Viewport::Create(this); 251 viewport_ = Viewport::Create(this);
252 252
253 TRACE_EVENT_OBJECT_CREATED_WITH_ID(TRACE_DISABLED_BY_DEFAULT("cc.debug"), 253 TRACE_EVENT_OBJECT_CREATED_WITH_ID(TRACE_DISABLED_BY_DEFAULT("cc.debug"),
254 "cc::LayerTreeHostImpl", id_); 254 "cc::LayerTreeHostImpl", id_);
255 255
256 browser_controls_offset_manager_ = BrowserControlsOffsetManager::Create( 256 browser_controls_offset_manager_ = BrowserControlsOffsetManager::Create(
257 this, settings.top_controls_show_threshold, 257 this, settings.top_controls_show_threshold,
258 settings.top_controls_hide_threshold); 258 settings.top_controls_hide_threshold);
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after
1175 UpdateTileManagerMemoryPolicy(ManagedMemoryPolicy(0)); 1175 UpdateTileManagerMemoryPolicy(ManagedMemoryPolicy(0));
1176 } 1176 }
1177 1177
1178 void LayerTreeHostImpl::BlockNotifyReadyToActivateForTesting(bool block) { 1178 void LayerTreeHostImpl::BlockNotifyReadyToActivateForTesting(bool block) {
1179 NOTREACHED(); 1179 NOTREACHED();
1180 } 1180 }
1181 1181
1182 void LayerTreeHostImpl::ResetTreesForTesting() { 1182 void LayerTreeHostImpl::ResetTreesForTesting() {
1183 if (active_tree_) 1183 if (active_tree_)
1184 active_tree_->DetachLayers(); 1184 active_tree_->DetachLayers();
1185 active_tree_ = 1185 active_tree_ = base::MakeUnique<LayerTreeImpl>(
1186 base::MakeUnique<LayerTreeImpl>(this, active_tree()->page_scale_factor(), 1186 this, active_tree()->page_scale_factor(),
1187 active_tree()->top_controls_shown_ratio(), 1187 active_tree()->subframe_page_scale_factor(),
1188 active_tree()->elastic_overscroll()); 1188 active_tree()->top_controls_shown_ratio(),
1189 active_tree()->elastic_overscroll());
1189 active_tree_->property_trees()->is_active = true; 1190 active_tree_->property_trees()->is_active = true;
1190 if (pending_tree_) 1191 if (pending_tree_)
1191 pending_tree_->DetachLayers(); 1192 pending_tree_->DetachLayers();
1192 pending_tree_ = nullptr; 1193 pending_tree_ = nullptr;
1193 pending_tree_duration_timer_ = nullptr; 1194 pending_tree_duration_timer_ = nullptr;
1194 if (recycle_tree_) 1195 if (recycle_tree_)
1195 recycle_tree_->DetachLayers(); 1196 recycle_tree_->DetachLayers();
1196 recycle_tree_ = nullptr; 1197 recycle_tree_ = nullptr;
1197 } 1198 }
1198 1199
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
1519 void LayerTreeHostImpl::OnCanDrawStateChangedForTree() { 1520 void LayerTreeHostImpl::OnCanDrawStateChangedForTree() {
1520 client_->OnCanDrawStateChanged(CanDraw()); 1521 client_->OnCanDrawStateChanged(CanDraw());
1521 } 1522 }
1522 1523
1523 CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() const { 1524 CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() const {
1524 CompositorFrameMetadata metadata; 1525 CompositorFrameMetadata metadata;
1525 metadata.device_scale_factor = active_tree_->painted_device_scale_factor() * 1526 metadata.device_scale_factor = active_tree_->painted_device_scale_factor() *
1526 active_tree_->device_scale_factor(); 1527 active_tree_->device_scale_factor();
1527 1528
1528 metadata.page_scale_factor = active_tree_->current_page_scale_factor(); 1529 metadata.page_scale_factor = active_tree_->current_page_scale_factor();
1530 // TODO(wjmaclean): Should we expose subframe PSF here?
1529 metadata.scrollable_viewport_size = active_tree_->ScrollableViewportSize(); 1531 metadata.scrollable_viewport_size = active_tree_->ScrollableViewportSize();
1530 metadata.root_layer_size = active_tree_->ScrollableSize(); 1532 metadata.root_layer_size = active_tree_->ScrollableSize();
1531 metadata.min_page_scale_factor = active_tree_->min_page_scale_factor(); 1533 metadata.min_page_scale_factor = active_tree_->min_page_scale_factor();
1532 metadata.max_page_scale_factor = active_tree_->max_page_scale_factor(); 1534 metadata.max_page_scale_factor = active_tree_->max_page_scale_factor();
1533 metadata.top_controls_height = 1535 metadata.top_controls_height =
1534 browser_controls_offset_manager_->TopControlsHeight(); 1536 browser_controls_offset_manager_->TopControlsHeight();
1535 metadata.top_controls_shown_ratio = 1537 metadata.top_controls_shown_ratio =
1536 browser_controls_offset_manager_->TopControlsShownRatio(); 1538 browser_controls_offset_manager_->TopControlsShownRatio();
1537 metadata.bottom_controls_height = 1539 metadata.bottom_controls_height =
1538 browser_controls_offset_manager_->BottomControlsHeight(); 1540 browser_controls_offset_manager_->BottomControlsHeight();
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
1923 return did_lock_scrolling_layer_; 1925 return did_lock_scrolling_layer_;
1924 } 1926 }
1925 1927
1926 void LayerTreeHostImpl::CreatePendingTree() { 1928 void LayerTreeHostImpl::CreatePendingTree() {
1927 CHECK(!pending_tree_); 1929 CHECK(!pending_tree_);
1928 if (recycle_tree_) { 1930 if (recycle_tree_) {
1929 recycle_tree_.swap(pending_tree_); 1931 recycle_tree_.swap(pending_tree_);
1930 } else { 1932 } else {
1931 pending_tree_ = base::MakeUnique<LayerTreeImpl>( 1933 pending_tree_ = base::MakeUnique<LayerTreeImpl>(
1932 this, active_tree()->page_scale_factor(), 1934 this, active_tree()->page_scale_factor(),
1935 active_tree()->subframe_page_scale_factor(),
1933 active_tree()->top_controls_shown_ratio(), 1936 active_tree()->top_controls_shown_ratio(),
1934 active_tree()->elastic_overscroll()); 1937 active_tree()->elastic_overscroll());
1935 } 1938 }
1936 1939
1937 client_->OnCanDrawStateChanged(CanDraw()); 1940 client_->OnCanDrawStateChanged(CanDraw());
1938 TRACE_EVENT_ASYNC_BEGIN0("cc", "PendingTree:waiting", pending_tree_.get()); 1941 TRACE_EVENT_ASYNC_BEGIN0("cc", "PendingTree:waiting", pending_tree_.get());
1939 1942
1940 DCHECK(!pending_tree_duration_timer_); 1943 DCHECK(!pending_tree_duration_timer_);
1941 pending_tree_duration_timer_.reset(new PendingTreeDurationHistogramTimer()); 1944 pending_tree_duration_timer_.reset(new PendingTreeDurationHistogramTimer());
1942 } 1945 }
(...skipping 1341 matching lines...) Expand 10 before | Expand all | Expand 10 after
3284 pinch_gesture_active_ = true; 3287 pinch_gesture_active_ = true;
3285 client_->RenewTreePriority(); 3288 client_->RenewTreePriority();
3286 pinch_gesture_end_should_clear_scrolling_layer_ = !CurrentlyScrollingLayer(); 3289 pinch_gesture_end_should_clear_scrolling_layer_ = !CurrentlyScrollingLayer();
3287 active_tree_->SetCurrentlyScrollingLayer(viewport()->MainScrollLayer()); 3290 active_tree_->SetCurrentlyScrollingLayer(viewport()->MainScrollLayer());
3288 browser_controls_offset_manager_->PinchBegin(); 3291 browser_controls_offset_manager_->PinchBegin();
3289 } 3292 }
3290 3293
3291 void LayerTreeHostImpl::PinchGestureUpdate(float magnify_delta, 3294 void LayerTreeHostImpl::PinchGestureUpdate(float magnify_delta,
3292 const gfx::Point& anchor) { 3295 const gfx::Point& anchor) {
3293 TRACE_EVENT0("cc", "LayerTreeHostImpl::PinchGestureUpdate"); 3296 TRACE_EVENT0("cc", "LayerTreeHostImpl::PinchGestureUpdate");
3294 if (!InnerViewportScrollLayer()) 3297 if (InnerViewportScrollLayer()) {
3295 return; 3298 viewport()->PinchUpdate(magnify_delta, anchor);
3296 viewport()->PinchUpdate(magnify_delta, anchor); 3299 } else {
3300 float subframe_page_scale = active_tree_->GetSubframePageScaleFactor();
3301 subframe_page_scale *= magnify_delta;
3302 active_tree_->SetSubframePageScaleOnActiveTree(subframe_page_scale);
3303 }
3297 client_->SetNeedsCommitOnImplThread(); 3304 client_->SetNeedsCommitOnImplThread();
3298 SetNeedsRedraw(); 3305 SetNeedsRedraw();
3299 client_->RenewTreePriority(); 3306 client_->RenewTreePriority();
3300 // Pinching can change the root scroll offset, so inform the synchronous input 3307 // Pinching can change the root scroll offset, so inform the synchronous input
3301 // handler. 3308 // handler.
3302 UpdateRootLayerStateForSynchronousInputHandler(); 3309 UpdateRootLayerStateForSynchronousInputHandler();
3303 } 3310 }
3304 3311
3305 void LayerTreeHostImpl::PinchGestureEnd() { 3312 void LayerTreeHostImpl::PinchGestureEnd() {
3306 pinch_gesture_active_ = false; 3313 pinch_gesture_active_ = false;
(...skipping 778 matching lines...) Expand 10 before | Expand all | Expand 10 after
4085 if (is_visible) { 4092 if (is_visible) {
4086 worker_context_visibility_ = 4093 worker_context_visibility_ =
4087 worker_context->CacheController()->ClientBecameVisible(); 4094 worker_context->CacheController()->ClientBecameVisible();
4088 } else { 4095 } else {
4089 worker_context->CacheController()->ClientBecameNotVisible( 4096 worker_context->CacheController()->ClientBecameNotVisible(
4090 std::move(worker_context_visibility_)); 4097 std::move(worker_context_visibility_));
4091 } 4098 }
4092 } 4099 }
4093 4100
4094 } // namespace cc 4101 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree.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