Add synchronous Widget closing event
commit84685520948dcbf750736faa3e2bcc9dc430e861
authorwittman@chromium.org <wittman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Tue, 5 Feb 2013 22:15:35 +0000 (5 22:15 +0000)
committerwittman@chromium.org <wittman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Tue, 5 Feb 2013 22:15:35 +0000 (5 22:15 +0000)
tree4bfc4086238f2f94355a689c142c5543b9664a09
parentf84973412773063d475d1b9f91540e6f6fa6e4da
Add synchronous Widget closing event

Adds a WidgetObserver event that is guaranteed to be invoked synchronously
when a Widget is requested to close.  Rename the existing event, which
is invoked at Widget destruction time, typically via a task on the event
loop, to OnWidgetDestroying.

The new event will be used in Views-specific WebContentsModalDialogManager
functionality to get close events for Widgets, so that we don't risk
adverse interleaving of Widget close events with other relevant events
(e.g. IPC).  This will allow us to avoids test flakiness observed
in https://codereview.chromium.org/12045037 due to event races in
PrintPreviewTest.PrintCommands

BUG=157161

Review URL: https://chromiumcodereview.appspot.com/12089061

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180796 0039d316-1c4b-4281-b951-d872f2087c98
54 files changed:
ash/desktop_background/desktop_background_view.cc
ash/desktop_background/desktop_background_widget_controller.cc
ash/desktop_background/desktop_background_widget_controller.h
ash/launcher/overflow_bubble.cc
ash/launcher/overflow_bubble.h
ash/magnifier/partial_magnification_controller.cc
ash/magnifier/partial_magnification_controller.h
ash/system/tray/tray_bubble_wrapper.cc
ash/system/tray/tray_bubble_wrapper.h
ash/system/web_notification/web_notification_tray.cc
ash/system/web_notification/web_notification_tray.h
ash/tooltips/tooltip_controller.cc
ash/touch/touch_observer_hud.cc
ash/touch/touch_observer_hud.h
ash/wm/app_list_controller.cc
ash/wm/app_list_controller.h
ash/wm/gestures/tray_gesture_handler.cc
ash/wm/gestures/tray_gesture_handler.h
ash/wm/maximize_bubble_controller.cc
ash/wm/partial_screenshot_view.cc
chrome/browser/chromeos/login/captive_portal_window_proxy.cc
chrome/browser/chromeos/login/captive_portal_window_proxy.h
chrome/browser/chromeos/login/webui_screen_locker.cc
chrome/browser/chromeos/login/webui_screen_locker.h
chrome/browser/ui/views/browser_actions_container.cc
chrome/browser/ui/views/browser_actions_container.h
chrome/browser/ui/views/frame/app_non_client_frame_view_ash.cc
chrome/browser/ui/views/location_bar/content_setting_image_view.cc
chrome/browser/ui/views/location_bar/content_setting_image_view.h
chrome/browser/ui/views/location_bar/open_pdf_in_reader_view.cc
chrome/browser/ui/views/location_bar/open_pdf_in_reader_view.h
chrome/browser/ui/views/location_bar/page_action_image_view.cc
chrome/browser/ui/views/location_bar/page_action_image_view.h
chrome/browser/ui/views/message_center/notification_bubble_wrapper_win.cc
chrome/browser/ui/views/message_center/notification_bubble_wrapper_win.h
chrome/browser/ui/views/panels/panel_stack_view.cc
chrome/browser/ui/views/panels/panel_stack_view.h
chrome/browser/ui/views/panels/panel_view.cc
chrome/browser/ui/views/panels/panel_view.h
chrome/browser/ui/views/website_settings/website_settings_popup_view.cc
chrome/browser/ui/views/website_settings/website_settings_popup_view.h
ui/app_list/views/app_list_view.cc
ui/app_list/views/app_list_view.h
ui/views/bubble/bubble_delegate.cc
ui/views/bubble/bubble_delegate.h
ui/views/controls/menu/menu_controller.cc
ui/views/controls/menu/menu_controller.h
ui/views/test/child_modal_window.cc
ui/views/test/child_modal_window.h
ui/views/test/test_widget_observer.cc
ui/views/test/test_widget_observer.h
ui/views/widget/widget.cc
ui/views/widget/widget_observer.h
ui/views/widget/widget_unittest.cc