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

Side by Side Diff: chrome/renderer/render_view.cc

Issue 5917001: Change the "Disable outdated plug-ins" lab to block them instead. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: string change Created 10 years 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
« no previous file with comments | « chrome/renderer/render_view.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/renderer/render_view.h" 5 #include "chrome/renderer/render_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 2736 matching lines...) Expand 10 before | Expand all | Expand 10 after
2747 &actual_mime_type)); 2747 &actual_mime_type));
2748 2748
2749 if (!found) 2749 if (!found)
2750 return NULL; 2750 return NULL;
2751 DCHECK(plugin_setting != CONTENT_SETTING_DEFAULT); 2751 DCHECK(plugin_setting != CONTENT_SETTING_DEFAULT);
2752 2752
2753 const PluginGroup* group = 2753 const PluginGroup* group =
2754 NPAPI::PluginList::Singleton()->GetPluginGroup(info); 2754 NPAPI::PluginList::Singleton()->GetPluginGroup(info);
2755 DCHECK(group != NULL); 2755 DCHECK(group != NULL);
2756 2756
2757 if (!info.enabled) { 2757 if (cmd->HasSwitch(switches::kDisableOutdatedPlugins) &&
darin (slow to review) 2010/12/16 17:39:25 i think you should rename the command line switch
Bernhard Bauer 2010/12/16 18:23:04 Done.
2758 if (cmd->HasSwitch(switches::kDisableOutdatedPlugins) && 2758 group->IsVulnerable()) {
2759 group->IsVulnerable()) { 2759 Send(new ViewHostMsg_DisabledOutdatedPlugin(routing_id_,
darin (slow to review) 2010/12/16 17:39:25 nit: change the IPC to BlockedOutdatedPlugin
Bernhard Bauer 2010/12/16 18:23:04 Done.
2760 Send(new ViewHostMsg_DisabledOutdatedPlugin(routing_id_, 2760 group->GetGroupName(),
2761 group->GetGroupName(), 2761 GURL(group->GetUpdateURL())));
2762 GURL(group->GetUpdateURL()))); 2762 return CreatePluginPlaceholder(frame,
2763 return CreateOutdatedPluginPlaceholder(frame, params, *group); 2763 params,
2764 } 2764 *group,
2765 IDR_OUTDATED_PLUGIN_HTML,
2766 IDS_PLUGIN_OUTDATED);
2767 }
2768 if (!info.enabled)
2765 return NULL; 2769 return NULL;
2766 }
2767 2770
2768 ContentSetting host_setting = 2771 ContentSetting host_setting =
2769 current_content_settings_.settings[CONTENT_SETTINGS_TYPE_PLUGINS]; 2772 current_content_settings_.settings[CONTENT_SETTINGS_TYPE_PLUGINS];
2770 if (info.path.value() == kDefaultPluginLibraryName || 2773 if (info.path.value() == kDefaultPluginLibraryName ||
2771 plugin_setting == CONTENT_SETTING_ALLOW || 2774 plugin_setting == CONTENT_SETTING_ALLOW ||
2772 host_setting == CONTENT_SETTING_ALLOW) { 2775 host_setting == CONTENT_SETTING_ALLOW) {
2773 scoped_refptr<pepper::PluginModule> pepper_module( 2776 scoped_refptr<pepper::PluginModule> pepper_module(
2774 pepper_delegate_.CreatePepperPlugin(info.path)); 2777 pepper_delegate_.CreatePepperPlugin(info.path));
2775 if (pepper_module) 2778 if (pepper_module)
2776 return CreatePepperPlugin(frame, params, info.path, pepper_module.get()); 2779 return CreatePepperPlugin(frame, params, info.path, pepper_module.get());
2777 return CreateNPAPIPlugin(frame, params, info.path, actual_mime_type); 2780 return CreateNPAPIPlugin(frame, params, info.path, actual_mime_type);
2778 } 2781 }
2779 std::string resource; 2782 std::string resource;
2780 if (cmd->HasSwitch(switches::kEnableResourceContentSettings)) 2783 if (cmd->HasSwitch(switches::kEnableResourceContentSettings))
2781 resource = group->identifier(); 2784 resource = group->identifier();
2782 DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS, resource); 2785 DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS, resource);
2783 int resource_id;
2784 int message_id;
2785 if (plugin_setting == CONTENT_SETTING_ASK) { 2786 if (plugin_setting == CONTENT_SETTING_ASK) {
2786 resource_id = IDR_BLOCKED_PLUGIN_HTML; 2787 return CreatePluginPlaceholder(frame,
2787 message_id = IDS_PLUGIN_LOAD; 2788 params,
2789 *group,
2790 IDR_BLOCKED_PLUGIN_HTML,
2791 IDS_PLUGIN_LOAD);
2788 } else { 2792 } else {
2789 resource_id = IDR_OUTDATED_PLUGIN_HTML; 2793 return CreatePluginPlaceholder(frame,
2790 message_id = IDS_PLUGIN_BLOCKED; 2794 params,
2795 *group,
2796 IDR_OUTDATED_PLUGIN_HTML,
2797 IDS_PLUGIN_BLOCKED);
2791 } 2798 }
2792 // |blocked_plugin| will delete itself when the WebViewPlugin
2793 // is destroyed.
2794 BlockedPlugin* blocked_plugin =
2795 new BlockedPlugin(this,
2796 frame,
2797 *group,
2798 params,
2799 webkit_preferences_,
2800 resource_id,
2801 l10n_util::GetStringUTF16(message_id));
2802 return blocked_plugin->plugin();
2803 } 2799 }
2804 2800
2805 WebWorker* RenderView::createWorker(WebFrame* frame, WebWorkerClient* client) { 2801 WebWorker* RenderView::createWorker(WebFrame* frame, WebWorkerClient* client) {
2806 WebApplicationCacheHostImpl* appcache_host = 2802 WebApplicationCacheHostImpl* appcache_host =
2807 WebApplicationCacheHostImpl::FromFrame(frame); 2803 WebApplicationCacheHostImpl::FromFrame(frame);
2808 int appcache_host_id = appcache_host ? appcache_host->host_id() : 0; 2804 int appcache_host_id = appcache_host ? appcache_host->host_id() : 0;
2809 return new WebWorkerProxy(client, RenderThread::current(), routing_id_, 2805 return new WebWorkerProxy(client, RenderThread::current(), routing_id_,
2810 appcache_host_id); 2806 appcache_host_id);
2811 } 2807 }
2812 2808
(...skipping 1611 matching lines...) Expand 10 before | Expand all | Expand 10 after
4424 } 4420 }
4425 4421
4426 WebPlugin* RenderView::CreateNPAPIPlugin(WebFrame* frame, 4422 WebPlugin* RenderView::CreateNPAPIPlugin(WebFrame* frame,
4427 const WebPluginParams& params, 4423 const WebPluginParams& params,
4428 const FilePath& path, 4424 const FilePath& path,
4429 const std::string& mime_type) { 4425 const std::string& mime_type) {
4430 return new webkit_glue::WebPluginImpl( 4426 return new webkit_glue::WebPluginImpl(
4431 frame, params, path, mime_type, AsWeakPtr()); 4427 frame, params, path, mime_type, AsWeakPtr());
4432 } 4428 }
4433 4429
4434 WebPlugin* RenderView::CreateOutdatedPluginPlaceholder( 4430 WebPlugin* RenderView::CreatePluginPlaceholder(
4435 WebFrame* frame, 4431 WebFrame* frame,
4436 const WebPluginParams& params, 4432 const WebPluginParams& params,
4437 const PluginGroup& group) { 4433 const PluginGroup& group,
4438 int resource_id = IDR_OUTDATED_PLUGIN_HTML; 4434 int resource_id,
4439 const base::StringPiece template_html( 4435 int message_id) {
4440 ResourceBundle::GetSharedInstance().GetRawDataResource(resource_id)); 4436 // |blocked_plugin| will delete itself when the WebViewPlugin
4441 4437 // is destroyed.
4442 DCHECK(!template_html.empty()) << "unable to load template. ID: " 4438 BlockedPlugin* blocked_plugin =
4443 << resource_id; 4439 new BlockedPlugin(this,
4444 4440 frame,
4445 DictionaryValue values; 4441 group,
4446 values.SetString("message", 4442 params,
4447 l10n_util::GetStringFUTF8(IDS_PLUGIN_OUTDATED, group.GetGroupName())); 4443 webkit_preferences_,
4448 values.Set("pluginGroup", group.GetDataForUI()); 4444 resource_id,
4449 4445 l10n_util::GetStringUTF16(message_id));
4450 // "t" is the id of the templates root node. 4446 return blocked_plugin->plugin();
4451 std::string htmlData = jstemplate_builder::GetTemplatesHtml(
4452 template_html, &values, "t");
4453
4454 return WebViewPlugin::Create(NULL,
4455 webkit_preferences_,
4456 htmlData,
4457 GURL("chrome://outdatedplugin/"));
4458 } 4447 }
4459 4448
4460 void RenderView::OnZoom(PageZoom::Function function) { 4449 void RenderView::OnZoom(PageZoom::Function function) {
4461 if (!webview()) // Not sure if this can happen, but no harm in being safe. 4450 if (!webview()) // Not sure if this can happen, but no harm in being safe.
4462 return; 4451 return;
4463 4452
4464 webview()->hidePopups(); 4453 webview()->hidePopups();
4465 4454
4466 double old_zoom_level = webview()->zoomLevel(); 4455 double old_zoom_level = webview()->zoomLevel();
4467 double zoom_level; 4456 double zoom_level;
(...skipping 1278 matching lines...) Expand 10 before | Expand all | Expand 10 after
5746 external_popup_menu_.reset(); 5735 external_popup_menu_.reset();
5747 } 5736 }
5748 #endif 5737 #endif
5749 5738
5750 void RenderView::AddErrorToRootConsole(const string16& message) { 5739 void RenderView::AddErrorToRootConsole(const string16& message) {
5751 if (webview() && webview()->mainFrame()) { 5740 if (webview() && webview()->mainFrame()) {
5752 webview()->mainFrame()->addMessageToConsole( 5741 webview()->mainFrame()->addMessageToConsole(
5753 WebConsoleMessage(WebConsoleMessage::LevelError, message)); 5742 WebConsoleMessage(WebConsoleMessage::LevelError, message));
5754 } 5743 }
5755 } 5744 }
OLDNEW
« no previous file with comments | « chrome/renderer/render_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698