summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_install_prompt.cc
diff options
context:
space:
mode:
authorsail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-21 23:03:05 +0000
committersail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-21 23:03:05 +0000
commit91e51d61689bb86daaaed223f5344b0d389eae65 (patch)
tree68e3dec431799c58d7ec3cf2c507a5757f23626f /chrome/browser/extensions/extension_install_prompt.cc
parent80737d4ce4cc5bd882e3328aac3d2bfa69487d2a (diff)
downloadchromium_src-91e51d61689bb86daaaed223f5344b0d389eae65.zip
chromium_src-91e51d61689bb86daaaed223f5344b0d389eae65.tar.gz
chromium_src-91e51d61689bb86daaaed223f5344b0d389eae65.tar.bz2
Have ExtensionInstallPrompt take a WebContents
This CL implements a long standing TODO to change ExtensionInstallPrompt to take WebContents instead of a Browser. This also fixes bug 156248 which I caused in r161479. BUG=156248 Review URL: https://codereview.chromium.org/11184029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163215 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_install_prompt.cc')
-rw-r--r--chrome/browser/extensions/extension_install_prompt.cc43
1 files changed, 17 insertions, 26 deletions
diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc
index 3b49699..fe6ce49 100644
--- a/chrome/browser/extensions/extension_install_prompt.cc
+++ b/chrome/browser/extensions/extension_install_prompt.cc
@@ -32,7 +32,7 @@
#include "chrome/common/extensions/permissions/permission_set.h"
#include "chrome/common/extensions/url_pattern.h"
#include "chrome/common/pref_names.h"
-#include "content/public/browser/page_navigator.h"
+#include "content/public/browser/web_contents.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -159,6 +159,12 @@ bool AutoConfirmPrompt(ExtensionInstallPrompt::Delegate* delegate) {
return false;
}
+Profile* ProfileForWebContents(content::WebContents* web_contents) {
+ if (!web_contents)
+ return NULL;
+ return Profile::FromBrowserContext(web_contents->GetBrowserContext());
+}
+
} // namespace
ExtensionInstallPrompt::Prompt::Prompt(Profile* profile, PromptType type)
@@ -363,17 +369,14 @@ scoped_refptr<Extension>
}
ExtensionInstallPrompt::ExtensionInstallPrompt(
- gfx::NativeWindow parent,
- content::PageNavigator* navigator,
- Profile* profile)
+ content::WebContents* contents)
: record_oauth2_grant_(false),
- parent_(parent),
- navigator_(navigator),
+ parent_web_contents_(contents),
ui_loop_(MessageLoop::current()),
extension_(NULL),
- install_ui_(ExtensionInstallUI::Create(profile)),
+ install_ui_(ExtensionInstallUI::Create(ProfileForWebContents(contents))),
delegate_(NULL),
- prompt_(profile, UNSET_PROMPT_TYPE),
+ prompt_(ProfileForWebContents(contents), UNSET_PROMPT_TYPE),
prompt_type_(UNSET_PROMPT_TYPE),
ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)) {
}
@@ -630,22 +633,10 @@ void ExtensionInstallPrompt::ShowConfirmation() {
if (AutoConfirmPrompt(delegate_))
return;
- if (show_dialog_callback_.is_null())
- GetDefaultShowDialogCallback().Run(parent_, navigator_, delegate_, prompt_);
- else
- show_dialog_callback_.Run(parent_, navigator_, delegate_, prompt_);
-}
-
-namespace chrome {
-
-ExtensionInstallPrompt* CreateExtensionInstallPromptWithBrowser(
- Browser* browser) {
- // |browser| can be NULL in unit tests.
- if (!browser)
- return new ExtensionInstallPrompt(NULL, NULL, NULL);
- gfx::NativeWindow parent =
- browser->window() ? browser->window()->GetNativeWindow() : NULL;
- return new ExtensionInstallPrompt(parent, browser, browser->profile());
+ if (show_dialog_callback_.is_null()) {
+ GetDefaultShowDialogCallback().Run(
+ parent_web_contents_, delegate_, prompt_);
+ } else {
+ show_dialog_callback_.Run(parent_web_contents_, delegate_, prompt_);
+ }
}
-
-} // namespace chrome