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

Side by Side Diff: chrome/browser/geolocation/geolocation_content_settings_map.cc

Issue 7088017: Split incognito extension content settings in session-only and persistent. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 9 years, 6 months 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 // Implementation of the geolocation content settings map. Styled on 5 // Implementation of the geolocation content settings map. Styled on
6 // HostContentSettingsMap however unlike that class, this one does not hold 6 // HostContentSettingsMap however unlike that class, this one does not hold
7 // an additional in-memory copy of the settings as it does not need to support 7 // an additional in-memory copy of the settings as it does not need to support
8 // thread safe synchronous access to the settings; all geolocation permissions 8 // thread safe synchronous access to the settings; all geolocation permissions
9 // are read and written in the UI thread. (If in future this is no longer the 9 // are read and written in the UI thread. (If in future this is no longer the
10 // case, refer to http://codereview.chromium.org/1525018 for a previous version 10 // case, refer to http://codereview.chromium.org/1525018 for a previous version
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 Details<const ContentSettingsDetails>(&details)); 204 Details<const ContentSettingsDetails>(&details));
205 } 205 }
206 206
207 void GeolocationContentSettingsMap::Observe( 207 void GeolocationContentSettingsMap::Observe(
208 NotificationType type, 208 NotificationType type,
209 const NotificationSource& source, 209 const NotificationSource& source,
210 const NotificationDetails& details) { 210 const NotificationDetails& details) {
211 if (type == NotificationType::PREF_CHANGED) { 211 if (type == NotificationType::PREF_CHANGED) {
212 const std::string& name = *Details<std::string>(details).ptr(); 212 const std::string& name = *Details<std::string>(details).ptr();
213 if (name == prefs::kGeolocationDefaultContentSetting) { 213 if (name == prefs::kGeolocationDefaultContentSetting) {
214 NotifyObservers(ContentSettingsDetails( 214 ContentSettingsDetails details(ContentSettingsPattern(),
215 ContentSettingsPattern(), 215 CONTENT_SETTINGS_TYPE_DEFAULT,
216 CONTENT_SETTINGS_TYPE_DEFAULT, 216 std::string());
217 "")); 217 NotifyObservers(details);
218 } 218 }
219 } else if (NotificationType::PROFILE_DESTROYED == type) { 219 } else if (NotificationType::PROFILE_DESTROYED == type) {
220 UnregisterObservers(); 220 UnregisterObservers();
221 } else { 221 } else {
222 NOTREACHED(); 222 NOTREACHED();
223 } 223 }
224 } 224 }
225 225
226 void GeolocationContentSettingsMap::UnregisterObservers() { 226 void GeolocationContentSettingsMap::UnregisterObservers() {
227 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 227 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
(...skipping 20 matching lines...) Expand all
248 bool found = dictionary->GetIntegerWithoutPathExpansion(target, &setting); 248 bool found = dictionary->GetIntegerWithoutPathExpansion(target, &setting);
249 DCHECK(found); 249 DCHECK(found);
250 GURL target_url(target); 250 GURL target_url(target);
251 // An empty URL has a special meaning (wildcard), so only accept invalid 251 // An empty URL has a special meaning (wildcard), so only accept invalid
252 // URLs if the original version was empty (avoids treating corrupted prefs 252 // URLs if the original version was empty (avoids treating corrupted prefs
253 // as the wildcard entry; see http://crbug.com/39685) 253 // as the wildcard entry; see http://crbug.com/39685)
254 if (target_url.is_valid() || target.empty()) 254 if (target_url.is_valid() || target.empty())
255 (*one_origin_settings)[target_url] = IntToContentSetting(setting); 255 (*one_origin_settings)[target_url] = IntToContentSetting(setting);
256 } 256 }
257 } 257 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_prefs.cc ('k') | chrome/browser/geolocation/geolocation_content_settings_map_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698