| OLD | NEW |
| 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_in_process.h" | 5 #include "cc/trees/layer_tree_host_in_process.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 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 443 sync_tree->ForceRedrawNextActivation(); | 443 sync_tree->ForceRedrawNextActivation(); |
| 444 next_commit_forces_redraw_ = false; | 444 next_commit_forces_redraw_ = false; |
| 445 } | 445 } |
| 446 if (next_commit_forces_recalculate_raster_scales_) { | 446 if (next_commit_forces_recalculate_raster_scales_) { |
| 447 sync_tree->ForceRecalculateRasterScales(); | 447 sync_tree->ForceRecalculateRasterScales(); |
| 448 next_commit_forces_recalculate_raster_scales_ = false; | 448 next_commit_forces_recalculate_raster_scales_ = false; |
| 449 } | 449 } |
| 450 | 450 |
| 451 sync_tree->set_source_frame_number(SourceFrameNumber()); | 451 sync_tree->set_source_frame_number(SourceFrameNumber()); |
| 452 | 452 |
| 453 // TODO(bokan): The tree sync might destroy the currently scrolling layer. |
| 454 // Normally, this would be fine and we'd just drop incoming scrolls but some |
| 455 // telemetry tests rely on the viewport not having this behavior. Those should |
| 456 // be fixed and this removed. crbug.com/652905. |
| 457 bool restore_currently_scrolling_viewport = |
| 458 host_impl->IsCurrentlyScrollingViewport(); |
| 459 |
| 453 if (layer_tree_->needs_full_tree_sync()) | 460 if (layer_tree_->needs_full_tree_sync()) |
| 454 TreeSynchronizer::SynchronizeTrees(layer_tree_->root_layer(), sync_tree); | 461 TreeSynchronizer::SynchronizeTrees(layer_tree_->root_layer(), sync_tree); |
| 455 | 462 |
| 456 layer_tree_->PushPropertiesTo(sync_tree); | 463 layer_tree_->PushPropertiesTo(sync_tree); |
| 457 | 464 |
| 465 if (restore_currently_scrolling_viewport && |
| 466 !host_impl->IsCurrentlyScrollingViewport()) { |
| 467 host_impl->active_tree()->SetCurrentlyScrollingLayer( |
| 468 host_impl->ViewportMainScrollLayer()); |
| 469 } |
| 470 |
| 458 sync_tree->PassSwapPromises(swap_promise_manager_.TakeSwapPromises()); | 471 sync_tree->PassSwapPromises(swap_promise_manager_.TakeSwapPromises()); |
| 459 | 472 |
| 460 host_impl->SetHasGpuRasterizationTrigger(has_gpu_rasterization_trigger_); | 473 host_impl->SetHasGpuRasterizationTrigger(has_gpu_rasterization_trigger_); |
| 461 host_impl->SetContentIsSuitableForGpuRasterization( | 474 host_impl->SetContentIsSuitableForGpuRasterization( |
| 462 content_is_suitable_for_gpu_rasterization_); | 475 content_is_suitable_for_gpu_rasterization_); |
| 463 RecordGpuRasterizationHistogram(); | 476 RecordGpuRasterizationHistogram(); |
| 464 | 477 |
| 465 host_impl->SetViewportSize(layer_tree_->device_viewport_size()); | 478 host_impl->SetViewportSize(layer_tree_->device_viewport_size()); |
| 466 // TODO(senorblanco): Move this to LayerTree::PushPropertiesTo so that it | 479 // TODO(senorblanco): Move this to LayerTree::PushPropertiesTo so that it |
| 467 // happens before GPU rasterization properties are set, since those trigger an | 480 // happens before GPU rasterization properties are set, since those trigger an |
| (...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1035 | 1048 |
| 1036 debug_state_.FromProtobuf(proto.debug_state()); | 1049 debug_state_.FromProtobuf(proto.debug_state()); |
| 1037 has_gpu_rasterization_trigger_ = proto.has_gpu_rasterization_trigger(); | 1050 has_gpu_rasterization_trigger_ = proto.has_gpu_rasterization_trigger(); |
| 1038 content_is_suitable_for_gpu_rasterization_ = | 1051 content_is_suitable_for_gpu_rasterization_ = |
| 1039 proto.content_is_suitable_for_gpu_rasterization(); | 1052 proto.content_is_suitable_for_gpu_rasterization(); |
| 1040 id_ = proto.id(); | 1053 id_ = proto.id(); |
| 1041 next_commit_forces_redraw_ = proto.next_commit_forces_redraw(); | 1054 next_commit_forces_redraw_ = proto.next_commit_forces_redraw(); |
| 1042 } | 1055 } |
| 1043 | 1056 |
| 1044 } // namespace cc | 1057 } // namespace cc |
| OLD | NEW |