Index: chrome/browser/extensions/extension_install_dialog.h |
diff --git a/chrome/browser/extensions/extension_install_dialog.h b/chrome/browser/extensions/extension_install_dialog.h |
index bc4e85248b09fd1d74ab1325ea958279ea9cd5d6..3f7cb9e22ddbdf488d151629cf0d13132cd408e2 100644 |
--- a/chrome/browser/extensions/extension_install_dialog.h |
+++ b/chrome/browser/extensions/extension_install_dialog.h |
@@ -15,16 +15,31 @@ namespace base { |
class DictionaryValue; |
} |
-void ShowExtensionInstallDialog(gfx::NativeWindow parent, |
- content::PageNavigator* navigator, |
- ExtensionInstallPrompt::Delegate* delegate, |
- const ExtensionInstallPrompt::Prompt& prompt); |
- |
-// The implementations of this function are platform-specific. |
-void ShowExtensionInstallDialogImpl( |
- gfx::NativeWindow parent, |
- content::PageNavigator* navigator, |
- ExtensionInstallPrompt::Delegate* delegate, |
- const ExtensionInstallPrompt::Prompt& prompt); |
+class ExtensionInstallDialog : public base::RefCounted<ExtensionInstallDialog> { |
+ public: |
+ ExtensionInstallDialog(); |
+ |
+ void ShowExtensionInstallDialog( |
+ gfx::NativeWindow parent, |
+ content::PageNavigator* navigator, |
+ ExtensionInstallPrompt::Delegate* delegate, |
+ const ExtensionInstallPrompt::Prompt& prompt); |
+ |
+ // The implementations of this function are platform-specific. |
+ static scoped_refptr<ExtensionInstallDialog> CreateDefaultImpl(); |
+ |
+ protected: |
+ virtual void ShowExtensionInstallDialogImpl( |
+ gfx::NativeWindow parent, |
+ content::PageNavigator* navigator, |
+ ExtensionInstallPrompt::Delegate* delegate, |
+ const ExtensionInstallPrompt::Prompt& prompt) = 0; |
+ |
+ private: |
+ friend class base::RefCounted<ExtensionInstallDialog>; |
+ virtual ~ExtensionInstallDialog(); |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ExtensionInstallDialog); |
+}; |
#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_DIALOG_H_ |