summaryrefslogtreecommitdiffstats
path: root/ui/aura/window_event_dispatcher.cc
diff options
context:
space:
mode:
authortdresser@chromium.org <tdresser@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-03 21:35:06 +0000
committertdresser@chromium.org <tdresser@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-03 21:35:06 +0000
commitd1d067abf68561a23f8bdff954d90fbab73b420a (patch)
treee6bfec8daf95b7dc097cb68a5be1ab32ed530ea6 /ui/aura/window_event_dispatcher.cc
parent5b597e18292ed8551ad694258cbd3542bdb134cd (diff)
downloadchromium_src-d1d067abf68561a23f8bdff954d90fbab73b420a.zip
chromium_src-d1d067abf68561a23f8bdff954d90fbab73b420a.tar.gz
chromium_src-d1d067abf68561a23f8bdff954d90fbab73b420a.tar.bz2
CHECK that ui::Windows being destroyed have been hidden if necessary
There have been a bunch of crashes due to the GestureRecognizer targeting touches to windows that have been destroyed. When a window is hidden (in WindowEventDispatcher::OnWindowHidden), all references to that window are removed from the GestureRecognizer. It looks like some windows with touches targeted to them are being destroyed without being hidden first. This change CHECKs that this never occurs. BUG=342040 Review URL: https://codereview.chromium.org/224063002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261531 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/aura/window_event_dispatcher.cc')
-rw-r--r--ui/aura/window_event_dispatcher.cc13
1 files changed, 1 insertions, 12 deletions
diff --git a/ui/aura/window_event_dispatcher.cc b/ui/aura/window_event_dispatcher.cc
index 5489596..36d8e6c 100644
--- a/ui/aura/window_event_dispatcher.cc
+++ b/ui/aura/window_event_dispatcher.cc
@@ -307,7 +307,7 @@ void WindowEventDispatcher::OnWindowHidden(Window* invisible,
if (invisible->Contains(old_dispatch_target_))
old_dispatch_target_ = NULL;
- CleanupGestureState(invisible);
+ invisible->CleanupGestureState();
// Do not clear the capture, and the |event_dispatch_target_| if the
// window is moving across hosts, because the target itself is actually still
@@ -333,17 +333,6 @@ void WindowEventDispatcher::OnWindowHidden(Window* invisible,
}
}
-void WindowEventDispatcher::CleanupGestureState(Window* window) {
- ui::GestureRecognizer::Get()->CancelActiveTouches(window);
- ui::GestureRecognizer::Get()->CleanupStateForConsumer(window);
- const Window::Windows& windows = window->children();
- for (Window::Windows::const_iterator iter = windows.begin();
- iter != windows.end();
- ++iter) {
- CleanupGestureState(*iter);
- }
-}
-
Window* WindowEventDispatcher::GetGestureTarget(ui::GestureEvent* event) {
Window* target = NULL;
if (!event->IsEndingEvent()) {