summaryrefslogtreecommitdiffstats
path: root/chrome/browser/content_settings
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/content_settings')
-rw-r--r--chrome/browser/content_settings/tab_specific_content_settings.cc17
-rw-r--r--chrome/browser/content_settings/tab_specific_content_settings.h7
2 files changed, 19 insertions, 5 deletions
diff --git a/chrome/browser/content_settings/tab_specific_content_settings.cc b/chrome/browser/content_settings/tab_specific_content_settings.cc
index 39b6e86..fb98667 100644
--- a/chrome/browser/content_settings/tab_specific_content_settings.cc
+++ b/chrome/browser/content_settings/tab_specific_content_settings.cc
@@ -207,7 +207,8 @@ bool TabSpecificContentSettings::IsContentBlocked(
content_type == CONTENT_SETTINGS_TYPE_COOKIES ||
content_type == CONTENT_SETTINGS_TYPE_POPUPS ||
content_type == CONTENT_SETTINGS_TYPE_MIXEDSCRIPT ||
- content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM)
+ content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM ||
+ content_type == CONTENT_SETTINGS_TYPE_PPAPI_BROKER)
return content_blocked_[content_type];
return false;
@@ -226,10 +227,12 @@ void TabSpecificContentSettings::SetBlockageHasBeenIndicated(
bool TabSpecificContentSettings::IsContentAccessed(
ContentSettingsType content_type) const {
// This method currently only returns meaningful values for the content type
- // cookies and mediastream.
+ // cookies, mediastream, and PPAPI broker.
if (content_type != CONTENT_SETTINGS_TYPE_COOKIES &&
- content_type != CONTENT_SETTINGS_TYPE_MEDIASTREAM)
+ content_type != CONTENT_SETTINGS_TYPE_MEDIASTREAM &&
+ content_type != CONTENT_SETTINGS_TYPE_PPAPI_BROKER) {
return false;
+ }
return content_accessed_[content_type];
}
@@ -475,6 +478,14 @@ void TabSpecificContentSettings::ClearGeolocationContentSettings() {
geolocation_settings_state_.ClearStateMap();
}
+void TabSpecificContentSettings::SetPepperBrokerAllowed(bool allowed) {
+ if (allowed) {
+ OnContentAccessed(CONTENT_SETTINGS_TYPE_PPAPI_BROKER);
+ } else {
+ OnContentBlocked(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string());
+ }
+}
+
void TabSpecificContentSettings::RenderViewForInterstitialPageCreated(
RenderViewHost* render_view_host) {
// We want to tell the renderer-side code to ignore content settings for this
diff --git a/chrome/browser/content_settings/tab_specific_content_settings.h b/chrome/browser/content_settings/tab_specific_content_settings.h
index fee681f..a13fe7e 100644
--- a/chrome/browser/content_settings/tab_specific_content_settings.h
+++ b/chrome/browser/content_settings/tab_specific_content_settings.h
@@ -229,6 +229,10 @@ class TabSpecificContentSettings
load_plugins_link_enabled_ = enabled;
}
+ // Called to indicate whether access to the Pepper broker was allowed or
+ // blocked.
+ void SetPepperBrokerAllowed(bool allowed);
+
// content::WebContentsObserver overrides.
virtual void RenderViewForInterstitialPageCreated(
content::RenderViewHost* render_view_host) OVERRIDE;
@@ -250,6 +254,7 @@ class TabSpecificContentSettings
// Message handlers. Public for testing.
void OnContentBlocked(ContentSettingsType type,
const std::string& resource_identifier);
+ void OnContentAccessed(ContentSettingsType type);
// These methods are invoked on the UI thread by the static functions above.
// Public for testing.
@@ -294,8 +299,6 @@ class TabSpecificContentSettings
void AddBlockedResource(ContentSettingsType content_type,
const std::string& resource_identifier);
- void OnContentAccessed(ContentSettingsType type);
-
// content::NotificationObserver implementation.
virtual void Observe(int type,
const content::NotificationSource& source,