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

Unified Diff: chrome/browser/extensions/extension_uninstall_dialog.cc

Issue 382133003: Refactored ExtensionUninstallDialog to take a NativeWindow instead of a Browser (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Small change: Display the default icon while the real icon is being loaded 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_uninstall_dialog.cc
diff --git a/chrome/browser/extensions/extension_uninstall_dialog.cc b/chrome/browser/extensions/extension_uninstall_dialog.cc
index 467a3527b11b99d384404b7a171afa0ac6acecfd..96c628e1283f87e17dd4b09b330d78563631c9d5 100644
--- a/chrome/browser/extensions/extension_uninstall_dialog.cc
+++ b/chrome/browser/extensions/extension_uninstall_dialog.cc
@@ -45,20 +45,14 @@ SkBitmap GetDefaultIconBitmapForMaxScaleFactor(bool is_app) {
ExtensionUninstallDialog::ExtensionUninstallDialog(
Profile* profile,
- Browser* browser,
+ gfx::NativeWindow parent,
ExtensionUninstallDialog::Delegate* delegate)
: profile_(profile),
- browser_(browser),
+ parent_(parent),
delegate_(delegate),
extension_(NULL),
triggering_extension_(NULL),
- state_(kImageIsLoading),
ui_loop_(base::MessageLoop::current()) {
- if (browser) {
- registrar_.Add(this,
- chrome::NOTIFICATION_BROWSER_CLOSED,
- content::Source<Browser>(browser));
- }
}
ExtensionUninstallDialog::~ExtensionUninstallDialog() {
@@ -82,9 +76,9 @@ void ExtensionUninstallDialog::ConfirmUninstall(const Extension* extension) {
extension_, icon_size, ExtensionIconSet::MATCH_BIGGER);
// Load the image asynchronously. The response will be sent to OnImageLoaded.
- state_ = kImageIsLoading;
ImageLoader* loader = ImageLoader::Get(profile_);
+ SetIcon(gfx::Image());
std::vector<ImageLoader::ImageRepresentation> images_list;
images_list.push_back(ImageLoader::ImageRepresentation(
image,
@@ -96,6 +90,7 @@ void ExtensionUninstallDialog::ConfirmUninstall(const Extension* extension) {
base::Bind(&ExtensionUninstallDialog::OnImageLoaded,
AsWeakPtr(),
extension_->id()));
+ Show();
}
void ExtensionUninstallDialog::SetIcon(const gfx::Image& image) {
@@ -123,30 +118,7 @@ void ExtensionUninstallDialog::OnImageLoaded(const std::string& extension_id,
}
SetIcon(image);
-
- // Show the dialog unless the browser has been closed while we were waiting
- // for the image.
- DCHECK(state_ == kImageIsLoading || state_ == kBrowserIsClosing);
- if (state_ == kImageIsLoading) {
- state_ = kDialogIsShowing;
- Show();
- }
-}
-
-void ExtensionUninstallDialog::Observe(
- int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- DCHECK(type == chrome::NOTIFICATION_BROWSER_CLOSED);
-
- browser_ = NULL;
- // If the browser is closed while waiting for the image, we need to send a
- // "cancel" event here, because there will not be another opportunity to
- // notify the delegate of the cancellation as we won't open the dialog.
- if (state_ == kImageIsLoading) {
- state_ = kBrowserIsClosing;
- delegate_->ExtensionUninstallCanceled();
- }
+ RefreshIcon();
tapted 2014/07/24 00:35:36 I think you can just move the `Show()` down here,
sashab 2014/07/24 03:03:35 Done. The original reason I did it this way was to
}
std::string ExtensionUninstallDialog::GetHeadingText() {

Powered by Google App Engine
This is Rietveld 408576698