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

Issue 7720012: Moves ownership of MenuItemView to MenuRunner as well as responbility (Closed)

Created:
9 years, 4 months ago by sky
Modified:
9 years, 4 months ago
CC:
chromium-reviews, jennb, nkostylev+cc_chromium.org, Erik does not do reviews, mihaip+watch_chromium.org, prasadt, dcheng, Dmitry Titov, Aaron Boodman, jianli, davemoore+watch_chromium.org, dhollowa
Visibility:
Public.

Description

Moves ownership of MenuItemView to MenuRunner as well as responbility for showing (running) the menu entirely to MenuRunner. This way I can guarantee if MenuRunner is deleted, the related menu classes aren't deleted until the nested message loop completes. BUG=57890 TEST=thorougly test all menus in chrome: bookmarks, wrench menu, context menu on page, extension menus... R=ben@chromium.org Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=98179

Patch Set 1 #

Patch Set 2 : Tweaks #

Patch Set 3 : Make sure folks check return value. #

Patch Set 4 : Fix chromeos #

Patch Set 5 : Fix unit test #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+793 lines, -568 lines) Patch
M chrome/browser/chromeos/frame/browser_view.h View 2 chunks +2 lines, -1 line 0 comments Download
M chrome/browser/chromeos/frame/browser_view.cc View 1 2 3 3 chunks +14 lines, -10 lines 0 comments Download
M chrome/browser/chromeos/login/language_switch_menu.h View 2 chunks +6 lines, -2 lines 0 comments Download
M chrome/browser/chromeos/login/language_switch_menu.cc View 1 2 3 3 chunks +7 lines, -3 lines 0 comments Download
M chrome/browser/chromeos/notifications/balloon_view.cc View 1 2 3 2 chunks +8 lines, -7 lines 0 comments Download
M chrome/browser/chromeos/status/clock_menu_button.h View 2 chunks +2 lines, -4 lines 0 comments Download
M chrome/browser/chromeos/status/clock_menu_button.cc View 1 2 3 3 chunks +26 lines, -23 lines 0 comments Download
M chrome/browser/chromeos/status/input_method_menu.h View 2 chunks +3 lines, -1 line 0 comments Download
M chrome/browser/chromeos/status/input_method_menu.cc View 1 2 3 4 chunks +8 lines, -3 lines 0 comments Download
M chrome/browser/chromeos/status/memory_menu_button.h View 2 chunks +3 lines, -6 lines 0 comments Download
M chrome/browser/chromeos/status/memory_menu_button.cc View 1 2 3 2 chunks +20 lines, -22 lines 0 comments Download
M chrome/browser/chromeos/status/network_menu.h View 2 chunks +3 lines, -1 line 0 comments Download
M chrome/browser/chromeos/status/network_menu.cc View 1 2 3 5 chunks +10 lines, -7 lines 1 comment Download
M chrome/browser/chromeos/status/power_menu_button.h View 2 chunks +6 lines, -2 lines 0 comments Download
M chrome/browser/chromeos/status/power_menu_button.cc View 1 2 3 5 chunks +19 lines, -17 lines 0 comments Download
M chrome/browser/ui/panels/panel_browser_frame_view.h View 2 chunks +4 lines, -1 line 0 comments Download
M chrome/browser/ui/panels/panel_browser_frame_view.cc View 1 2 3 chunks +8 lines, -5 lines 0 comments Download
M chrome/browser/ui/views/bookmarks/bookmark_context_menu.h View 3 chunks +7 lines, -3 lines 0 comments Download
M chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc View 1 2 3 chunks +8 lines, -4 lines 0 comments Download
M chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h View 1 3 chunks +3 lines, -5 lines 0 comments Download
M chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc View 1 2 3 chunks +10 lines, -16 lines 0 comments Download
M chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h View 1 chunk +0 lines, -7 lines 0 comments Download
M chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc View 4 chunks +50 lines, -58 lines 0 comments Download
M chrome/browser/ui/views/browser_actions_container.cc View 1 2 2 chunks +7 lines, -5 lines 0 comments Download
M chrome/browser/ui/views/compact_nav/compact_options_bar.h View 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/ui/views/compact_nav/compact_options_bar.cc View 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.h View 2 chunks +6 lines, -2 lines 0 comments Download
M chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc View 1 2 4 chunks +14 lines, -9 lines 0 comments Download
M chrome/browser/ui/views/infobars/after_translate_infobar.cc View 1 2 2 chunks +7 lines, -4 lines 0 comments Download
M chrome/browser/ui/views/infobars/before_translate_infobar.cc View 1 2 2 chunks +6 lines, -4 lines 0 comments Download
M chrome/browser/ui/views/infobars/extension_infobar.cc View 1 2 2 chunks +6 lines, -5 lines 0 comments Download
M chrome/browser/ui/views/location_bar/page_action_image_view.cc View 1 2 2 chunks +6 lines, -4 lines 0 comments Download
M chrome/browser/ui/views/menu_item_view_test.cc View 1 2 14 chunks +24 lines, -20 lines 0 comments Download
M chrome/browser/ui/views/menu_model_adapter_test.cc View 1 2 6 chunks +15 lines, -11 lines 0 comments Download
M chrome/browser/ui/views/tab_contents/render_view_context_menu_views.cc View 1 2 1 chunk +5 lines, -3 lines 0 comments Download
M chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc View 1 2 4 chunks +17 lines, -15 lines 0 comments Download
M chrome/browser/ui/views/toolbar_view.h View 2 chunks +1 line, -2 lines 0 comments Download
M chrome/browser/ui/views/toolbar_view.cc View 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/ui/views/wrench_menu.h View 4 chunks +7 lines, -9 lines 0 comments Download
M chrome/browser/ui/views/wrench_menu.cc View 1 2 3 chunks +19 lines, -14 lines 0 comments Download
M views/controls/button/button_dropdown.cc View 1 2 2 chunks +14 lines, -12 lines 0 comments Download
M views/controls/combobox/native_combobox_views.h View 2 chunks +3 lines, -2 lines 0 comments Download
M views/controls/combobox/native_combobox_views.cc View 1 2 5 chunks +14 lines, -9 lines 0 comments Download
M views/controls/menu/menu_controller.h View 1 6 chunks +15 lines, -9 lines 0 comments Download
M views/controls/menu/menu_controller.cc View 1 8 chunks +19 lines, -11 lines 0 comments Download
A views/controls/menu/menu_controller_delegate.h View 1 1 chunk +41 lines, -0 lines 0 comments Download
M views/controls/menu/menu_item_view.h View 1 8 chunks +16 lines, -30 lines 0 comments Download
M views/controls/menu/menu_item_view.cc View 1 5 chunks +5 lines, -112 lines 0 comments Download
M views/controls/menu/menu_model_adapter.h View 1 chunk +4 lines, -0 lines 0 comments Download
M views/controls/menu/menu_model_adapter.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M views/controls/menu/menu_model_adapter_unittest.cc View 1 2 3 4 3 chunks +7 lines, -4 lines 0 comments Download
M views/controls/menu/menu_runner.h View 1 2 3 2 chunks +60 lines, -18 lines 0 comments Download
M views/controls/menu/menu_runner.cc View 1 2 2 chunks +207 lines, -33 lines 0 comments Download
M views/controls/textfield/native_textfield_views.h View 2 chunks +2 lines, -2 lines 0 comments Download
M views/controls/textfield/native_textfield_views.cc View 1 2 3 chunks +9 lines, -8 lines 0 comments Download
M views/views.gyp View 1 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 7 (0 generated)
sky
9 years, 4 months ago (2011-08-23 22:43:14 UTC) #1
Ben Goodger (Google)
LGTM.
9 years, 4 months ago (2011-08-23 23:20:46 UTC) #2
sky
I've changed it so RunMenuAt returns a status indicating if it was deleted. I updated ...
9 years, 4 months ago (2011-08-24 00:20:09 UTC) #3
Ben Goodger (Google)
LGTM still.
9 years, 4 months ago (2011-08-24 23:05:06 UTC) #4
Dmitry Polukhin
It looks like this CL broke network menu on Chrome OS. Chrome crashes every time ...
9 years, 4 months ago (2011-08-25 08:53:26 UTC) #5
Dmitry Polukhin
http://codereview.chromium.org/7720012/diff/7005/chrome/browser/chromeos/status/network_menu.cc File chrome/browser/chromeos/status/network_menu.cc (right): http://codereview.chromium.org/7720012/diff/7005/chrome/browser/chromeos/status/network_menu.cc#newcode1079 chrome/browser/chromeos/status/network_menu.cc:1079: if (menu_runner_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(), It looks like menu_runner_ is not set ...
9 years, 4 months ago (2011-08-25 09:01:45 UTC) #6
Nikita (slow)
9 years, 4 months ago (2011-08-25 12:02:10 UTC) #7
File an issue to have basic NetworkMenu browser_test for linux_chromeos that
would have caught this regression
http://code.google.com/p/chromium-os/issues/detail?id=19653

Powered by Google App Engine
This is Rietveld 408576698