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

Side by Side Diff: ui/aura/window.cc

Issue 1153633006: Added UMA statistics for changing the active window via click or touch events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Polish and added unit tests. Created 5 years, 6 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/aura/window.h" 5 #include "ui/aura/window.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 user_data_(NULL), 195 user_data_(NULL),
196 ignore_events_(false), 196 ignore_events_(false),
197 // Don't notify newly added observers during notification. This causes 197 // Don't notify newly added observers during notification. This causes
198 // problems for code that adds an observer as part of an observer 198 // problems for code that adds an observer as part of an observer
199 // notification (such as the workspace code). 199 // notification (such as the workspace code).
200 observers_(ObserverList<WindowObserver>::NOTIFY_EXISTING_ONLY) { 200 observers_(ObserverList<WindowObserver>::NOTIFY_EXISTING_ONLY) {
201 set_target_handler(delegate_); 201 set_target_handler(delegate_);
202 } 202 }
203 203
204 Window::~Window() { 204 Window::~Window() {
205 if (layer()->owner() == this) 205 if (layer()) {
danakj 2015/06/03 22:02:50 Not having a layer means you made a Window but did
206 layer()->CompleteAllAnimations(); 206 if (layer()->owner() == this)
207 layer()->SuppressPaint(); 207 layer()->CompleteAllAnimations();
208 layer()->SuppressPaint();
209 }
208 210
209 // Let the delegate know we're in the processing of destroying. 211 // Let the delegate know we're in the processing of destroying.
210 if (delegate_) 212 if (delegate_)
211 delegate_->OnWindowDestroying(this); 213 delegate_->OnWindowDestroying(this);
212 FOR_EACH_OBSERVER(WindowObserver, observers_, OnWindowDestroying(this)); 214 FOR_EACH_OBSERVER(WindowObserver, observers_, OnWindowDestroying(this));
213 215
214 // While we are being destroyed, our target handler may also be in the 216 // While we are being destroyed, our target handler may also be in the
215 // process of destruction or already destroyed, so do not forward any 217 // process of destruction or already destroyed, so do not forward any
216 // input events at the ui::EP_TARGET phase. 218 // input events at the ui::EP_TARGET phase.
217 set_target_handler(nullptr); 219 set_target_handler(nullptr);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 255
254 // Clear properties. 256 // Clear properties.
255 for (std::map<const void*, Value>::const_iterator iter = prop_map_.begin(); 257 for (std::map<const void*, Value>::const_iterator iter = prop_map_.begin();
256 iter != prop_map_.end(); 258 iter != prop_map_.end();
257 ++iter) { 259 ++iter) {
258 if (iter->second.deallocator) 260 if (iter->second.deallocator)
259 (*iter->second.deallocator)(iter->second.value); 261 (*iter->second.deallocator)(iter->second.value);
260 } 262 }
261 prop_map_.clear(); 263 prop_map_.clear();
262 264
263 // The layer will either be destroyed by |layer_owner_|'s dtor, or by whoever 265 if (layer()) {
264 // acquired it. 266 // The layer will either be destroyed by |layer_owner_|'s dtor, or by
265 layer()->set_delegate(NULL); 267 // whoever acquired it.
268 layer()->set_delegate(NULL);
269 }
266 DestroyLayer(); 270 DestroyLayer();
267 } 271 }
268 272
269 void Window::Init(ui::LayerType layer_type) { 273 void Window::Init(ui::LayerType layer_type) {
270 SetLayer(new ui::Layer(layer_type)); 274 SetLayer(new ui::Layer(layer_type));
271 layer()->SetVisible(false); 275 layer()->SetVisible(false);
272 layer()->set_delegate(this); 276 layer()->set_delegate(this);
273 UpdateLayerName(); 277 UpdateLayerName();
274 layer()->SetFillsBoundsOpaquely(!transparent_); 278 layer()->SetFillsBoundsOpaquely(!transparent_);
275 Env::GetInstance()->NotifyWindowInitialized(this); 279 Env::GetInstance()->NotifyWindowInitialized(this);
(...skipping 1125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1401 return window; 1405 return window;
1402 if (offset) 1406 if (offset)
1403 *offset += window->bounds().OffsetFromOrigin(); 1407 *offset += window->bounds().OffsetFromOrigin();
1404 } 1408 }
1405 if (offset) 1409 if (offset)
1406 *offset = gfx::Vector2d(); 1410 *offset = gfx::Vector2d();
1407 return NULL; 1411 return NULL;
1408 } 1412 }
1409 1413
1410 } // namespace aura 1414 } // namespace aura
OLDNEW
« no previous file with comments | « tools/metrics/histograms/histograms.xml ('k') | ui/views/controls/menu/menu_message_loop_aura.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698