| Index: chrome/browser/extensions/webstore_install_prompt.cc
|
| diff --git a/chrome/browser/extensions/webstore_install_prompt.cc b/chrome/browser/extensions/webstore_install_prompt.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e0dd9bf621db8de71dedacb60b2c8e981f5675b7
|
| --- /dev/null
|
| +++ b/chrome/browser/extensions/webstore_install_prompt.cc
|
| @@ -0,0 +1,103 @@
|
| +// Copyright 2014 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.
|
| +
|
| +#include "chrome/browser/extensions/webstore_install_prompt.h"
|
| +
|
| +#include "chrome/browser/extensions/webstore_installer.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/ui/browser.h"
|
| +#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
|
| +#include "content/public/browser/web_contents.h"
|
| +
|
| +using content::WebContents;
|
| +
|
| +namespace extensions {
|
| +
|
| +WebstoreInstallPrompt::WebstoreInstallPrompt(
|
| + const std::string& webstore_item_id,
|
| + Profile* profile,
|
| + const Callback& callback)
|
| + : WebstoreStandaloneInstaller(webstore_item_id, profile, callback),
|
| + dummy_web_contents_(
|
| + WebContents::Create(WebContents::CreateParams(profile))),
|
| + parent_window_(NULL) {
|
| + set_install_source(WebstoreInstaller::INSTALL_SOURCE_OTHER);
|
| +}
|
| +
|
| +WebstoreInstallPrompt::WebstoreInstallPrompt(
|
| + const std::string& webstore_item_id,
|
| + Profile* profile,
|
| + gfx::NativeWindow parent_window,
|
| + const Callback& callback)
|
| + : WebstoreStandaloneInstaller(webstore_item_id, profile, callback),
|
| + dummy_web_contents_(
|
| + WebContents::Create(WebContents::CreateParams(profile))),
|
| + parent_window_(parent_window) {
|
| + DCHECK(parent_window);
|
| + set_install_source(WebstoreInstaller::INSTALL_SOURCE_OTHER);
|
| +}
|
| +
|
| +WebstoreInstallPrompt::~WebstoreInstallPrompt() {
|
| +}
|
| +
|
| +bool WebstoreInstallPrompt::CheckRequestorAlive() const {
|
| + // Assume the requestor is always alive.
|
| + return true;
|
| +}
|
| +
|
| +const GURL& WebstoreInstallPrompt::GetRequestorURL() const {
|
| + return dummy_requestor_url_;
|
| +}
|
| +
|
| +scoped_ptr<ExtensionInstallPrompt::Prompt>
|
| +WebstoreInstallPrompt::CreateInstallPrompt() const {
|
| + scoped_ptr<ExtensionInstallPrompt::Prompt> prompt(
|
| + new ExtensionInstallPrompt::Prompt(
|
| + ExtensionInstallPrompt::INSTALL_PROMPT));
|
| + return prompt.Pass();
|
| +}
|
| +
|
| +scoped_ptr<ExtensionInstallPrompt> WebstoreInstallPrompt::CreateInstallUI() {
|
| + // Create an ExtensionInstallPrompt. If the parent window is NULL, the dialog
|
| + // will be placed in the middle of the screen.
|
| + return make_scoped_ptr(
|
| + new ExtensionInstallPrompt(profile(), parent_window_, this));
|
| +}
|
| +
|
| +bool WebstoreInstallPrompt::ShouldShowPostInstallUI() const {
|
| + return false;
|
| +}
|
| +
|
| +bool WebstoreInstallPrompt::ShouldShowAppInstalledBubble() const {
|
| + return false;
|
| +}
|
| +
|
| +WebContents* WebstoreInstallPrompt::GetWebContents() const {
|
| + return dummy_web_contents_.get();
|
| +}
|
| +
|
| +bool WebstoreInstallPrompt::CheckInlineInstallPermitted(
|
| + const base::DictionaryValue& webstore_data,
|
| + std::string* error) const {
|
| + // Assume the requestor is trusted.
|
| + *error = std::string();
|
| + return true;
|
| +}
|
| +
|
| +bool WebstoreInstallPrompt::CheckRequestorPermitted(
|
| + const base::DictionaryValue& webstore_data,
|
| + std::string* error) const {
|
| + // Assume the requestor is trusted.
|
| + *error = std::string();
|
| + return true;
|
| +}
|
| +
|
| +content::WebContents* WebstoreInstallPrompt::OpenURL(
|
| + const content::OpenURLParams& params) {
|
| + chrome::ScopedTabbedBrowserDisplayer displayer(profile(),
|
| + chrome::GetActiveDesktop());
|
| + return displayer.browser()->OpenURL(params);
|
| +}
|
| +
|
| +} // namespace extensions
|
|
|