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

Side by Side Diff: chrome/browser/pdf_unsupported_feature.cc

Issue 7387010: Add PluginServiceFilter interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 9 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/pdf_unsupported_feature.h" 5 #include "chrome/browser/pdf_unsupported_feature.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "base/version.h" 9 #include "base/version.h"
10 #include "chrome/browser/plugin_updater.h" 10 #include "chrome/browser/plugin_updater.h"
11 #include "chrome/browser/chrome_plugin_service_helper.h"
11 #include "chrome/browser/prefs/pref_service.h" 12 #include "chrome/browser/prefs/pref_service.h"
12 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/browser/tab_contents/chrome_interstitial_page.h" 14 #include "chrome/browser/tab_contents/chrome_interstitial_page.h"
14 #include "chrome/browser/tab_contents/confirm_infobar_delegate.h" 15 #include "chrome/browser/tab_contents/confirm_infobar_delegate.h"
15 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 16 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
16 #include "chrome/common/chrome_content_client.h" 17 #include "chrome/common/chrome_content_client.h"
17 #include "chrome/common/jstemplate_builder.h" 18 #include "chrome/common/jstemplate_builder.h"
18 #include "chrome/common/pref_names.h" 19 #include "chrome/common/pref_names.h"
19 #include "content/browser/plugin_service.h" 20 #include "content/browser/plugin_service.h"
20 #include "content/browser/renderer_host/render_process_host.h" 21 #include "content/browser/renderer_host/render_process_host.h"
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 void OpenReaderUpdateURL(TabContents* tab) { 131 void OpenReaderUpdateURL(TabContents* tab) {
131 tab->OpenURL(GURL(kReaderUpdateUrl), GURL(), CURRENT_TAB, 132 tab->OpenURL(GURL(kReaderUpdateUrl), GURL(), CURRENT_TAB,
132 PageTransition::LINK); 133 PageTransition::LINK);
133 } 134 }
134 135
135 // Opens the PDF using Adobe Reader. 136 // Opens the PDF using Adobe Reader.
136 void OpenUsingReader(TabContentsWrapper* tab, 137 void OpenUsingReader(TabContentsWrapper* tab,
137 const WebPluginInfo& reader_plugin, 138 const WebPluginInfo& reader_plugin,
138 InfoBarDelegate* old_delegate, 139 InfoBarDelegate* old_delegate,
139 InfoBarDelegate* new_delegate) { 140 InfoBarDelegate* new_delegate) {
140 PluginService::OverriddenPlugin plugin; 141 WebPluginInfo plugin = reader_plugin;
141 plugin.render_process_id = tab->render_view_host()->process()->id();
142 plugin.render_view_id = tab->render_view_host()->routing_id();
143 plugin.url = tab->tab_contents()->GetURL();
144 plugin.plugin = reader_plugin;
145 // The plugin is disabled, so enable it to get around the renderer check. 142 // The plugin is disabled, so enable it to get around the renderer check.
146 // Also give it a new version so that the renderer doesn't show the blocked 143 // Also give it a new version so that the renderer doesn't show the blocked
147 // plugin UI if it's vulnerable, since we already went through the 144 // plugin UI if it's vulnerable, since we already went through the
148 // interstitial. 145 // interstitial.
149 plugin.plugin.enabled = WebPluginInfo::USER_ENABLED; 146 plugin.enabled = WebPluginInfo::USER_ENABLED;
150 plugin.plugin.version = ASCIIToUTF16("11.0.0.0"); 147 plugin.version = ASCIIToUTF16("11.0.0.0");
151 148
152 PluginService::GetInstance()->OverridePluginForTab(plugin); 149 ChromePluginServiceHelper::GetInstance()->OverridePluginForTab(
150 tab->render_view_host()->process()->id(),
151 tab->render_view_host()->routing_id(),
152 tab->tab_contents()->GetURL(),
153 plugin);
153 tab->render_view_host()->Send(new ViewMsg_ReloadFrame( 154 tab->render_view_host()->Send(new ViewMsg_ReloadFrame(
154 tab->render_view_host()->routing_id())); 155 tab->render_view_host()->routing_id()));
155 156
156 if (new_delegate) { 157 if (new_delegate) {
157 if (old_delegate) { 158 if (old_delegate) {
158 tab->ReplaceInfoBar(old_delegate, new_delegate); 159 tab->ReplaceInfoBar(old_delegate, new_delegate);
159 } else { 160 } else {
160 tab->AddInfoBar(new_delegate); 161 tab->AddInfoBar(new_delegate);
161 } 162 }
162 } 163 }
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 return; 370 return;
370 #endif 371 #endif
371 string16 reader_group_name(ASCIIToUTF16(PluginGroup::kAdobeReaderGroupName)); 372 string16 reader_group_name(ASCIIToUTF16(PluginGroup::kAdobeReaderGroupName));
372 373
373 // If the Reader plugin is disabled by policy, don't prompt them. 374 // If the Reader plugin is disabled by policy, don't prompt them.
374 if (PluginGroup::IsPluginNameDisabledByPolicy(reader_group_name)) 375 if (PluginGroup::IsPluginNameDisabledByPolicy(reader_group_name))
375 return; 376 return;
376 377
377 PluginGroup* reader_group = NULL; 378 PluginGroup* reader_group = NULL;
378 std::vector<PluginGroup> plugin_groups; 379 std::vector<PluginGroup> plugin_groups;
379 PluginList::Singleton()->GetPluginGroups( 380 PluginList::Singleton()->GetPluginGroups(false, &plugin_groups);
380 false, &plugin_groups);
381 for (size_t i = 0; i < plugin_groups.size(); ++i) { 381 for (size_t i = 0; i < plugin_groups.size(); ++i) {
382 if (plugin_groups[i].GetGroupName() == reader_group_name) { 382 if (plugin_groups[i].GetGroupName() == reader_group_name) {
383 reader_group = &plugin_groups[i]; 383 reader_group = &plugin_groups[i];
384 break; 384 break;
385 } 385 }
386 } 386 }
387 387
388 tab->AddInfoBar(new PDFUnsupportedFeatureInfoBarDelegate(tab, reader_group)); 388 tab->AddInfoBar(new PDFUnsupportedFeatureInfoBarDelegate(tab, reader_group));
389 } 389 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698