Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Side by Side Diff: chrome/browser/content_settings/host_content_settings_map.h

Issue 8539004: Replace SetContentSetting method of the content_settings::Provider interface with GetWebsiteSetting (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Maps hostnames to custom content settings. Written on the UI thread and read 5 // Maps hostnames to custom content settings. Written on the UI thread and read
6 // on any thread. One instance per profile. 6 // on any thread. One instance per profile.
7 7
8 #ifndef CHROME_BROWSER_CONTENT_SETTINGS_HOST_CONTENT_SETTINGS_MAP_H_ 8 #ifndef CHROME_BROWSER_CONTENT_SETTINGS_HOST_CONTENT_SETTINGS_MAP_H_
9 #define CHROME_BROWSER_CONTENT_SETTINGS_HOST_CONTENT_SETTINGS_MAP_H_ 9 #define CHROME_BROWSER_CONTENT_SETTINGS_HOST_CONTENT_SETTINGS_MAP_H_
10 #pragma once 10 #pragma once
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 const std::string& resource_identifier, 115 const std::string& resource_identifier,
116 ContentSettingsForOneType* settings) const; 116 ContentSettingsForOneType* settings) const;
117 117
118 // Sets the default setting for a particular content type. This method must 118 // Sets the default setting for a particular content type. This method must
119 // not be invoked on an incognito map. 119 // not be invoked on an incognito map.
120 // 120 //
121 // This should only be called on the UI thread. 121 // This should only be called on the UI thread.
122 void SetDefaultContentSetting(ContentSettingsType content_type, 122 void SetDefaultContentSetting(ContentSettingsType content_type,
123 ContentSetting setting); 123 ContentSetting setting);
124 124
125 // Sets the content setting for the given patterns and content type. 125 // Sets the content |setting| for the given patterns, |content_type| and
126 // Setting the value to CONTENT_SETTING_DEFAULT causes the default setting 126 // |resource_identifier|. Setting the value to CONTENT_SETTING_DEFAULT causes
127 // for that type to be used when loading pages matching this pattern. For 127 // the default setting for that type to be used when loading pages matching
128 // ContentSettingsTypes that require an resource identifier to be specified, 128 // this pattern.
129 // the |resource_identifier| must be non-empty. 129 // NOTICE: This is just a convenience method for content types that use
130 // |CONTENT_SETTING| as their data type. For content types that user other
Bernhard Bauer 2011/11/15 15:40:28 Nit: "[...] that use other [...]"
markusheintz_ 2011/11/15 17:36:58 Done.
131 // data types please use the method SetWebsiteSetting.
130 // 132 //
131 // This should only be called on the UI thread. 133 // This should only be called on the UI thread.
132 void SetContentSetting(const ContentSettingsPattern& primary_pattern, 134 void SetContentSetting(const ContentSettingsPattern& primary_pattern,
133 const ContentSettingsPattern& secondary_pattern, 135 const ContentSettingsPattern& secondary_pattern,
134 ContentSettingsType content_type, 136 ContentSettingsType content_type,
135 const std::string& resource_identifier, 137 const std::string& resource_identifier,
136 ContentSetting setting); 138 ContentSetting setting);
137 139
140 // Sets the |value| for the given patterns, |content_type| and
141 // |resource_identifier|. Setting the value to NULL causes the default value
142 // for that type to be used when loading pages matching this pattern.
143 //
144 // Takes ownership of the passed value.
145 void SetWebsiteSetting(const ContentSettingsPattern& primary_pattern,
146 const ContentSettingsPattern& secondary_pattern,
147 ContentSettingsType content_type,
148 const std::string& resource_identifier,
149 base::Value* value);
150
138 // Convenience method to add a content setting for the given URLs, making sure 151 // Convenience method to add a content setting for the given URLs, making sure
139 // that there is no setting overriding it. For ContentSettingsTypes that 152 // that there is no setting overriding it. For ContentSettingsTypes that
140 // require an resource identifier to be specified, the |resource_identifier| 153 // require an resource identifier to be specified, the |resource_identifier|
141 // must be non-empty. 154 // must be non-empty.
142 // 155 //
143 // This should only be called on the UI thread. 156 // This should only be called on the UI thread.
144 void AddExceptionForURL(const GURL& primary_url, 157 void AddExceptionForURL(const GURL& primary_url,
145 const GURL& secondary_url, 158 const GURL& secondary_url,
146 ContentSettingsType content_type, 159 ContentSettingsType content_type,
147 const std::string& resource_identifier, 160 const std::string& resource_identifier,
148 ContentSetting setting); 161 ContentSetting setting);
149 162
150 // Clears all host-specific settings for one content type. 163 // Clears all host-specific settings for one content type.
151 // 164 //
152 // This should only be called on the UI thread. 165 // This should only be called on the UI thread.
153 void ClearSettingsForOneType(ContentSettingsType content_type); 166 void ClearSettingsForOneType(ContentSettingsType content_type);
154 167
168 static bool IsValueAllowedForType(const base::Value* value,
169 ContentSettingsType content_type);
155 static bool IsSettingAllowedForType(ContentSetting setting, 170 static bool IsSettingAllowedForType(ContentSetting setting,
156 ContentSettingsType content_type); 171 ContentSettingsType content_type);
157 172
158 // Detaches the HostContentSettingsMap from all Profile-related objects like 173 // Detaches the HostContentSettingsMap from all Profile-related objects like
159 // PrefService. This methods needs to be called before destroying the Profile. 174 // PrefService. This methods needs to be called before destroying the Profile.
160 // Afterwards, none of the methods above that should only be called on the UI 175 // Afterwards, none of the methods above that should only be called on the UI
161 // thread should be called anymore. 176 // thread should be called anymore.
162 void ShutdownOnUIThread(); 177 void ShutdownOnUIThread();
163 178
164 // content_settings::Observer implementation. 179 // content_settings::Observer implementation.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 // Content setting providers. 235 // Content setting providers.
221 ProviderMap content_settings_providers_; 236 ProviderMap content_settings_providers_;
222 237
223 // Used around accesses to the following objects to guarantee thread safety. 238 // Used around accesses to the following objects to guarantee thread safety.
224 mutable base::Lock lock_; 239 mutable base::Lock lock_;
225 240
226 DISALLOW_COPY_AND_ASSIGN(HostContentSettingsMap); 241 DISALLOW_COPY_AND_ASSIGN(HostContentSettingsMap);
227 }; 242 };
228 243
229 #endif // CHROME_BROWSER_CONTENT_SETTINGS_HOST_CONTENT_SETTINGS_MAP_H_ 244 #endif // CHROME_BROWSER_CONTENT_SETTINGS_HOST_CONTENT_SETTINGS_MAP_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698