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

Unified Diff: chrome/browser/extensions/extension_generic_dialog.h

Issue 6721013: extensions: Refactor ExtensionInstallUI class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sort gypi Created 9 years, 9 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_generic_dialog.h
diff --git a/chrome/browser/extensions/extension_generic_dialog.h b/chrome/browser/extensions/extension_generic_dialog.h
new file mode 100644
index 0000000000000000000000000000000000000000..1c1cf77b8db8759859f2790a5e630826c3a833be
--- /dev/null
+++ b/chrome/browser/extensions/extension_generic_dialog.h
@@ -0,0 +1,76 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_GENERIC_DIALOG_H_
+#define CHROME_BROWSER_EXTENSIONS_EXTENSION_GENERIC_DIALOG_H_
+#pragma once
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "chrome/browser/extensions/image_loading_tracker.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+
+class MessageLoop;
+class Profile;
+
+class ExtensionGenericDialog : public ImageLoadingTracker::Observer {
+ public:
+ class Delegate {
+ public:
+ // We call this method to signal that the uninstallation should continue.
+ virtual void ExtensionDialogAccepted() = 0;
+
+ // We call this method to signal that the uninstallation should stop.
+ virtual void ExtensionDialogCanceled() = 0;
+
+ protected:
+ virtual ~Delegate() {}
+ };
+
+ explicit ExtensionGenericDialog(Profile* profile);
+ virtual ~ExtensionGenericDialog();
+
+ // This is called by the extensions management page to verify whether the
+ // uninstallation should proceed.
+ // Starts the process of showing a confirmation UI, which is split into two.
+ // 1) Set off a 'load icon' task.
+ // 2) Handle the load icon response and show the UI (OnImageLoaded).
+ void ConfirmUninstall(Delegate* delegate, const Extension* extension);
+
+ private:
+ // Creates an appropriate ExtensionGenericDialog for the platform.
+ static void Show(Profile* profile,
Aaron Boodman 2011/03/24 19:22:03 Currently this class is called ExtensionGenericDia
tfarina 2011/03/24 21:39:47 I think at this moment makes more sense to call it
+ Delegate* delegate,
+ const Extension* extension,
+ SkBitmap* icon);
+
+ // Sets the icon that will be used in any UI. If |icon| is NULL, or contains
+ // an empty bitmap, then a default icon will be used instead.
+ void SetIcon(SkBitmap* icon);
+
+ // ImageLoadingTracker::Observer:
+ virtual void OnImageLoaded(SkBitmap* image,
+ const ExtensionResource& resource,
+ int index) OVERRIDE;
+
+ Profile* profile_;
+ MessageLoop* ui_loop_;
+
+ // The delegate we will call Accepted/Canceled on after confirmation UI.
+ Delegate* delegate_;
+
+ // The extension we are showing the UI for.
+ const Extension* extension_;
+
+ // Keeps track of extension images being loaded on the File thread for the
+ // purpose of showing the install UI.
+ ImageLoadingTracker tracker_;
+
+ // The extensions icon.
+ SkBitmap icon_;
+
+ DISALLOW_COPY_AND_ASSIGN(ExtensionGenericDialog);
+};
+
+#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_GENERIC_DIALOG_H_

Powered by Google App Engine
This is Rietveld 408576698