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

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

Issue 11087071: Making ShowExtensionInstallDialog a callback (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address review comments Created 8 years, 2 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_install_prompt.h
diff --git a/chrome/browser/extensions/extension_install_prompt.h b/chrome/browser/extensions/extension_install_prompt.h
index 480dfd062caac34e19bbfd38b701a695ab08afc6..3b5dcdd08d7dfeb4e5cec80f7b30e28f2638ab1f 100644
--- a/chrome/browser/extensions/extension_install_prompt.h
+++ b/chrome/browser/extensions/extension_install_prompt.h
@@ -8,6 +8,7 @@
#include <string>
#include <vector>
+#include "base/callback.h"
#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
#include "base/string16.h"
@@ -157,6 +158,12 @@ class ExtensionInstallPrompt : public ImageLoadingTracker::Observer,
virtual ~Delegate() {}
};
+ typedef base::Callback<void(gfx::NativeWindow,
+ content::PageNavigator*,
+ ExtensionInstallPrompt::Delegate*,
+ const ExtensionInstallPrompt::Prompt&)>
+ ShowDialogCallback;
Aaron Boodman 2012/10/11 20:28:50 Add documentation
+
// Creates a dummy extension from the |manifest|, replacing the name and
// description with the localizations if provided.
static scoped_refptr<extensions::Extension> GetLocalizedExtensionForDisplay(
@@ -196,19 +203,24 @@ class ExtensionInstallPrompt : public ImageLoadingTracker::Observer,
const Prompt& prompt);
// This is called by the installer to verify whether the installation from
- // the webstore should proceed.
+ // the webstore should proceed. |show_dialog_callback| is optional and can be
+ // NULL.
//
// We *MUST* eventually call either Proceed() or Abort() on |delegate|.
- virtual void ConfirmWebstoreInstall(Delegate* delegate,
- const extensions::Extension* extension,
- const SkBitmap* icon);
+ virtual void ConfirmWebstoreInstall(
+ Delegate* delegate,
+ const extensions::Extension* extension,
+ const SkBitmap* icon,
+ const ShowDialogCallback& show_dialog_callback);
// This is called by the installer to verify whether the installation should
- // proceed. This is declared virtual for testing.
+ // proceed. This is declared virtual for testing. |show_dialog_callback| is
+ // optional and can be NULL.
//
// We *MUST* eventually call either Proceed() or Abort() on |delegate|.
virtual void ConfirmInstall(Delegate* delegate,
- const extensions::Extension* extension);
+ const extensions::Extension* extension,
+ const ShowDialogCallback& show_dialog_callback);
// This is called by the app handler launcher to verify whether the app
// should be re-enabled. This is declared virtual for testing.
@@ -311,8 +323,19 @@ class ExtensionInstallPrompt : public ImageLoadingTracker::Observer,
// Keeps track of extension images being loaded on the File thread for the
// purpose of showing the install UI.
ImageLoadingTracker tracker_;
+
+ // Used to show the confirm dialog.
+ ShowDialogCallback show_dialog_callback_;
};
+// Shows the default extension install dialog.
+// The implementations of this function are platform-specific.
+void ShowExtensionInstallDialogImpl(
+ gfx::NativeWindow parent,
+ content::PageNavigator* navigator,
+ ExtensionInstallPrompt::Delegate* delegate,
+ const ExtensionInstallPrompt::Prompt& prompt);
+
namespace chrome {
// Creates an ExtensionInstallPrompt from |browser|. Caller assumes ownership.

Powered by Google App Engine
This is Rietveld 408576698