|
Fix crashes related to the extension uninstall dialog.
The uninstall prompt is owned by the settings page (the dialog's delegate), which gets destroyed when the user navigates to a new page. We need to make sure we invalidate pointers to the settings page when this occurs.
This adds an ExtensionUninstallDialog with platform specific implementations.
GTK: The settings page owns the ExtensionUninstallDialogGtk, which closes the GTK prompt when being destroyed.
VIEWS: The views framework is a bit more convoluted because views owns the prompt's views::View. We have two classes: ExtensionUninstallDialogDelegateView owned by views, and ExtensionUninstallDialogViews owned by the settings page. If the user accepts or denies the prompt, we proxy the events through ExtensionUninstallDialogViews so we can invalidate pointers back to the views widget. If the settings page is destroyed, the ExtensionUninstallDialogViews closes the views widget after invalidating pointers back to the settings page.
COCOA: You can't navigate away from the page when the prompt is open, so the dialog can't outlive its delegate.
BUG= 75011
TEST=see bug.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=102351
Total comments: 4
Total comments: 3
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+361 lines, -229 lines) |
Patch |
 |
M |
chrome/browser/extensions/extension_context_menu_model.h
|
View
|
1
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/extensions/extension_context_menu_model.cc
|
View
|
1
|
3 chunks |
+5 lines, -4 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/extensions/extension_install_ui.h
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
chrome/browser/extensions/extension_uninstall_dialog.h
|
View
|
1
2
3
|
2 chunks |
+30 lines, -25 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/extensions/extension_uninstall_dialog.cc
|
View
|
1
2
3
|
2 chunks |
+9 lines, -11 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/extensions/extensions_ui.h
|
View
|
1
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/extensions/extensions_ui.cc
|
View
|
1
|
3 chunks |
+4 lines, -4 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm
|
View
|
1
|
1 chunk |
+5 lines, -4 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/cocoa/extensions/extension_uninstall_dialog_cocoa.mm
|
View
|
1
2
|
2 chunks |
+34 lines, -10 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/gtk/extensions/extension_uninstall_dialog_gtk.cc
|
View
|
1
|
2 chunks |
+66 lines, -40 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/panels/panel_settings_menu_model.h
|
View
|
1
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/panels/panel_settings_menu_model.cc
|
View
|
1
|
3 chunks |
+5 lines, -5 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc
|
View
|
1
|
2 chunks |
+177 lines, -99 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/webui/ntp/app_launcher_handler.h
|
View
|
1
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/webui/ntp/app_launcher_handler.cc
|
View
|
1
|
5 chunks |
+7 lines, -7 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/webui/options/extension_settings_handler.h
|
View
|
1
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/webui/options/extension_settings_handler.cc
|
View
|
1
|
3 chunks |
+4 lines, -4 lines |
0 comments
|
Download
|
 |
M |
views/window/dialog_delegate.h
|
View
|
|
1 chunk |
+4 lines, -5 lines |
0 comments
|
Download
|
Total messages: 11 (0 generated)
|