diff options
author | flackr@chromium.org <flackr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-23 21:08:43 +0000 |
---|---|---|
committer | flackr@chromium.org <flackr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-23 21:08:43 +0000 |
commit | adb941ead83e0782c572ce29aea19baa3b1da9ff (patch) | |
tree | 28ccc32981668d07c43f0c769b079b0f99531c51 /ash | |
parent | a17773f05c7ef9272eefc04e814a9a185221a3e3 (diff) | |
download | chromium_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.cc | 12 |
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); |