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

Unified Diff: ash/wm/overview/window_selector.cc

Issue 83363004: Add checks to verify that all observed_windows_ are targeted in overview windows_. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/overview/window_selector.cc
diff --git a/ash/wm/overview/window_selector.cc b/ash/wm/overview/window_selector.cc
index d9903da69c51d9925d578a3cc58028ea9021f37c..79d428f2040cc170a41cd8b9b93f2f734b1d9ea0 100644
--- a/ash/wm/overview/window_selector.cc
+++ b/ash/wm/overview/window_selector.cc
@@ -256,6 +256,7 @@ WindowSelector::WindowSelector(const WindowList& windows,
std::vector<WindowSelectorPanels*> panels_items;
for (size_t i = 0; i < windows.size(); ++i) {
+ WindowSelectorItem* item = NULL;
if (windows[i] != restore_focus_window_)
windows[i]->AddObserver(this);
observed_windows_.insert(windows[i]);
@@ -276,9 +277,13 @@ WindowSelector::WindowSelector(const WindowList& windows,
panels_item = *iter;
}
panels_item->AddWindow(windows[i]);
+ item = panels_item;
} else {
- windows_.push_back(new WindowSelectorWindow(windows[i]));
+ item = new WindowSelectorWindow(windows[i]);
+ windows_.push_back(item);
}
+ // Verify that the window has been added to an item in overview.
+ CHECK(item->TargetedWindow(windows[i]));
}
UMA_HISTOGRAM_COUNTS_100("Ash.WindowSelector.Items", windows_.size());
@@ -396,8 +401,11 @@ void WindowSelector::OnWindowDestroying(aura::Window* window) {
window->RemoveObserver(this);
if (window == restore_focus_window_)
restore_focus_window_ = NULL;
- if (iter == windows_.end())
+ if (iter == windows_.end()) {
+ CHECK(std::find(observed_windows_.begin(),
+ observed_windows_.end(), window) == observed_windows_.end());
return;
+ }
observed_windows_.erase(window);
flackr 2013/11/22 22:42:34 I could alternately move this line up before the e
(*iter)->RemoveWindow(window);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698