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

Side by Side Diff: cc/test/serialization_test_utils.cc

Issue 2646623002: cc: Remove all blimp code from cc. (Closed)
Patch Set: test build Created 3 years, 11 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/test/serialization_test_utils.h ('k') | cc/trees/clip_node.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 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.
4
5 #include "cc/test/serialization_test_utils.h"
6
7 #include "cc/blimp/compositor_state_deserializer.h"
8 #include "cc/layers/layer.h"
9 #include "cc/layers/solid_color_scrollbar_layer.h"
10 #include "cc/test/fake_picture_layer.h"
11 #include "cc/test/skia_common.h"
12 #include "cc/trees/layer_tree.h"
13 #include "cc/trees/layer_tree_host_common.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15
16 namespace cc {
17
18 #define EXPECT_LAYERS_EQ(engine_layer_id, client_layer) \
19 EXPECT_EQ( \
20 compositor_state_deserializer->GetLayerForEngineId(engine_layer_id), \
21 client_layer);
22
23 void VerifySerializedTreesAreIdentical(
24 LayerTree* engine_layer_tree,
25 LayerTree* client_layer_tree,
26 CompositorStateDeserializer* compositor_state_deserializer) {
27 if (engine_layer_tree->root_layer()) {
28 for (auto* engine_layer : *engine_layer_tree) {
29 Layer* client_layer = compositor_state_deserializer->GetLayerForEngineId(
30 engine_layer->id());
31 EXPECT_EQ(client_layer->GetLayerTree(), client_layer_tree);
32 VerifySerializedLayersAreIdentical(engine_layer,
33 compositor_state_deserializer);
34 }
35 } else {
36 EXPECT_EQ(client_layer_tree->root_layer(), nullptr);
37 }
38
39 // Viewport layers.
40 // Overscroll Elasticty Layer.
41 Layer* client_overscroll_elasticity_layer =
42 client_layer_tree->overscroll_elasticity_layer();
43 if (engine_layer_tree->overscroll_elasticity_layer()) {
44 int engine_overscroll_elasticity_layer_id =
45 engine_layer_tree->overscroll_elasticity_layer()->id();
46
47 EXPECT_LAYERS_EQ(engine_overscroll_elasticity_layer_id,
48 client_overscroll_elasticity_layer);
49 } else {
50 EXPECT_EQ(client_overscroll_elasticity_layer, nullptr);
51 }
52
53 // PageScale Layer.
54 Layer* client_page_scale_layer = client_layer_tree->page_scale_layer();
55 if (engine_layer_tree->page_scale_layer()) {
56 int engine_page_scale_layer_id =
57 engine_layer_tree->page_scale_layer()->id();
58
59 EXPECT_LAYERS_EQ(engine_page_scale_layer_id, client_page_scale_layer);
60 } else {
61 EXPECT_EQ(client_page_scale_layer, nullptr);
62 }
63
64 // InnerViewportScroll Layer.
65 Layer* client_inner_viewport_layer =
66 client_layer_tree->inner_viewport_scroll_layer();
67 if (engine_layer_tree->inner_viewport_scroll_layer()) {
68 int engine_inner_viewport_layer_id =
69 engine_layer_tree->inner_viewport_scroll_layer()->id();
70
71 EXPECT_LAYERS_EQ(engine_inner_viewport_layer_id,
72 client_inner_viewport_layer);
73 } else {
74 EXPECT_EQ(client_inner_viewport_layer, nullptr);
75 }
76
77 // OuterViewportScroll Layer.
78 Layer* client_outer_viewport_layer =
79 client_layer_tree->outer_viewport_scroll_layer();
80 if (engine_layer_tree->outer_viewport_scroll_layer()) {
81 int engine_outer_viewport_layer_id =
82 engine_layer_tree->outer_viewport_scroll_layer()->id();
83
84 EXPECT_LAYERS_EQ(engine_outer_viewport_layer_id,
85 client_outer_viewport_layer);
86 } else {
87 EXPECT_EQ(client_outer_viewport_layer, nullptr);
88 }
89
90 // Other LayerTree inputs.
91 EXPECT_EQ(engine_layer_tree->device_scale_factor(),
92 client_layer_tree->device_scale_factor());
93 EXPECT_EQ(engine_layer_tree->painted_device_scale_factor(),
94 client_layer_tree->painted_device_scale_factor());
95 EXPECT_EQ(engine_layer_tree->device_viewport_size(),
96 client_layer_tree->device_viewport_size());
97
98 EXPECT_EQ(engine_layer_tree->page_scale_factor(),
99 client_layer_tree->page_scale_factor());
100 EXPECT_EQ(engine_layer_tree->min_page_scale_factor(),
101 client_layer_tree->min_page_scale_factor());
102 EXPECT_EQ(engine_layer_tree->max_page_scale_factor(),
103 client_layer_tree->max_page_scale_factor());
104
105 EXPECT_EQ(engine_layer_tree->background_color(),
106 client_layer_tree->background_color());
107 EXPECT_EQ(engine_layer_tree->has_transparent_background(),
108 client_layer_tree->has_transparent_background());
109
110 EXPECT_EQ(engine_layer_tree->selection(), client_layer_tree->selection());
111
112 EXPECT_EQ(engine_layer_tree->have_scroll_event_handlers(),
113 client_layer_tree->have_scroll_event_handlers());
114
115 for (int i = 0; i < static_cast<int>(EventListenerClass::kNumClasses); ++i) {
116 EXPECT_EQ(engine_layer_tree->event_listener_properties(
117 static_cast<EventListenerClass>(i)),
118 client_layer_tree->event_listener_properties(
119 static_cast<EventListenerClass>(i)));
120 }
121 }
122
123 void VerifySerializedLayersAreIdentical(
124 Layer* engine_layer,
125 CompositorStateDeserializer* compositor_state_deserializer) {
126 Layer* client_layer =
127 compositor_state_deserializer->GetLayerForEngineId(engine_layer->id());
128 if (engine_layer == nullptr) {
129 EXPECT_EQ(client_layer, nullptr);
130 return;
131 }
132
133 // Parent.
134 if (engine_layer->parent()) {
135 int engine_parent_id = engine_layer->parent()->id();
136 EXPECT_LAYERS_EQ(engine_parent_id, client_layer->parent());
137 } else {
138 EXPECT_EQ(client_layer->parent(), nullptr);
139 }
140
141 // Mask Layers.
142 if (engine_layer->mask_layer()) {
143 int engine_mask_layer_id = engine_layer->mask_layer()->id();
144 EXPECT_LAYERS_EQ(engine_mask_layer_id, client_layer->mask_layer());
145 } else {
146 EXPECT_EQ(client_layer->mask_layer(), nullptr);
147 }
148
149 // Scroll parent.
150 if (engine_layer->scroll_parent()) {
151 int engine_scroll_parent_id = engine_layer->scroll_parent()->id();
152 EXPECT_LAYERS_EQ(engine_scroll_parent_id, client_layer->scroll_parent());
153 } else {
154 EXPECT_EQ(client_layer->scroll_parent(), nullptr);
155 }
156
157 // Clip parent.
158 if (engine_layer->clip_parent()) {
159 int engine_clip_parent_id = engine_layer->clip_parent()->id();
160 EXPECT_LAYERS_EQ(engine_clip_parent_id, client_layer->clip_parent());
161 } else {
162 EXPECT_EQ(client_layer->clip_parent(), nullptr);
163 }
164
165 // Scroll-clip layer.
166 if (engine_layer->scroll_clip_layer()) {
167 int scroll_clip_id = engine_layer->scroll_clip_layer()->id();
168 EXPECT_LAYERS_EQ(scroll_clip_id, client_layer->scroll_clip_layer());
169 } else {
170 EXPECT_EQ(client_layer->scroll_clip_layer(), nullptr);
171 }
172
173 // Other Layer properties.
174 // Note: The update rect is ignored here since it is cleared during
175 // serialization.
176 EXPECT_EQ(engine_layer->transform_origin(), client_layer->transform_origin());
177 EXPECT_EQ(engine_layer->background_color(), client_layer->background_color());
178 EXPECT_EQ(engine_layer->bounds(), client_layer->bounds());
179 EXPECT_EQ(engine_layer->double_sided(), client_layer->double_sided());
180 EXPECT_EQ(engine_layer->hide_layer_and_subtree(),
181 client_layer->hide_layer_and_subtree());
182 EXPECT_EQ(engine_layer->masks_to_bounds(), client_layer->masks_to_bounds());
183 EXPECT_EQ(engine_layer->main_thread_scrolling_reasons(),
184 client_layer->main_thread_scrolling_reasons());
185 EXPECT_EQ(engine_layer->non_fast_scrollable_region(),
186 client_layer->non_fast_scrollable_region());
187 EXPECT_EQ(engine_layer->touch_event_handler_region(),
188 client_layer->touch_event_handler_region());
189 EXPECT_EQ(engine_layer->contents_opaque(), client_layer->contents_opaque());
190 EXPECT_EQ(engine_layer->opacity(), client_layer->opacity());
191 EXPECT_EQ(engine_layer->blend_mode(), client_layer->blend_mode());
192 EXPECT_EQ(engine_layer->is_root_for_isolated_group(),
193 client_layer->is_root_for_isolated_group());
194 EXPECT_EQ(engine_layer->position(), client_layer->position());
195 EXPECT_EQ(engine_layer->IsContainerForFixedPositionLayers(),
196 client_layer->IsContainerForFixedPositionLayers());
197 EXPECT_EQ(engine_layer->position_constraint(),
198 client_layer->position_constraint());
199 EXPECT_EQ(engine_layer->should_flatten_transform(),
200 client_layer->should_flatten_transform());
201 EXPECT_EQ(engine_layer->use_parent_backface_visibility(),
202 client_layer->use_parent_backface_visibility());
203 EXPECT_EQ(engine_layer->transform(), client_layer->transform());
204 EXPECT_EQ(engine_layer->sorting_context_id(),
205 client_layer->sorting_context_id());
206 EXPECT_EQ(engine_layer->user_scrollable_horizontal(),
207 client_layer->user_scrollable_horizontal());
208 EXPECT_EQ(engine_layer->user_scrollable_vertical(),
209 client_layer->user_scrollable_vertical());
210 EXPECT_EQ(engine_layer->scroll_offset(), client_layer->scroll_offset());
211 }
212
213 void VerifySerializedScrollbarLayersAreIdentical(
214 SolidColorScrollbarLayer* engine_layer,
215 CompositorStateDeserializer* compositor_state_deserializer) {
216 SolidColorScrollbarLayer* client_layer =
217 static_cast<SolidColorScrollbarLayer*>(
218 compositor_state_deserializer->GetLayerForEngineId(
219 engine_layer->id()));
220
221 if (engine_layer == nullptr) {
222 EXPECT_EQ(client_layer, nullptr);
223 return;
224 }
225
226 EXPECT_LAYERS_EQ(
227 engine_layer->ScrollLayerId(),
228 client_layer->GetLayerTree()->LayerById(client_layer->ScrollLayerId()));
229 EXPECT_EQ(engine_layer->orientation(), client_layer->orientation());
230 EXPECT_EQ(engine_layer->thumb_thickness(), client_layer->thumb_thickness());
231 EXPECT_EQ(engine_layer->track_start(), client_layer->track_start());
232 EXPECT_EQ(engine_layer->is_left_side_vertical_scrollbar(),
233 client_layer->is_left_side_vertical_scrollbar());
234 }
235
236 void VerifySerializedPictureLayersAreIdentical(
237 FakePictureLayer* engine_layer,
238 CompositorStateDeserializer* compositor_state_deserializer) {
239 FakePictureLayer* client_layer = static_cast<FakePictureLayer*>(
240 compositor_state_deserializer->GetLayerForEngineId(engine_layer->id()));
241 EXPECT_EQ(engine_layer->nearest_neighbor(), client_layer->nearest_neighbor());
242
243 RecordingSource* engine_source = engine_layer->GetRecordingSourceForTesting();
244 RecordingSource* client_source = client_layer->GetRecordingSourceForTesting();
245 EXPECT_EQ(engine_source->recorded_viewport(),
246 client_source->recorded_viewport());
247 if (engine_source->GetDisplayItemList()) {
248 EXPECT_TRUE(AreDisplayListDrawingResultsSame(
249 engine_source->recorded_viewport(), engine_source->GetDisplayItemList(),
250 client_source->GetDisplayItemList()));
251 } else {
252 EXPECT_EQ(client_source->GetDisplayItemList(), nullptr);
253 }
254 }
255
256 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/serialization_test_utils.h ('k') | cc/trees/clip_node.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698