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

Unified Diff: chrome/browser/plugin_installer.cc

Issue 10933044: Move chrome/browser/plugin_* to chrome/browser/plugins/ (Closed) Base URL: http://git.chromium.org/chromium/src.git@remove_plugin_group
Patch Set: . Created 8 years, 3 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
« no previous file with comments | « chrome/browser/plugin_installer.h ('k') | chrome/browser/plugin_installer_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/plugin_installer.cc
diff --git a/chrome/browser/plugin_installer.cc b/chrome/browser/plugin_installer.cc
deleted file mode 100644
index 10bbd4415766c71c60de48308263ce15dbd05ee7..0000000000000000000000000000000000000000
--- a/chrome/browser/plugin_installer.cc
+++ /dev/null
@@ -1,264 +0,0 @@
-// Copyright (c) 2012 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/plugin_installer.h"
-
-#include "base/bind.h"
-#include "base/bind_helpers.h"
-#include "base/file_util.h"
-#include "base/process.h"
-#include "chrome/browser/download/download_service.h"
-#include "chrome/browser/download/download_service_factory.h"
-#include "chrome/browser/download/download_util.h"
-#include "chrome/browser/platform_util.h"
-#include "chrome/browser/plugin_installer_observer.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/tab_contents/tab_contents.h"
-#include "content/public/browser/browser_context.h"
-#include "content/public/browser/download_id.h"
-#include "content/public/browser/download_item.h"
-#include "content/public/browser/download_manager.h"
-#include "content/public/browser/download_save_info.h"
-#include "content/public/browser/render_process_host.h"
-#include "content/public/browser/render_view_host.h"
-#include "content/public/browser/resource_context.h"
-#include "content/public/browser/resource_dispatcher_host.h"
-#include "content/public/browser/web_contents.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
-#include "webkit/plugins/npapi/plugin_group.h"
-#include "webkit/plugins/npapi/plugin_utils.h"
-#include "webkit/plugins/webplugininfo.h"
-
-using content::BrowserContext;
-using content::BrowserThread;
-using content::DownloadItem;
-using content::DownloadManager;
-using content::ResourceDispatcherHost;
-
-namespace {
-
-void BeginDownload(
- const GURL& url,
- content::ResourceContext* resource_context,
- int render_process_host_id,
- int render_view_host_routing_id,
- const ResourceDispatcherHost::DownloadStartedCallback& callback) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
-
- ResourceDispatcherHost* rdh = ResourceDispatcherHost::Get();
- scoped_ptr<net::URLRequest> request(
- resource_context->GetRequestContext()->CreateRequest(url, NULL));
- net::Error error = rdh->BeginDownload(
- request.Pass(),
- false, // is_content_initiated
- resource_context,
- render_process_host_id,
- render_view_host_routing_id,
- true, // prefer_cache
- content::DownloadSaveInfo(),
- callback);
-
- if (error != net::OK) {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(callback, content::DownloadId::Invalid(), error));
- }
-}
-
-} // namespace
-
-PluginInstaller::PluginInstaller(const std::string& identifier,
- const string16& name,
- bool url_for_display,
- const GURL& plugin_url,
- const GURL& help_url,
- const string16& group_name_matcher)
- : identifier_(identifier),
- name_(name),
- group_name_matcher_(group_name_matcher),
- url_for_display_(url_for_display),
- plugin_url_(plugin_url),
- help_url_(help_url),
- state_(INSTALLER_STATE_IDLE) {
-}
-
-PluginInstaller::~PluginInstaller() {
-}
-
-void PluginInstaller::AddVersion(const Version& version,
- SecurityStatus status) {
- DCHECK(versions_.find(version) == versions_.end());
- versions_[version] = status;
-}
-
-PluginInstaller::SecurityStatus PluginInstaller::GetSecurityStatus(
- const webkit::WebPluginInfo& plugin) const {
- if (versions_.empty()) {
-#if defined(OS_LINUX)
- // On Linux, unknown plugins require authorization.
- return SECURITY_STATUS_REQUIRES_AUTHORIZATION;
-#else
- return SECURITY_STATUS_UP_TO_DATE;
-#endif
- }
-
- Version version;
- webkit::npapi::CreateVersionFromString(plugin.version, &version);
- if (!version.IsValid())
- version = Version("0");
-
- // |lower_bound| returns the latest version that is not newer than |version|.
- std::map<Version, SecurityStatus, VersionComparator>::const_iterator it =
- versions_.lower_bound(version);
- // If there is at least one version defined, everything older than the oldest
- // defined version is considered out-of-date.
- if (it == versions_.end())
- return SECURITY_STATUS_OUT_OF_DATE;
-
- return it->second;
-}
-
-bool PluginInstaller::VersionComparator::operator() (const Version& lhs,
- const Version& rhs) const {
- // Keep versions ordered by newest (biggest) first.
- return lhs.CompareTo(rhs) > 0;
-}
-
-// static
-bool PluginInstaller::ParseSecurityStatus(
- const std::string& status_str,
- PluginInstaller::SecurityStatus* status) {
- if (status_str == "up_to_date")
- *status = SECURITY_STATUS_UP_TO_DATE;
- else if (status_str == "out_of_date")
- *status = SECURITY_STATUS_OUT_OF_DATE;
- else if (status_str == "requires_authorization")
- *status = SECURITY_STATUS_REQUIRES_AUTHORIZATION;
- else
- return false;
-
- return true;
-}
-
-void PluginInstaller::OnDownloadUpdated(DownloadItem* download) {
- DownloadItem::DownloadState state = download->GetState();
- switch (state) {
- case DownloadItem::IN_PROGRESS:
- return;
- case DownloadItem::COMPLETE: {
- DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_);
- state_ = INSTALLER_STATE_IDLE;
- FOR_EACH_OBSERVER(PluginInstallerObserver, observers_,
- DownloadFinished());
- break;
- }
- case DownloadItem::CANCELLED: {
- DownloadCancelled();
- break;
- }
- case DownloadItem::INTERRUPTED: {
- content::DownloadInterruptReason reason = download->GetLastReason();
- DownloadError(content::InterruptReasonDebugString(reason));
- break;
- }
- case DownloadItem::MAX_DOWNLOAD_STATE: {
- NOTREACHED();
- return;
- }
- }
- download->RemoveObserver(this);
-}
-
-void PluginInstaller::OnDownloadDestroyed(DownloadItem* download) {
- DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_);
- state_ = INSTALLER_STATE_IDLE;
- download->RemoveObserver(this);
-}
-
-void PluginInstaller::AddObserver(PluginInstallerObserver* observer) {
- observers_.AddObserver(observer);
-}
-
-void PluginInstaller::RemoveObserver(PluginInstallerObserver* observer) {
- observers_.RemoveObserver(observer);
- if (observers_.size() == weak_observers_.size()) {
- FOR_EACH_OBSERVER(WeakPluginInstallerObserver, weak_observers_,
- OnlyWeakObserversLeft());
- }
-}
-
-void PluginInstaller::AddWeakObserver(WeakPluginInstallerObserver* observer) {
- weak_observers_.AddObserver(observer);
-}
-
-void PluginInstaller::RemoveWeakObserver(
- WeakPluginInstallerObserver* observer) {
- weak_observers_.RemoveObserver(observer);
-}
-
-void PluginInstaller::StartInstalling(TabContents* tab_contents) {
- DCHECK_EQ(INSTALLER_STATE_IDLE, state_);
- DCHECK(!url_for_display_);
- state_ = INSTALLER_STATE_DOWNLOADING;
- FOR_EACH_OBSERVER(PluginInstallerObserver, observers_, DownloadStarted());
- content::WebContents* web_contents = tab_contents->web_contents();
- DownloadManager* download_manager =
- BrowserContext::GetDownloadManager(tab_contents->profile());
- download_util::RecordDownloadSource(
- download_util::INITIATED_BY_PLUGIN_INSTALLER);
- BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE,
- base::Bind(&BeginDownload,
- plugin_url_,
- tab_contents->profile()->GetResourceContext(),
- web_contents->GetRenderProcessHost()->GetID(),
- web_contents->GetRenderViewHost()->GetRoutingID(),
- base::Bind(&PluginInstaller::DownloadStarted,
- base::Unretained(this),
- make_scoped_refptr(download_manager))));
-}
-
-void PluginInstaller::DownloadStarted(
- scoped_refptr<content::DownloadManager> dlm,
- content::DownloadId download_id,
- net::Error error) {
- if (error != net::OK) {
- std::string msg =
- base::StringPrintf("Error %d: %s", error, net::ErrorToString(error));
- DownloadError(msg);
- return;
- }
- DownloadItem* download_item =
- dlm->GetActiveDownloadItem(download_id.local());
- download_item->SetOpenWhenComplete(true);
- download_item->AddObserver(this);
-}
-
-void PluginInstaller::OpenDownloadURL(content::WebContents* web_contents) {
- DCHECK_EQ(INSTALLER_STATE_IDLE, state_);
- DCHECK(url_for_display_);
- web_contents->OpenURL(content::OpenURLParams(
- plugin_url_,
- content::Referrer(web_contents->GetURL(),
- WebKit::WebReferrerPolicyDefault),
- NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_TYPED, false));
- FOR_EACH_OBSERVER(PluginInstallerObserver, observers_, DownloadFinished());
-}
-
-void PluginInstaller::DownloadError(const std::string& msg) {
- DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_);
- state_ = INSTALLER_STATE_IDLE;
- FOR_EACH_OBSERVER(PluginInstallerObserver, observers_, DownloadError(msg));
-}
-
-void PluginInstaller::DownloadCancelled() {
- DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_);
- state_ = INSTALLER_STATE_IDLE;
- FOR_EACH_OBSERVER(PluginInstallerObserver, observers_, DownloadCancelled());
-}
-
-bool PluginInstaller::MatchesPlugin(const webkit::WebPluginInfo& plugin) {
- return plugin.name.find(group_name_matcher_) != string16::npos;
-}
« no previous file with comments | « chrome/browser/plugin_installer.h ('k') | chrome/browser/plugin_installer_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698