summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authorflackr@chromium.org <flackr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-23 21:08:43 +0000
committerflackr@chromium.org <flackr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-23 21:08:43 +0000
commitadb941ead83e0782c572ce29aea19baa3b1da9ff (patch)
tree28ccc32981668d07c43f0c769b079b0f99531c51 /ash
parenta17773f05c7ef9272eefc04e814a9a185221a3e3 (diff)
downloadchromium_src-adb941ead83e0782c572ce29aea19baa3b1da9ff.zip
chromium_src-adb941ead83e0782c572ce29aea19baa3b1da9ff.tar.gz
chromium_src-adb941ead83e0782c572ce29aea19baa3b1da9ff.tar.bz2
Add checks to verify that all observed_windows_ are targeted in overview windows_.
BUG=322119 Review URL: https://codereview.chromium.org/83363004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236976 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/wm/overview/window_selector.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/ash/wm/overview/window_selector.cc b/ash/wm/overview/window_selector.cc
index d9903da..79d428f 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);
(*iter)->RemoveWindow(window);