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

Side by Side Diff: chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc

Issue 412483006: Fixed bug where Uninstall dialog forces its own widget to close twice (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/extension_uninstall_dialog.h" 5 #include "chrome/browser/extensions/extension_uninstall_dialog.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 Browser* browser, 114 Browser* browser,
115 extensions::ExtensionUninstallDialog::Delegate* delegate) 115 extensions::ExtensionUninstallDialog::Delegate* delegate)
116 : extensions::ExtensionUninstallDialog(profile, browser, delegate), 116 : extensions::ExtensionUninstallDialog(profile, browser, delegate),
117 view_(NULL), 117 view_(NULL),
118 show_in_app_list_(!browser) { 118 show_in_app_list_(!browser) {
119 } 119 }
120 120
121 ExtensionUninstallDialogViews::~ExtensionUninstallDialogViews() { 121 ExtensionUninstallDialogViews::~ExtensionUninstallDialogViews() {
122 // Close the widget (the views framework will delete view_). 122 // Close the widget (the views framework will delete view_).
123 if (view_) { 123 if (view_) {
124 // This can only happen if the dialog is destroyed by some external means,
125 // and neither of ExtensionUninstallAccepted() and
126 // ExtensionUninstallCanceled() have been called. In this case, the dialog
127 // is probably already being closed, but call Close() just to make sure.
124 view_->DialogDestroyed(); 128 view_->DialogDestroyed();
125 view_->GetWidget()->CloseNow(); 129 view_->GetWidget()->Close();
sky 2014/07/23 15:29:37 If you do this, it means the WidgetDelegate/Dialog
sashab 2014/08/06 03:09:00 If that's true, then I don't think this destructor
126 } 130 }
127 } 131 }
128 132
129 void ExtensionUninstallDialogViews::Show() { 133 void ExtensionUninstallDialogViews::Show() {
130 // TODO(tapted): A true |desktop_type| needs to be passed in at creation time 134 // TODO(tapted): A true |desktop_type| needs to be passed in at creation time
131 // to remove reliance on GetActiveDesktop(). http://crbug.com/308360 135 // to remove reliance on GetActiveDesktop(). http://crbug.com/308360
132 gfx::NativeWindow parent = show_in_app_list_ ? 136 gfx::NativeWindow parent = show_in_app_list_ ?
133 AppListService::Get(chrome::GetActiveDesktop())->GetAppListWindow() : 137 AppListService::Get(chrome::GetActiveDesktop())->GetAppListWindow() :
134 GetParent(browser_); 138 GetParent(browser_);
135 if (browser_ && !parent) { 139 if (browser_ && !parent) {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 246
243 } // namespace 247 } // namespace
244 248
245 // static 249 // static
246 extensions::ExtensionUninstallDialog* 250 extensions::ExtensionUninstallDialog*
247 extensions::ExtensionUninstallDialog::Create(Profile* profile, 251 extensions::ExtensionUninstallDialog::Create(Profile* profile,
248 Browser* browser, 252 Browser* browser,
249 Delegate* delegate) { 253 Delegate* delegate) {
250 return new ExtensionUninstallDialogViews(profile, browser, delegate); 254 return new ExtensionUninstallDialogViews(profile, browser, delegate);
251 } 255 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698