diff options
author | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-06 06:17:32 +0000 |
---|---|---|
committer | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-06 06:17:32 +0000 |
commit | fdb4739cb0e2b0581e91d032e929a2769f26fd6a (patch) | |
tree | feea66ba6550f1d757c48ed8e93c44f320edd730 /chrome/browser/chromeos/file_manager/app_installer.cc | |
parent | 48dc4b493aa4b627ae60b45b7c5fb769874b4309 (diff) | |
download | chromium_src-fdb4739cb0e2b0581e91d032e929a2769f26fd6a.zip chromium_src-fdb4739cb0e2b0581e91d032e929a2769f26fd6a.tar.gz chromium_src-fdb4739cb0e2b0581e91d032e929a2769f26fd6a.tar.bz2 |
file_manager: Rename file_manager::FileManagerInstaller to file_manager::AppInstaller
Revise the class comment along the way.
BUG=284984
TEST=none
R=yoshiki@chromium.org
Review URL: https://codereview.chromium.org/61463003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233234 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/file_manager/app_installer.cc')
-rw-r--r-- | chrome/browser/chromeos/file_manager/app_installer.cc | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/file_manager/app_installer.cc b/chrome/browser/chromeos/file_manager/app_installer.cc new file mode 100644 index 0000000..b6580b8 --- /dev/null +++ b/chrome/browser/chromeos/file_manager/app_installer.cc @@ -0,0 +1,113 @@ +// Copyright 2013 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/chromeos/file_manager/app_installer.h" + +#include "base/strings/stringprintf.h" +#include "chrome/browser/profiles/profile.h" +#include "content/public/browser/web_contents.h" + +namespace file_manager { + +namespace { +const char kWebContentsDestroyedError[] = "WebContents is destroyed."; +} // namespace + +class AppInstaller::WebContentsObserver + : public content::WebContentsObserver { + + public: + explicit WebContentsObserver( + content::WebContents* web_contents, + AppInstaller* parent) + : content::WebContentsObserver(web_contents), + parent_(parent) { + } + + protected: + // content::WebContentsObserver implementation. + virtual void WebContentsDestroyed( + content::WebContents* web_contents) OVERRIDE { + parent_->OnWebContentsDestroyed(web_contents); + } + + private: + AppInstaller* parent_; + + DISALLOW_IMPLICIT_CONSTRUCTORS(WebContentsObserver); +}; + +AppInstaller::AppInstaller( + content::WebContents* web_contents, + const std::string& webstore_item_id, + Profile* profile, + const Callback& callback) + : extensions::WebstoreStandaloneInstaller( + webstore_item_id, + profile, + callback), + callback_(callback), + web_contents_(web_contents), + web_contents_observer_(new WebContentsObserver(web_contents, this)) { +} + +AppInstaller::~AppInstaller() {} + +bool AppInstaller::CheckRequestorAlive() const { + // The tab may have gone away - cancel installation in that case. + return web_contents_ != NULL; +} + +const GURL& AppInstaller::GetRequestorURL() const { + return GURL::EmptyGURL(); +} + +scoped_ptr<ExtensionInstallPrompt::Prompt> +AppInstaller::CreateInstallPrompt() const { + scoped_ptr<ExtensionInstallPrompt::Prompt> prompt( + new ExtensionInstallPrompt::Prompt( + ExtensionInstallPrompt::INLINE_INSTALL_PROMPT)); + + prompt->SetInlineInstallWebstoreData(localized_user_count(), + show_user_count(), + average_rating(), + rating_count()); + return prompt.Pass(); +} + +bool AppInstaller::ShouldShowPostInstallUI() const { + return false; +} + +bool AppInstaller::ShouldShowAppInstalledBubble() const { + return false; +} + +content::WebContents* AppInstaller::GetWebContents() const { + return web_contents_; +} + +bool AppInstaller::CheckInlineInstallPermitted( + const base::DictionaryValue& webstore_data, + std::string* error) const { + DCHECK(error != NULL); + DCHECK(error->empty()); + return true; +} + +bool AppInstaller::CheckRequestorPermitted( + const base::DictionaryValue& webstore_data, + std::string* error) const { + DCHECK(error != NULL); + DCHECK(error->empty()); + return true; +} + +void AppInstaller::OnWebContentsDestroyed( + content::WebContents* web_contents) { + callback_.Run(false, kWebContentsDestroyedError); + AbortInstall(); +} + +} // namespace file_manager |