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

Side by Side Diff: components/mus/ws/test_change_tracker.cc

Issue 1406153004: components/mus/public/interfaces View => Window (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Yet another rebase Created 5 years, 2 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/mus/ws/test_change_tracker.h" 5 #include "components/mus/ws/test_change_tracker.h"
6 6
7 #include "base/strings/string_util.h" 7 #include "base/strings/string_util.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "components/mus/public/cpp/util.h" 9 #include "components/mus/public/cpp/util.h"
10 #include "mojo/common/common_type_converters.h" 10 #include "mojo/common/common_type_converters.h"
11 11
12 using mojo::Array; 12 using mojo::Array;
13 using mojo::ViewDataPtr;
14 using mojo::String; 13 using mojo::String;
15 14
16 namespace mus { 15 namespace mus {
17 16
18 std::string ViewIdToString(Id id) { 17 std::string ViewIdToString(Id id) {
19 return (id == 0) ? "null" 18 return (id == 0) ? "null"
20 : base::StringPrintf("%d,%d", HiWord(id), LoWord(id)); 19 : base::StringPrintf("%d,%d", HiWord(id), LoWord(id));
21 } 20 }
22 21
23 namespace { 22 namespace {
24 23
25 std::string RectToString(const mojo::Rect& rect) { 24 std::string RectToString(const mojo::Rect& rect) {
26 return base::StringPrintf("%d,%d %dx%d", rect.x, rect.y, rect.width, 25 return base::StringPrintf("%d,%d %dx%d", rect.x, rect.y, rect.width,
27 rect.height); 26 rect.height);
28 } 27 }
29 28
30 std::string DirectionToString(mojo::OrderDirection direction) { 29 std::string DirectionToString(mojom::OrderDirection direction) {
31 return direction == mojo::ORDER_DIRECTION_ABOVE ? "above" : "below"; 30 return direction == mojom::ORDER_DIRECTION_ABOVE ? "above" : "below";
32 } 31 }
33 32
34 std::string ChangeToDescription1(const Change& change) { 33 std::string ChangeToDescription1(const Change& change) {
35 switch (change.type) { 34 switch (change.type) {
36 case CHANGE_TYPE_EMBED: 35 case CHANGE_TYPE_EMBED:
37 return "OnEmbed"; 36 return "OnEmbed";
38 37
39 case CHANGE_TYPE_EMBEDDED_APP_DISCONNECTED: 38 case CHANGE_TYPE_EMBEDDED_APP_DISCONNECTED:
40 return base::StringPrintf("OnEmbeddedAppDisconnected view=%s", 39 return base::StringPrintf("OnEmbeddedAppDisconnected view=%s",
41 ViewIdToString(change.view_id).c_str()); 40 ViewIdToString(change.window_id).c_str());
42 41
43 case CHANGE_TYPE_UNEMBED: 42 case CHANGE_TYPE_UNEMBED:
44 return "OnUnembed"; 43 return "OnUnembed";
45 44
46 case CHANGE_TYPE_NODE_BOUNDS_CHANGED: 45 case CHANGE_TYPE_NODE_BOUNDS_CHANGED:
47 return base::StringPrintf( 46 return base::StringPrintf(
48 "BoundsChanged view=%s old_bounds=%s new_bounds=%s", 47 "BoundsChanged view=%s old_bounds=%s new_bounds=%s",
49 ViewIdToString(change.view_id).c_str(), 48 ViewIdToString(change.window_id).c_str(),
50 RectToString(change.bounds).c_str(), 49 RectToString(change.bounds).c_str(),
51 RectToString(change.bounds2).c_str()); 50 RectToString(change.bounds2).c_str());
52 51
53 case CHANGE_TYPE_NODE_VIEWPORT_METRICS_CHANGED: 52 case CHANGE_TYPE_NODE_VIEWPORT_METRICS_CHANGED:
54 // TODO(sky): Not implemented. 53 // TODO(sky): Not implemented.
55 return "ViewportMetricsChanged"; 54 return "ViewportMetricsChanged";
56 55
57 case CHANGE_TYPE_NODE_HIERARCHY_CHANGED: 56 case CHANGE_TYPE_NODE_HIERARCHY_CHANGED:
58 return base::StringPrintf( 57 return base::StringPrintf(
59 "HierarchyChanged view=%s new_parent=%s old_parent=%s", 58 "HierarchyChanged view=%s new_parent=%s old_parent=%s",
60 ViewIdToString(change.view_id).c_str(), 59 ViewIdToString(change.window_id).c_str(),
61 ViewIdToString(change.view_id2).c_str(), 60 ViewIdToString(change.window_id2).c_str(),
62 ViewIdToString(change.view_id3).c_str()); 61 ViewIdToString(change.window_id3).c_str());
63 62
64 case CHANGE_TYPE_NODE_REORDERED: 63 case CHANGE_TYPE_NODE_REORDERED:
65 return base::StringPrintf("Reordered view=%s relative=%s direction=%s", 64 return base::StringPrintf("Reordered view=%s relative=%s direction=%s",
66 ViewIdToString(change.view_id).c_str(), 65 ViewIdToString(change.window_id).c_str(),
67 ViewIdToString(change.view_id2).c_str(), 66 ViewIdToString(change.window_id2).c_str(),
68 DirectionToString(change.direction).c_str()); 67 DirectionToString(change.direction).c_str());
69 68
70 case CHANGE_TYPE_NODE_DELETED: 69 case CHANGE_TYPE_NODE_DELETED:
71 return base::StringPrintf("ViewDeleted view=%s", 70 return base::StringPrintf("ViewDeleted view=%s",
72 ViewIdToString(change.view_id).c_str()); 71 ViewIdToString(change.window_id).c_str());
73 72
74 case CHANGE_TYPE_NODE_VISIBILITY_CHANGED: 73 case CHANGE_TYPE_NODE_VISIBILITY_CHANGED:
75 return base::StringPrintf("VisibilityChanged view=%s visible=%s", 74 return base::StringPrintf("VisibilityChanged view=%s visible=%s",
76 ViewIdToString(change.view_id).c_str(), 75 ViewIdToString(change.window_id).c_str(),
77 change.bool_value ? "true" : "false"); 76 change.bool_value ? "true" : "false");
78 77
79 case CHANGE_TYPE_NODE_DRAWN_STATE_CHANGED: 78 case CHANGE_TYPE_NODE_DRAWN_STATE_CHANGED:
80 return base::StringPrintf("DrawnStateChanged view=%s drawn=%s", 79 return base::StringPrintf("DrawnStateChanged view=%s drawn=%s",
81 ViewIdToString(change.view_id).c_str(), 80 ViewIdToString(change.window_id).c_str(),
82 change.bool_value ? "true" : "false"); 81 change.bool_value ? "true" : "false");
83 82
84 case CHANGE_TYPE_INPUT_EVENT: 83 case CHANGE_TYPE_INPUT_EVENT:
85 return base::StringPrintf("InputEvent view=%s event_action=%d", 84 return base::StringPrintf("InputEvent view=%s event_action=%d",
86 ViewIdToString(change.view_id).c_str(), 85 ViewIdToString(change.window_id).c_str(),
87 change.event_action); 86 change.event_action);
88 87
89 case CHANGE_TYPE_PROPERTY_CHANGED: 88 case CHANGE_TYPE_PROPERTY_CHANGED:
90 return base::StringPrintf("PropertyChanged view=%s key=%s value=%s", 89 return base::StringPrintf("PropertyChanged view=%s key=%s value=%s",
91 ViewIdToString(change.view_id).c_str(), 90 ViewIdToString(change.window_id).c_str(),
92 change.property_key.c_str(), 91 change.property_key.c_str(),
93 change.property_value.c_str()); 92 change.property_value.c_str());
94 93
95 case CHANGE_TYPE_DELEGATE_EMBED: 94 case CHANGE_TYPE_DELEGATE_EMBED:
96 return base::StringPrintf("DelegateEmbed url=%s", 95 return base::StringPrintf("DelegateEmbed url=%s",
97 change.embed_url.data()); 96 change.embed_url.data());
98 97
99 case CHANGE_TYPE_FOCUSED: 98 case CHANGE_TYPE_FOCUSED:
100 return base::StringPrintf("Focused id=%s", 99 return base::StringPrintf("Focused id=%s",
101 ViewIdToString(change.view_id).c_str()); 100 ViewIdToString(change.window_id).c_str());
102 } 101 }
103 return std::string(); 102 return std::string();
104 } 103 }
105 104
106 } // namespace 105 } // namespace
107 106
108 std::vector<std::string> ChangesToDescription1( 107 std::vector<std::string> ChangesToDescription1(
109 const std::vector<Change>& changes) { 108 const std::vector<Change>& changes) {
110 std::vector<std::string> strings(changes.size()); 109 std::vector<std::string> strings(changes.size());
111 for (size_t i = 0; i < changes.size(); ++i) 110 for (size_t i = 0; i < changes.size(); ++i)
(...skipping 19 matching lines...) Expand all
131 130
132 std::string ChangeViewDescription(const std::vector<Change>& changes) { 131 std::string ChangeViewDescription(const std::vector<Change>& changes) {
133 if (changes.size() != 1) 132 if (changes.size() != 1)
134 return std::string(); 133 return std::string();
135 std::vector<std::string> view_strings(changes[0].views.size()); 134 std::vector<std::string> view_strings(changes[0].views.size());
136 for (size_t i = 0; i < changes[0].views.size(); ++i) 135 for (size_t i = 0; i < changes[0].views.size(); ++i)
137 view_strings[i] = "[" + changes[0].views[i].ToString() + "]"; 136 view_strings[i] = "[" + changes[0].views[i].ToString() + "]";
138 return base::JoinString(view_strings, ","); 137 return base::JoinString(view_strings, ",");
139 } 138 }
140 139
141 TestView ViewDataToTestView(const ViewDataPtr& data) { 140 TestView WindowDataToTestView(const mojom::WindowDataPtr& data) {
142 TestView view; 141 TestView view;
143 view.parent_id = data->parent_id; 142 view.parent_id = data->parent_id;
144 view.view_id = data->view_id; 143 view.window_id = data->window_id;
145 view.visible = data->visible; 144 view.visible = data->visible;
146 view.drawn = data->drawn; 145 view.drawn = data->drawn;
147 view.properties = 146 view.properties =
148 data->properties.To<std::map<std::string, std::vector<uint8_t>>>(); 147 data->properties.To<std::map<std::string, std::vector<uint8_t>>>();
149 return view; 148 return view;
150 } 149 }
151 150
152 void ViewDatasToTestViews(const Array<ViewDataPtr>& data, 151 void WindowDatasToTestViews(const Array<mojom::WindowDataPtr>& data,
153 std::vector<TestView>* test_views) { 152 std::vector<TestView>* test_views) {
154 for (size_t i = 0; i < data.size(); ++i) 153 for (size_t i = 0; i < data.size(); ++i)
155 test_views->push_back(ViewDataToTestView(data[i])); 154 test_views->push_back(WindowDataToTestView(data[i]));
156 } 155 }
157 156
158 Change::Change() 157 Change::Change()
159 : type(CHANGE_TYPE_EMBED), 158 : type(CHANGE_TYPE_EMBED),
160 connection_id(0), 159 connection_id(0),
161 view_id(0), 160 window_id(0),
162 view_id2(0), 161 window_id2(0),
163 view_id3(0), 162 window_id3(0),
164 event_action(0), 163 event_action(0),
165 direction(mojo::ORDER_DIRECTION_ABOVE), 164 direction(mojom::ORDER_DIRECTION_ABOVE),
166 bool_value(false) {} 165 bool_value(false) {}
167 166
168 Change::~Change() {} 167 Change::~Change() {}
169 168
170 TestChangeTracker::TestChangeTracker() : delegate_(NULL) {} 169 TestChangeTracker::TestChangeTracker() : delegate_(NULL) {}
171 170
172 TestChangeTracker::~TestChangeTracker() {} 171 TestChangeTracker::~TestChangeTracker() {}
173 172
174 void TestChangeTracker::OnEmbed(ConnectionSpecificId connection_id, 173 void TestChangeTracker::OnEmbed(ConnectionSpecificId connection_id,
175 ViewDataPtr root) { 174 mojom::WindowDataPtr root) {
176 Change change; 175 Change change;
177 change.type = CHANGE_TYPE_EMBED; 176 change.type = CHANGE_TYPE_EMBED;
178 change.connection_id = connection_id; 177 change.connection_id = connection_id;
179 change.views.push_back(ViewDataToTestView(root)); 178 change.views.push_back(WindowDataToTestView(root));
180 AddChange(change); 179 AddChange(change);
181 } 180 }
182 181
183 void TestChangeTracker::OnEmbeddedAppDisconnected(Id view_id) { 182 void TestChangeTracker::OnEmbeddedAppDisconnected(Id window_id) {
184 Change change; 183 Change change;
185 change.type = CHANGE_TYPE_EMBEDDED_APP_DISCONNECTED; 184 change.type = CHANGE_TYPE_EMBEDDED_APP_DISCONNECTED;
186 change.view_id = view_id; 185 change.window_id = window_id;
187 AddChange(change); 186 AddChange(change);
188 } 187 }
189 188
190 void TestChangeTracker::OnWindowBoundsChanged(Id view_id, 189 void TestChangeTracker::OnWindowBoundsChanged(Id window_id,
191 mojo::RectPtr old_bounds, 190 mojo::RectPtr old_bounds,
192 mojo::RectPtr new_bounds) { 191 mojo::RectPtr new_bounds) {
193 Change change; 192 Change change;
194 change.type = CHANGE_TYPE_NODE_BOUNDS_CHANGED; 193 change.type = CHANGE_TYPE_NODE_BOUNDS_CHANGED;
195 change.view_id = view_id; 194 change.window_id = window_id;
196 change.bounds.x = old_bounds->x; 195 change.bounds.x = old_bounds->x;
197 change.bounds.y = old_bounds->y; 196 change.bounds.y = old_bounds->y;
198 change.bounds.width = old_bounds->width; 197 change.bounds.width = old_bounds->width;
199 change.bounds.height = old_bounds->height; 198 change.bounds.height = old_bounds->height;
200 change.bounds2.x = new_bounds->x; 199 change.bounds2.x = new_bounds->x;
201 change.bounds2.y = new_bounds->y; 200 change.bounds2.y = new_bounds->y;
202 change.bounds2.width = new_bounds->width; 201 change.bounds2.width = new_bounds->width;
203 change.bounds2.height = new_bounds->height; 202 change.bounds2.height = new_bounds->height;
204 AddChange(change); 203 AddChange(change);
205 } 204 }
206 205
207 void TestChangeTracker::OnUnembed() { 206 void TestChangeTracker::OnUnembed() {
208 Change change; 207 Change change;
209 change.type = CHANGE_TYPE_UNEMBED; 208 change.type = CHANGE_TYPE_UNEMBED;
210 AddChange(change); 209 AddChange(change);
211 } 210 }
212 211
213 void TestChangeTracker::OnWindowViewportMetricsChanged( 212 void TestChangeTracker::OnWindowViewportMetricsChanged(
214 mojo::ViewportMetricsPtr old_metrics, 213 mojom::ViewportMetricsPtr old_metrics,
215 mojo::ViewportMetricsPtr new_metrics) { 214 mojom::ViewportMetricsPtr new_metrics) {
216 Change change; 215 Change change;
217 change.type = CHANGE_TYPE_NODE_VIEWPORT_METRICS_CHANGED; 216 change.type = CHANGE_TYPE_NODE_VIEWPORT_METRICS_CHANGED;
218 // NOT IMPLEMENTED 217 // NOT IMPLEMENTED
219 AddChange(change); 218 AddChange(change);
220 } 219 }
221 220
222 void TestChangeTracker::OnWindowHierarchyChanged(Id view_id, 221 void TestChangeTracker::OnWindowHierarchyChanged(
223 Id new_parent_id, 222 Id window_id,
224 Id old_parent_id, 223 Id new_parent_id,
225 Array<ViewDataPtr> views) { 224 Id old_parent_id,
225 Array<mojom::WindowDataPtr> views) {
226 Change change; 226 Change change;
227 change.type = CHANGE_TYPE_NODE_HIERARCHY_CHANGED; 227 change.type = CHANGE_TYPE_NODE_HIERARCHY_CHANGED;
228 change.view_id = view_id; 228 change.window_id = window_id;
229 change.view_id2 = new_parent_id; 229 change.window_id2 = new_parent_id;
230 change.view_id3 = old_parent_id; 230 change.window_id3 = old_parent_id;
231 ViewDatasToTestViews(views, &change.views); 231 WindowDatasToTestViews(views, &change.views);
232 AddChange(change); 232 AddChange(change);
233 } 233 }
234 234
235 void TestChangeTracker::OnWindowReordered(Id view_id, 235 void TestChangeTracker::OnWindowReordered(Id window_id,
236 Id relative_view_id, 236 Id relative_window_id,
237 mojo::OrderDirection direction) { 237 mojom::OrderDirection direction) {
238 Change change; 238 Change change;
239 change.type = CHANGE_TYPE_NODE_REORDERED; 239 change.type = CHANGE_TYPE_NODE_REORDERED;
240 change.view_id = view_id; 240 change.window_id = window_id;
241 change.view_id2 = relative_view_id; 241 change.window_id2 = relative_window_id;
242 change.direction = direction; 242 change.direction = direction;
243 AddChange(change); 243 AddChange(change);
244 } 244 }
245 245
246 void TestChangeTracker::OnWindowDeleted(Id view_id) { 246 void TestChangeTracker::OnWindowDeleted(Id window_id) {
247 Change change; 247 Change change;
248 change.type = CHANGE_TYPE_NODE_DELETED; 248 change.type = CHANGE_TYPE_NODE_DELETED;
249 change.view_id = view_id; 249 change.window_id = window_id;
250 AddChange(change); 250 AddChange(change);
251 } 251 }
252 252
253 void TestChangeTracker::OnWindowVisibilityChanged(Id view_id, bool visible) { 253 void TestChangeTracker::OnWindowVisibilityChanged(Id window_id, bool visible) {
254 Change change; 254 Change change;
255 change.type = CHANGE_TYPE_NODE_VISIBILITY_CHANGED; 255 change.type = CHANGE_TYPE_NODE_VISIBILITY_CHANGED;
256 change.view_id = view_id; 256 change.window_id = window_id;
257 change.bool_value = visible; 257 change.bool_value = visible;
258 AddChange(change); 258 AddChange(change);
259 } 259 }
260 260
261 void TestChangeTracker::OnWindowDrawnStateChanged(Id view_id, bool drawn) { 261 void TestChangeTracker::OnWindowDrawnStateChanged(Id window_id, bool drawn) {
262 Change change; 262 Change change;
263 change.type = CHANGE_TYPE_NODE_DRAWN_STATE_CHANGED; 263 change.type = CHANGE_TYPE_NODE_DRAWN_STATE_CHANGED;
264 change.view_id = view_id; 264 change.window_id = window_id;
265 change.bool_value = drawn; 265 change.bool_value = drawn;
266 AddChange(change); 266 AddChange(change);
267 } 267 }
268 268
269 void TestChangeTracker::OnWindowInputEvent(Id view_id, mojo::EventPtr event) { 269 void TestChangeTracker::OnWindowInputEvent(Id window_id, mojo::EventPtr event) {
270 Change change; 270 Change change;
271 change.type = CHANGE_TYPE_INPUT_EVENT; 271 change.type = CHANGE_TYPE_INPUT_EVENT;
272 change.view_id = view_id; 272 change.window_id = window_id;
273 change.event_action = event->action; 273 change.event_action = event->action;
274 AddChange(change); 274 AddChange(change);
275 } 275 }
276 276
277 void TestChangeTracker::OnWindowSharedPropertyChanged(Id view_id, 277 void TestChangeTracker::OnWindowSharedPropertyChanged(Id window_id,
278 String name, 278 String name,
279 Array<uint8_t> data) { 279 Array<uint8_t> data) {
280 Change change; 280 Change change;
281 change.type = CHANGE_TYPE_PROPERTY_CHANGED; 281 change.type = CHANGE_TYPE_PROPERTY_CHANGED;
282 change.view_id = view_id; 282 change.window_id = window_id;
283 change.property_key = name; 283 change.property_key = name;
284 if (data.is_null()) 284 if (data.is_null())
285 change.property_value = "NULL"; 285 change.property_value = "NULL";
286 else 286 else
287 change.property_value = data.To<std::string>(); 287 change.property_value = data.To<std::string>();
288 AddChange(change); 288 AddChange(change);
289 } 289 }
290 290
291 void TestChangeTracker::OnWindowFocused(Id view_id) { 291 void TestChangeTracker::OnWindowFocused(Id window_id) {
292 Change change; 292 Change change;
293 change.type = CHANGE_TYPE_FOCUSED; 293 change.type = CHANGE_TYPE_FOCUSED;
294 change.view_id = view_id; 294 change.window_id = window_id;
295 AddChange(change); 295 AddChange(change);
296 } 296 }
297 297
298 void TestChangeTracker::DelegateEmbed(const String& url) { 298 void TestChangeTracker::DelegateEmbed(const String& url) {
299 Change change; 299 Change change;
300 change.type = CHANGE_TYPE_DELEGATE_EMBED; 300 change.type = CHANGE_TYPE_DELEGATE_EMBED;
301 change.embed_url = url; 301 change.embed_url = url;
302 AddChange(change); 302 AddChange(change);
303 } 303 }
304 304
305 void TestChangeTracker::AddChange(const Change& change) { 305 void TestChangeTracker::AddChange(const Change& change) {
306 changes_.push_back(change); 306 changes_.push_back(change);
307 if (delegate_) 307 if (delegate_)
308 delegate_->OnChangeAdded(); 308 delegate_->OnChangeAdded();
309 } 309 }
310 310
311 TestView::TestView() {} 311 TestView::TestView() {}
312 312
313 TestView::~TestView() {} 313 TestView::~TestView() {}
314 314
315 std::string TestView::ToString() const { 315 std::string TestView::ToString() const {
316 return base::StringPrintf("view=%s parent=%s", 316 return base::StringPrintf("view=%s parent=%s",
317 ViewIdToString(view_id).c_str(), 317 ViewIdToString(window_id).c_str(),
318 ViewIdToString(parent_id).c_str()); 318 ViewIdToString(parent_id).c_str());
319 } 319 }
320 320
321 std::string TestView::ToString2() const { 321 std::string TestView::ToString2() const {
322 return base::StringPrintf( 322 return base::StringPrintf(
323 "view=%s parent=%s visible=%s drawn=%s", ViewIdToString(view_id).c_str(), 323 "view=%s parent=%s visible=%s drawn=%s",
324 ViewIdToString(parent_id).c_str(), visible ? "true" : "false", 324 ViewIdToString(window_id).c_str(), ViewIdToString(parent_id).c_str(),
325 drawn ? "true" : "false"); 325 visible ? "true" : "false", drawn ? "true" : "false");
326 } 326 }
327 327
328 } // namespace mus 328 } // namespace mus
OLDNEW
« no previous file with comments | « components/mus/ws/test_change_tracker.h ('k') | components/mus/ws/view_manager_client_apptest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698