summaryrefslogtreecommitdiffstats
path: root/chrome/browser/content_settings/content_settings_platform_app_provider.h
diff options
context:
space:
mode:
authorbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-15 01:49:21 +0000
committerbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-15 01:49:21 +0000
commit33d8bdda6040493a4d79594bd988b2c595209237 (patch)
tree39eb5bee9672b4e896d56cf5d12c1a2d7c197c5b /chrome/browser/content_settings/content_settings_platform_app_provider.h
parent8bd9357c66b6197b55b68c179bd480aa3472ea9f (diff)
downloadchromium_src-33d8bdda6040493a4d79594bd988b2c595209237.zip
chromium_src-33d8bdda6040493a4d79594bd988b2c595209237.tar.gz
chromium_src-33d8bdda6040493a4d79594bd988b2c595209237.tar.bz2
Whitelist extensions with bundled plug-ins for plug-ins.
BUG=113494 TEST=chromoting works with click-to-play. Review URL: http://codereview.chromium.org/9395006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122005 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/content_settings/content_settings_platform_app_provider.h')
-rw-r--r--chrome/browser/content_settings/content_settings_platform_app_provider.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/chrome/browser/content_settings/content_settings_platform_app_provider.h b/chrome/browser/content_settings/content_settings_platform_app_provider.h
index 0f39898..2d93a9e 100644
--- a/chrome/browser/content_settings/content_settings_platform_app_provider.h
+++ b/chrome/browser/content_settings/content_settings_platform_app_provider.h
@@ -5,19 +5,24 @@
#ifndef CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_PLATFORM_APP_PROVIDER_H_
#define CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_PLATFORM_APP_PROVIDER_H_
+#include "base/memory/scoped_ptr.h"
#include "base/synchronization/lock.h"
#include "chrome/browser/content_settings/content_settings_observable_provider.h"
#include "chrome/browser/content_settings/content_settings_origin_identifier_value_map.h"
+#include "chrome/common/content_settings.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
+class Extension;
+class ExtensionService;
+
namespace content_settings {
// A content settings provider which disables certain plugins for platform apps.
class PlatformAppProvider : public ObservableProvider,
public content::NotificationObserver {
public:
- PlatformAppProvider();
+ explicit PlatformAppProvider(ExtensionService* extension_service);
virtual ~PlatformAppProvider();
@@ -44,11 +49,14 @@ class PlatformAppProvider : public ObservableProvider,
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
private:
+ void SetContentSettingForExtension(const Extension* extension,
+ ContentSetting setting);
+
OriginIdentifierValueMap value_map_;
// Used around accesses to the |value_map_| list to guarantee thread safety.
mutable base::Lock lock_;
- content::NotificationRegistrar* registrar_;
+ scoped_ptr<content::NotificationRegistrar> registrar_;
DISALLOW_COPY_AND_ASSIGN(PlatformAppProvider);
};