diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-13 19:39:41 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-13 19:39:41 +0000 |
commit | 6a9d1deb219eabec65602ef35a3199ed82aacf52 (patch) | |
tree | 90cd8edb6d6515888c3ff46df3d4449ed411627f /chrome/browser/plugins | |
parent | 99fb79ea66f4d43e7595a9bb5375271a5a30d7a7 (diff) | |
download | chromium_src-6a9d1deb219eabec65602ef35a3199ed82aacf52.zip chromium_src-6a9d1deb219eabec65602ef35a3199ed82aacf52.tar.gz chromium_src-6a9d1deb219eabec65602ef35a3199ed82aacf52.tar.bz2 |
Disable the Run option in the context menu for blocked plugins if they were blocked by policy.
BUG=321772
Review URL: https://codereview.chromium.org/134233002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244555 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/plugins')
-rw-r--r-- | chrome/browser/plugins/plugin_info_message_filter.cc | 18 | ||||
-rw-r--r-- | chrome/browser/plugins/plugin_info_message_filter.h | 3 |
2 files changed, 14 insertions, 7 deletions
diff --git a/chrome/browser/plugins/plugin_info_message_filter.cc b/chrome/browser/plugins/plugin_info_message_filter.cc index 71870a4..2995751 100644 --- a/chrome/browser/plugins/plugin_info_message_filter.cc +++ b/chrome/browser/plugins/plugin_info_message_filter.cc @@ -219,11 +219,12 @@ void PluginInfoMessageFilter::Context::DecidePluginStatus( ContentSetting plugin_setting = CONTENT_SETTING_DEFAULT; bool uses_default_content_setting = true; + bool is_managed = false; // Check plug-in content settings. The primary URL is the top origin URL and // the secondary URL is the plug-in URL. GetPluginContentSetting(plugin, params.top_origin_url, params.url, plugin_metadata->identifier(), &plugin_setting, - &uses_default_content_setting); + &uses_default_content_setting, &is_managed); DCHECK(plugin_setting != CONTENT_SETTING_DEFAULT); PluginMetadata::SecurityStatus plugin_status = @@ -272,10 +273,13 @@ void PluginInfoMessageFilter::Context::DecidePluginStatus( return; } - if (plugin_setting == CONTENT_SETTING_ASK) - status->value = ChromeViewHostMsg_GetPluginInfo_Status::kClickToPlay; - else if (plugin_setting == CONTENT_SETTING_BLOCK) - status->value = ChromeViewHostMsg_GetPluginInfo_Status::kBlocked; + if (plugin_setting == CONTENT_SETTING_ASK) { + status->value = ChromeViewHostMsg_GetPluginInfo_Status::kClickToPlay; + } else if (plugin_setting == CONTENT_SETTING_BLOCK) { + status->value = + is_managed ? ChromeViewHostMsg_GetPluginInfo_Status::kBlockedByPolicy + : ChromeViewHostMsg_GetPluginInfo_Status::kBlocked; + } if (status->value == ChromeViewHostMsg_GetPluginInfo_Status::kAllowed) { // Allow an embedder of <webview> to block a plugin from being loaded inside @@ -344,7 +348,8 @@ void PluginInfoMessageFilter::Context::GetPluginContentSetting( const GURL& plugin_url, const std::string& resource, ContentSetting* setting, - bool* uses_default_content_setting) const { + bool* uses_default_content_setting, + bool* is_managed) const { scoped_ptr<base::Value> value; content_settings::SettingInfo info; bool uses_plugin_specific_setting = false; @@ -371,6 +376,7 @@ void PluginInfoMessageFilter::Context::GetPluginContentSetting( !uses_plugin_specific_setting && info.primary_pattern == ContentSettingsPattern::Wildcard() && info.secondary_pattern == ContentSettingsPattern::Wildcard(); + *is_managed = info.source == content_settings::SETTING_SOURCE_POLICY; } void PluginInfoMessageFilter::Context::MaybeGrantAccess( diff --git a/chrome/browser/plugins/plugin_info_message_filter.h b/chrome/browser/plugins/plugin_info_message_filter.h index b881093..fb1744d 100644 --- a/chrome/browser/plugins/plugin_info_message_filter.h +++ b/chrome/browser/plugins/plugin_info_message_filter.h @@ -60,7 +60,8 @@ class PluginInfoMessageFilter : public content::BrowserMessageFilter { const GURL& plugin_url, const std::string& resource, ContentSetting* setting, - bool* is_default) const; + bool* is_default, + bool* is_managed) const; void MaybeGrantAccess(const ChromeViewHostMsg_GetPluginInfo_Status& status, const base::FilePath& path) const; |