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

Side by Side Diff: chrome/browser/content_settings/content_settings_notification_provider.cc

Issue 7618021: base: Fix the TODO in ListValue::Remove(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix chromeos Created 9 years, 4 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 5
6 #include "chrome/browser/content_settings/content_settings_notification_provider .h" 6 #include "chrome/browser/content_settings/content_settings_notification_provider .h"
7 7
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "chrome/browser/notifications/desktop_notification_service_factory.h" 9 #include "chrome/browser/notifications/desktop_notification_service_factory.h"
10 #include "chrome/browser/notifications/notification.h" 10 #include "chrome/browser/notifications/notification.h"
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 ListPrefUpdate update_denied_sites( 274 ListPrefUpdate update_denied_sites(
275 prefs, prefs::kDesktopNotificationDeniedOrigins); 275 prefs, prefs::kDesktopNotificationDeniedOrigins);
276 ListValue* allowed_sites = update_allowed_sites.Get(); 276 ListValue* allowed_sites = update_allowed_sites.Get();
277 ListValue* denied_sites = update_denied_sites.Get(); 277 ListValue* denied_sites = update_denied_sites.Get();
278 // |value| is passed to the preferences list, or deleted. 278 // |value| is passed to the preferences list, or deleted.
279 StringValue* value = new StringValue(origin.spec()); 279 StringValue* value = new StringValue(origin.spec());
280 280
281 // Remove from one list and add to the other. 281 // Remove from one list and add to the other.
282 if (is_allowed) { 282 if (is_allowed) {
283 // Remove from the denied list. 283 // Remove from the denied list.
284 if (denied_sites->Remove(*value) != -1) 284 if (denied_sites->Remove(*value, NULL))
285 denied_changed = true; 285 denied_changed = true;
286 286
287 // Add to the allowed list. 287 // Add to the allowed list.
288 if (allowed_sites->AppendIfNotPresent(value)) 288 if (allowed_sites->AppendIfNotPresent(value))
289 allowed_changed = true; 289 allowed_changed = true;
290 } else { 290 } else {
291 // Remove from the allowed list. 291 // Remove from the allowed list.
292 if (allowed_sites->Remove(*value) != -1) 292 if (allowed_sites->Remove(*value, NULL))
293 allowed_changed = true; 293 allowed_changed = true;
294 294
295 // Add to the denied list. 295 // Add to the denied list.
296 if (denied_sites->AppendIfNotPresent(value)) 296 if (denied_sites->AppendIfNotPresent(value))
297 denied_changed = true; 297 denied_changed = true;
298 } 298 }
299 } 299 }
300 300
301 // Persist the pref if anthing changed, but only send updates for the 301 // Persist the pref if anthing changed, but only send updates for the
302 // list that changed. 302 // list that changed.
(...skipping 26 matching lines...) Expand all
329 if (profile_->IsOffTheRecord()) 329 if (profile_->IsOffTheRecord())
330 return; 330 return;
331 331
332 // Since this isn't called often, let the normal observer behavior update the 332 // Since this isn't called often, let the normal observer behavior update the
333 // cache in this case. 333 // cache in this case.
334 PrefService* prefs = profile_->GetPrefs(); 334 PrefService* prefs = profile_->GetPrefs();
335 { 335 {
336 ListPrefUpdate update(prefs, prefs::kDesktopNotificationAllowedOrigins); 336 ListPrefUpdate update(prefs, prefs::kDesktopNotificationAllowedOrigins);
337 ListValue* allowed_sites = update.Get(); 337 ListValue* allowed_sites = update.Get();
338 StringValue value(origin.spec()); 338 StringValue value(origin.spec());
339 int removed_index = allowed_sites->Remove(value); 339 bool removed = allowed_sites->Remove(value, NULL);
340 DCHECK_NE(-1, removed_index) << origin << " was not allowed"; 340 DCHECK_NE(false, removed) << origin << " was not allowed";
341 } 341 }
342 prefs->ScheduleSavePersistentPrefs(); 342 prefs->ScheduleSavePersistentPrefs();
343 } 343 }
344 344
345 void NotificationProvider::ResetBlockedOrigin(const GURL& origin) { 345 void NotificationProvider::ResetBlockedOrigin(const GURL& origin) {
346 if (profile_->IsOffTheRecord()) 346 if (profile_->IsOffTheRecord())
347 return; 347 return;
348 348
349 // Since this isn't called often, let the normal observer behavior update the 349 // Since this isn't called often, let the normal observer behavior update the
350 // cache in this case. 350 // cache in this case.
351 PrefService* prefs = profile_->GetPrefs(); 351 PrefService* prefs = profile_->GetPrefs();
352 { 352 {
353 ListPrefUpdate update(prefs, prefs::kDesktopNotificationDeniedOrigins); 353 ListPrefUpdate update(prefs, prefs::kDesktopNotificationDeniedOrigins);
354 ListValue* denied_sites = update.Get(); 354 ListValue* denied_sites = update.Get();
355 StringValue value(origin.spec()); 355 StringValue value(origin.spec());
356 int removed_index = denied_sites->Remove(value); 356 bool removed = denied_sites->Remove(value, NULL);
357 DCHECK_NE(-1, removed_index) << origin << " was not blocked"; 357 DCHECK_NE(false, removed) << origin << " was not blocked";
358 } 358 }
359 prefs->ScheduleSavePersistentPrefs(); 359 prefs->ScheduleSavePersistentPrefs();
360 } 360 }
361 361
362 void NotificationProvider::ResetAllOrigins() { 362 void NotificationProvider::ResetAllOrigins() {
363 PrefService* prefs = profile_->GetPrefs(); 363 PrefService* prefs = profile_->GetPrefs();
364 prefs->ClearPref(prefs::kDesktopNotificationAllowedOrigins); 364 prefs->ClearPref(prefs::kDesktopNotificationAllowedOrigins);
365 prefs->ClearPref(prefs::kDesktopNotificationDeniedOrigins); 365 prefs->ClearPref(prefs::kDesktopNotificationDeniedOrigins);
366 } 366 }
367 367
368 } // namespace content_settings 368 } // namespace content_settings
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/user_cros_settings_provider.cc ('k') | chrome/browser/extensions/extension_web_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698