summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authorbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-02 10:45:39 +0000
committerbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-02 10:45:39 +0000
commit414508da5e50c0a854ff67a83078b01aefa27085 (patch)
tree6ccb336eeb7dcdf439bb5ffae0e2b38b268a280e /chrome/renderer
parent3ddfe4812377f6a206b49a8762d61fde0b6185d5 (diff)
downloadchromium_src-414508da5e50c0a854ff67a83078b01aefa27085.zip
chromium_src-414508da5e50c0a854ff67a83078b01aefa27085.tar.gz
chromium_src-414508da5e50c0a854ff67a83078b01aefa27085.tar.bz2
Allow plug-ins after "Run all plug-ins" has been clicked.
BUG=59806 TEST=see bug for manual test Review URL: http://codereview.chromium.org/3987003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64730 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r--chrome/renderer/render_view.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index d24b27b..a4e4130 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -2505,7 +2505,7 @@ void RenderView::runModal() {
WebPlugin* RenderView::createPlugin(WebFrame* frame,
const WebPluginParams& params) {
bool found = false;
- ContentSetting setting = CONTENT_SETTING_DEFAULT;
+ ContentSetting plugin_setting = CONTENT_SETTING_DEFAULT;
CommandLine* cmd = CommandLine::ForCurrentProcess();
WebPluginInfo info;
GURL url(params.url);
@@ -2520,7 +2520,7 @@ WebPlugin* RenderView::createPlugin(WebFrame* frame,
if (!found)
return NULL;
- DCHECK(setting != CONTENT_SETTING_DEFAULT);
+ DCHECK(plugin_setting != CONTENT_SETTING_DEFAULT);
scoped_ptr<PluginGroup> group(PluginGroup::CopyOrCreatePluginGroup(info));
group->AddPlugin(info, 0);
@@ -2536,10 +2536,13 @@ WebPlugin* RenderView::createPlugin(WebFrame* frame,
return NULL;
}
+ ContentSetting host_setting =
+ current_content_settings_.settings[CONTENT_SETTINGS_TYPE_PLUGINS];
if (info.path.value() == kDefaultPluginLibraryName ||
- setting == CONTENT_SETTING_ALLOW) {
+ plugin_setting == CONTENT_SETTING_ALLOW ||
+ host_setting == CONTENT_SETTING_ALLOW) {
scoped_refptr<pepper::PluginModule> pepper_module(
- PepperPluginRegistry::GetInstance()->GetModule(info.path));
+ PepperPluginRegistry::GetInstance()->GetModule(info.path));
if (pepper_module) {
return CreatePepperPlugin(frame,
params,
@@ -2554,7 +2557,7 @@ WebPlugin* RenderView::createPlugin(WebFrame* frame,
DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS, resource);
int resource_id;
int message_id;
- if (setting == CONTENT_SETTING_ASK) {
+ if (plugin_setting == CONTENT_SETTING_ASK) {
resource_id = IDR_BLOCKED_PLUGIN_HTML;
message_id = IDS_PLUGIN_LOAD;
} else {
@@ -4527,6 +4530,8 @@ void RenderView::OnInstallMissingPlugin() {
}
void RenderView::OnLoadBlockedPlugins() {
+ current_content_settings_.settings[CONTENT_SETTINGS_TYPE_PLUGINS] =
+ CONTENT_SETTING_ALLOW;
NotificationService::current()->Notify(NotificationType::SHOULD_LOAD_PLUGINS,
Source<RenderView>(this),
NotificationService::NoDetails());