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

Unified Diff: chrome/browser/ui/pdf/pdf_unsupported_feature.cc

Issue 2518493002: Remove obsolete plugin state handling code. (Closed)
Patch Set: Removed unusued function. Created 4 years, 1 month 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/ui/pdf/pdf_unsupported_feature.h ('k') | chrome/browser/ui/webui/plugins/plugins_handler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/pdf/pdf_unsupported_feature.cc
diff --git a/chrome/browser/ui/pdf/pdf_unsupported_feature.cc b/chrome/browser/ui/pdf/pdf_unsupported_feature.cc
deleted file mode 100644
index 52a428e0f5466f0e4a357af2831d6ab0e095da8e..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/pdf/pdf_unsupported_feature.cc
+++ /dev/null
@@ -1,366 +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/ui/pdf/pdf_unsupported_feature.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/bind.h"
-#include "base/macros.h"
-#include "base/memory/ptr_util.h"
-#include "base/strings/utf_string_conversions.h"
-#include "build/build_config.h"
-#include "chrome/browser/lifetime/application_lifetime.h"
-#include "chrome/browser/plugins/chrome_plugin_service_filter.h"
-#include "chrome/browser/plugins/plugin_metadata.h"
-#include "chrome/browser/plugins/plugin_prefs.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/renderer_preferences_util.h"
-#include "chrome/browser/tab_contents/tab_util.h"
-#include "chrome/common/chrome_content_client.h"
-#include "chrome/grit/browser_resources.h"
-#include "chrome/grit/generated_resources.h"
-#include "components/pdf/browser/open_pdf_in_reader_prompt_client.h"
-#include "components/pdf/browser/pdf_web_contents_helper.h"
-#include "components/strings/grit/components_strings.h"
-#include "content/public/browser/interstitial_page.h"
-#include "content/public/browser/interstitial_page_delegate.h"
-#include "content/public/browser/navigation_details.h"
-#include "content/public/browser/navigation_entry.h"
-#include "content/public/browser/page_navigator.h"
-#include "content/public/browser/render_frame_host.h"
-#include "content/public/browser/render_process_host.h"
-#include "content/public/browser/render_view_host.h"
-#include "content/public/browser/user_metrics.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/common/renderer_preferences.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/base/webui/jstemplate_builder.h"
-
-#if defined(OS_WIN)
-#include "chrome/browser/ui/pdf/adobe_reader_info_win.h"
-#endif
-
-using base::UserMetricsAction;
-using content::InterstitialPage;
-using content::OpenURLParams;
-using content::Referrer;
-using content::WebContents;
-using content::WebPluginInfo;
-
-#if defined(OS_WIN)
-namespace {
-
-const char kAdobeReaderUpdateUrl[] = "http://www.adobe.com/go/getreader_chrome";
-
-// The prompt delegate used to ask the user if they want to use Adobe Reader
-// by default.
-class PDFEnableAdobeReaderPromptClient
- : public pdf::OpenPDFInReaderPromptClient {
- public:
- explicit PDFEnableAdobeReaderPromptClient(Profile* profile);
- ~PDFEnableAdobeReaderPromptClient() override;
-
- // pdf::OpenPDFInReaderPromptClient
- base::string16 GetMessageText() const override;
- base::string16 GetAcceptButtonText() const override;
- base::string16 GetCancelButtonText() const override;
- bool ShouldExpire(
- const content::LoadCommittedDetails& details) const override;
- void Accept() override;
- void Cancel() override;
-
- private:
- void OnYes();
- void OnNo();
-
- Profile* profile_;
-
- DISALLOW_IMPLICIT_CONSTRUCTORS(PDFEnableAdobeReaderPromptClient);
-};
-
-PDFEnableAdobeReaderPromptClient::PDFEnableAdobeReaderPromptClient(
- Profile* profile)
- : profile_(profile) {
- content::RecordAction(UserMetricsAction("PDF_EnableReaderInfoBarShown"));
-}
-
-PDFEnableAdobeReaderPromptClient::~PDFEnableAdobeReaderPromptClient() {
-}
-
-bool PDFEnableAdobeReaderPromptClient::ShouldExpire(
- const content::LoadCommittedDetails& details) const {
- ui::PageTransition transition =
- ui::PageTransitionStripQualifier(details.entry->GetTransitionType());
- // We don't want to expire on a reload, because that is how we open the PDF in
- // Reader.
- return !details.is_in_page &&
- !ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_RELOAD);
-}
-
-void PDFEnableAdobeReaderPromptClient::Accept() {
- content::RecordAction(UserMetricsAction("PDF_EnableReaderInfoBarOK"));
- PluginPrefs* plugin_prefs = PluginPrefs::GetForProfile(profile_).get();
- plugin_prefs->EnablePluginGroup(
- true, base::ASCIIToUTF16(PluginMetadata::kAdobeReaderGroupName));
- plugin_prefs->EnablePluginGroup(
- false, base::ASCIIToUTF16(ChromeContentClient::kPDFPluginName));
-}
-
-void PDFEnableAdobeReaderPromptClient::Cancel() {
- content::RecordAction(UserMetricsAction("PDF_EnableReaderInfoBarCancel"));
-}
-
-base::string16 PDFEnableAdobeReaderPromptClient::GetAcceptButtonText() const {
- return l10n_util::GetStringUTF16(IDS_PDF_INFOBAR_ALWAYS_USE_READER_BUTTON);
-}
-
-base::string16 PDFEnableAdobeReaderPromptClient::GetCancelButtonText() const {
- return l10n_util::GetStringUTF16(IDS_DONE);
-}
-
-base::string16 PDFEnableAdobeReaderPromptClient::GetMessageText() const {
- return l10n_util::GetStringUTF16(IDS_PDF_INFOBAR_QUESTION_ALWAYS_USE_READER);
-}
-
-// Launch the url to get the latest Adbobe Reader installer.
-void OpenReaderUpdateURL(WebContents* web_contents) {
- OpenURLParams params(GURL(kAdobeReaderUpdateUrl), Referrer(),
- WindowOpenDisposition::NEW_FOREGROUND_TAB,
- ui::PAGE_TRANSITION_LINK, false);
- web_contents->OpenURL(params);
-}
-
-// Opens the PDF using Adobe Reader.
-void OpenUsingReader(WebContents* web_contents,
- const WebPluginInfo& reader_plugin,
- pdf::OpenPDFInReaderPromptClient* client) {
- ChromePluginServiceFilter::GetInstance()->OverridePluginForFrame(
- web_contents->GetRenderProcessHost()->GetID(),
- web_contents->GetMainFrame()->GetRoutingID(),
- web_contents->GetURL(),
- reader_plugin);
- web_contents->ReloadFocusedFrame(false);
-
- pdf::PDFWebContentsHelper* pdf_tab_helper =
- pdf::PDFWebContentsHelper::FromWebContents(web_contents);
- if (client)
- pdf_tab_helper->ShowOpenInReaderPrompt(base::WrapUnique(client));
-}
-
-// An interstitial to be used when the user chooses to open a PDF using Adobe
-// Reader, but it is out of date.
-class PDFUnsupportedFeatureInterstitial
- : public content::InterstitialPageDelegate {
- public:
- PDFUnsupportedFeatureInterstitial(
- WebContents* web_contents,
- const WebPluginInfo& reader_webplugininfo)
- : web_contents_(web_contents),
- reader_webplugininfo_(reader_webplugininfo) {
- content::RecordAction(UserMetricsAction("PDF_ReaderInterstitialShown"));
- interstitial_page_ = InterstitialPage::Create(
- web_contents, false, web_contents->GetURL(), this);
- interstitial_page_->Show();
- }
-
- protected:
- // InterstitialPageDelegate implementation.
- std::string GetHTMLContents() override {
- base::DictionaryValue strings;
- strings.SetString(
- "title",
- l10n_util::GetStringUTF16(IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_TITLE));
- strings.SetString(
- "headLine",
- l10n_util::GetStringUTF16(IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_BODY));
- strings.SetString(
- "update",
- l10n_util::GetStringUTF16(IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_UPDATE));
- strings.SetString(
- "open_with_reader",
- l10n_util::GetStringUTF16(
- IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_PROCEED));
- strings.SetString(
- "ok",
- l10n_util::GetStringUTF16(IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_OK));
- strings.SetString(
- "cancel",
- l10n_util::GetStringUTF16(IDS_READER_OUT_OF_DATE_BLOCKING_PAGE_CANCEL));
-
- base::StringPiece html(ResourceBundle::GetSharedInstance().
- GetRawDataResource(IDR_READER_OUT_OF_DATE_HTML));
-
- return webui::GetI18nTemplateHtml(html, &strings);
- }
-
- void CommandReceived(const std::string& command) override {
- if (command == "0") {
- content::RecordAction(
- UserMetricsAction("PDF_ReaderInterstitialCancel"));
- interstitial_page_->DontProceed();
- return;
- }
-
- if (command == "1") {
- content::RecordAction(
- UserMetricsAction("PDF_ReaderInterstitialUpdate"));
- OpenReaderUpdateURL(web_contents_);
- } else if (command == "2") {
- content::RecordAction(
- UserMetricsAction("PDF_ReaderInterstitialIgnore"));
- // Pretend that the plugin is up to date so that we don't block it.
- reader_webplugininfo_.version = base::ASCIIToUTF16("11.0.0.0");
- OpenUsingReader(web_contents_, reader_webplugininfo_, NULL);
- } else {
- NOTREACHED();
- }
- interstitial_page_->Proceed();
- }
-
- void OverrideRendererPrefs(content::RendererPreferences* prefs) override {
- Profile* profile =
- Profile::FromBrowserContext(web_contents_->GetBrowserContext());
- renderer_preferences_util::UpdateFromSystemSettings(
- prefs, profile, web_contents_);
- }
-
- private:
- WebContents* web_contents_;
- WebPluginInfo reader_webplugininfo_;
- InterstitialPage* interstitial_page_; // Owns us.
-
- DISALLOW_COPY_AND_ASSIGN(PDFUnsupportedFeatureInterstitial);
-};
-
-// The delegate for the bubble used to inform the user that we don't support a
-// feature in the PDF.
-class PDFUnsupportedFeaturePromptClient
- : public pdf::OpenPDFInReaderPromptClient {
- public:
- PDFUnsupportedFeaturePromptClient(WebContents* web_contents,
- const AdobeReaderPluginInfo& reader_info);
- ~PDFUnsupportedFeaturePromptClient() override;
-
- // pdf::OpenPDFInReaderPromptClient:
- base::string16 GetMessageText() const override;
- base::string16 GetAcceptButtonText() const override;
- base::string16 GetCancelButtonText() const override;
- bool ShouldExpire(
- const content::LoadCommittedDetails& details) const override;
- void Accept() override;
- void Cancel() override;
-
- private:
- WebContents* web_contents_;
- const AdobeReaderPluginInfo reader_info_;
-
- DISALLOW_IMPLICIT_CONSTRUCTORS(PDFUnsupportedFeaturePromptClient);
-};
-
-PDFUnsupportedFeaturePromptClient::PDFUnsupportedFeaturePromptClient(
- WebContents* web_contents,
- const AdobeReaderPluginInfo& reader_info)
- : web_contents_(web_contents), reader_info_(reader_info) {
- content::RecordAction(reader_info_.is_installed ?
- UserMetricsAction("PDF_UseReaderInfoBarShown") :
- UserMetricsAction("PDF_InstallReaderInfoBarShown"));
-}
-
-PDFUnsupportedFeaturePromptClient::~PDFUnsupportedFeaturePromptClient() {
-}
-
-base::string16 PDFUnsupportedFeaturePromptClient::GetMessageText() const {
- return l10n_util::GetStringUTF16(IDS_PDF_BUBBLE_MESSAGE);
-}
-
-base::string16 PDFUnsupportedFeaturePromptClient::GetAcceptButtonText() const {
- return l10n_util::GetStringUTF16(
- reader_info_.is_installed ? IDS_PDF_BUBBLE_OPEN_IN_READER_LINK
- : IDS_PDF_BUBBLE_INSTALL_READER_LINK);
-}
-
-base::string16 PDFUnsupportedFeaturePromptClient::GetCancelButtonText() const {
- return l10n_util::GetStringUTF16(IDS_DONE);
-}
-
-bool PDFUnsupportedFeaturePromptClient::ShouldExpire(
- const content::LoadCommittedDetails& details) const {
- return !details.is_in_page;
-}
-
-void PDFUnsupportedFeaturePromptClient::Accept() {
- if (!reader_info_.is_installed) {
- content::RecordAction(UserMetricsAction("PDF_InstallReaderInfoBarOK"));
- OpenReaderUpdateURL(web_contents_);
- return;
- }
-
- content::RecordAction(UserMetricsAction("PDF_UseReaderInfoBarOK"));
-
- if (!reader_info_.is_secure) {
- new PDFUnsupportedFeatureInterstitial(web_contents_,
- reader_info_.plugin_info);
- return;
- }
-
- Profile* profile =
- Profile::FromBrowserContext(web_contents_->GetBrowserContext());
- pdf::OpenPDFInReaderPromptClient* client =
- new PDFEnableAdobeReaderPromptClient(profile);
-
- OpenUsingReader(web_contents_, reader_info_.plugin_info, client);
-}
-
-void PDFUnsupportedFeaturePromptClient::Cancel() {
- content::RecordAction(reader_info_.is_installed ?
- UserMetricsAction("PDF_UseReaderInfoBarCancel") :
- UserMetricsAction("PDF_InstallReaderInfoBarCancel"));
-}
-
-void MaybeShowOpenPDFInReaderPrompt(WebContents* web_contents,
- const AdobeReaderPluginInfo& reader_info) {
- // If the Reader plugin is disabled by policy, don't prompt them.
- if (!reader_info.is_installed || !reader_info.is_enabled)
- return;
-
- std::unique_ptr<pdf::OpenPDFInReaderPromptClient> prompt(
- new PDFUnsupportedFeaturePromptClient(web_contents, reader_info));
- pdf::PDFWebContentsHelper* pdf_tab_helper =
- pdf::PDFWebContentsHelper::FromWebContents(web_contents);
- pdf_tab_helper->ShowOpenInReaderPrompt(std::move(prompt));
-}
-
-void GotPluginsCallback(int process_id,
- int routing_id,
- const AdobeReaderPluginInfo& reader_info) {
- WebContents* web_contents =
- tab_util::GetWebContentsByID(process_id, routing_id);
- if (web_contents)
- MaybeShowOpenPDFInReaderPrompt(web_contents, reader_info);
-}
-
-} // namespace
-#endif // defined(OS_WIN)
-
-void PDFHasUnsupportedFeature(WebContents* web_contents) {
-#if defined(OS_WIN)
- // Only works for Windows for now. For Mac, we'll have to launch the file
- // externally since Adobe Reader doesn't work inside Chrome.
- Profile* profile =
- Profile::FromBrowserContext(web_contents->GetBrowserContext());
- AdobeReaderPluginInfo reader_info;
- if (GetAdobeReaderPluginInfo(profile, &reader_info)) {
- MaybeShowOpenPDFInReaderPrompt(web_contents, reader_info);
- return;
- }
- GetAdobeReaderPluginInfoAsync(
- profile,
- base::Bind(&GotPluginsCallback,
- web_contents->GetRenderProcessHost()->GetID(),
- web_contents->GetRenderViewHost()->GetRoutingID()));
-#endif // defined(OS_WIN)
-}
« no previous file with comments | « chrome/browser/ui/pdf/pdf_unsupported_feature.h ('k') | chrome/browser/ui/webui/plugins/plugins_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698