| OLD | NEW |
| 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 Loading... |
| 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 |
| OLD | NEW |