Make sure the global toggle always updates for location.
[chromium-blink-merge.git] / cc / test / fake_layer_tree_host_impl.cc
blob81216a0aa043c0373c79cce557fd6d2e1ae98cc7
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "cc/test/begin_frame_args_test.h"
6 #include "cc/test/fake_layer_tree_host_impl.h"
7 #include "cc/test/test_shared_bitmap_manager.h"
8 #include "cc/trees/layer_tree_impl.h"
10 namespace cc {
12 FakeLayerTreeHostImpl::FakeLayerTreeHostImpl(Proxy* proxy,
13 SharedBitmapManager* manager,
14 TaskGraphRunner* task_graph_runner)
15 : LayerTreeHostImpl(LayerTreeSettings(),
16 &client_,
17 proxy,
18 &stats_instrumentation_,
19 manager,
20 NULL,
21 task_graph_runner,
22 0) {
23 // Explicitly clear all debug settings.
24 SetDebugState(LayerTreeDebugState());
25 SetViewportSize(gfx::Size(100, 100));
27 // Avoid using Now() as the frame time in unit tests.
28 base::TimeTicks time_ticks = base::TimeTicks::FromInternalValue(1);
29 SetCurrentBeginFrameArgs(
30 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
33 FakeLayerTreeHostImpl::FakeLayerTreeHostImpl(const LayerTreeSettings& settings,
34 Proxy* proxy,
35 SharedBitmapManager* manager,
36 TaskGraphRunner* task_graph_runner)
37 : LayerTreeHostImpl(settings,
38 &client_,
39 proxy,
40 &stats_instrumentation_,
41 manager,
42 NULL,
43 task_graph_runner,
44 0) {
45 // Explicitly clear all debug settings.
46 SetDebugState(LayerTreeDebugState());
48 // Avoid using Now() as the frame time in unit tests.
49 base::TimeTicks time_ticks = base::TimeTicks::FromInternalValue(1);
50 SetCurrentBeginFrameArgs(
51 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
54 FakeLayerTreeHostImpl::~FakeLayerTreeHostImpl() {}
56 void FakeLayerTreeHostImpl::CreatePendingTree() {
57 LayerTreeHostImpl::CreatePendingTree();
58 float arbitrary_large_page_scale = 100000.f;
59 pending_tree()->PushPageScaleFromMainThread(
60 1.f, 1.f / arbitrary_large_page_scale, arbitrary_large_page_scale);
63 BeginFrameArgs FakeLayerTreeHostImpl::CurrentBeginFrameArgs() const {
64 return current_begin_frame_tracker_.DangerousMethodCurrentOrLast();
67 void FakeLayerTreeHostImpl::SetCurrentBeginFrameArgs(
68 const BeginFrameArgs& args) {
69 if (!current_begin_frame_tracker_.DangerousMethodHasFinished()) {
70 current_begin_frame_tracker_.Finish();
72 current_begin_frame_tracker_.Start(args);
75 int FakeLayerTreeHostImpl::RecursiveUpdateNumChildren(LayerImpl* layer) {
76 int num_children_that_draw_content = 0;
77 for (size_t i = 0; i < layer->children().size(); ++i) {
78 num_children_that_draw_content +=
79 RecursiveUpdateNumChildren(layer->children()[i]);
81 if (layer->DrawsContent() && layer->HasDelegatedContent())
82 num_children_that_draw_content += 1000;
83 layer->SetNumDescendantsThatDrawContent(num_children_that_draw_content);
84 return num_children_that_draw_content + (layer->DrawsContent() ? 1 : 0);
87 void FakeLayerTreeHostImpl::UpdateNumChildrenAndDrawPropertiesForActiveTree() {
88 UpdateNumChildrenAndDrawProperties(active_tree());
91 void FakeLayerTreeHostImpl::UpdateNumChildrenAndDrawProperties(
92 LayerTreeImpl* layerTree) {
93 RecursiveUpdateNumChildren(layerTree->root_layer());
94 bool update_lcd_text = false;
95 layerTree->UpdateDrawProperties(update_lcd_text);
98 } // namespace cc