diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-02 10:45:39 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-02 10:45:39 +0000 |
commit | 414508da5e50c0a854ff67a83078b01aefa27085 (patch) | |
tree | 6ccb336eeb7dcdf439bb5ffae0e2b38b268a280e /chrome/renderer | |
parent | 3ddfe4812377f6a206b49a8762d61fde0b6185d5 (diff) | |
download | chromium_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.cc | 15 |
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()); |