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

Side by Side Diff: chrome/browser/notifications/desktop_notification_service.cc

Issue 3304015: Use PrefChangeRegistrar everywhere (Closed)
Patch Set: final version for commit Created 10 years, 2 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #include "chrome/browser/notifications/desktop_notification_service.h" 5 #include "chrome/browser/notifications/desktop_notification_service.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "base/histogram.h" 9 #include "base/histogram.h"
10 #include "base/thread.h" 10 #include "base/thread.h"
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 // Whether the user clicked one of the buttons. 203 // Whether the user clicked one of the buttons.
204 bool action_taken_; 204 bool action_taken_;
205 205
206 DISALLOW_COPY_AND_ASSIGN(NotificationPermissionInfoBarDelegate); 206 DISALLOW_COPY_AND_ASSIGN(NotificationPermissionInfoBarDelegate);
207 }; 207 };
208 208
209 DesktopNotificationService::DesktopNotificationService(Profile* profile, 209 DesktopNotificationService::DesktopNotificationService(Profile* profile,
210 NotificationUIManager* ui_manager) 210 NotificationUIManager* ui_manager)
211 : profile_(profile), 211 : profile_(profile),
212 ui_manager_(ui_manager) { 212 ui_manager_(ui_manager) {
213 registrar_.Init(profile_->GetPrefs());
213 InitPrefs(); 214 InitPrefs();
214 StartObserving(); 215 StartObserving();
215 } 216 }
216 217
217 DesktopNotificationService::~DesktopNotificationService() { 218 DesktopNotificationService::~DesktopNotificationService() {
218 StopObserving(); 219 StopObserving();
219 } 220 }
220 221
221 void DesktopNotificationService::RegisterUserPrefs(PrefService* user_prefs) { 222 void DesktopNotificationService::RegisterUserPrefs(PrefService* user_prefs) {
222 if (!user_prefs->FindPreference( 223 if (!user_prefs->FindPreference(
(...skipping 24 matching lines...) Expand all
247 248
248 prefs_cache_ = new NotificationsPrefsCache(); 249 prefs_cache_ = new NotificationsPrefsCache();
249 prefs_cache_->SetCacheDefaultContentSetting(default_content_setting); 250 prefs_cache_->SetCacheDefaultContentSetting(default_content_setting);
250 prefs_cache_->SetCacheAllowedOrigins(allowed_origins); 251 prefs_cache_->SetCacheAllowedOrigins(allowed_origins);
251 prefs_cache_->SetCacheDeniedOrigins(denied_origins); 252 prefs_cache_->SetCacheDeniedOrigins(denied_origins);
252 prefs_cache_->set_is_initialized(true); 253 prefs_cache_->set_is_initialized(true);
253 } 254 }
254 255
255 void DesktopNotificationService::StartObserving() { 256 void DesktopNotificationService::StartObserving() {
256 if (!profile_->IsOffTheRecord()) { 257 if (!profile_->IsOffTheRecord()) {
257 PrefService* prefs = profile_->GetPrefs(); 258 registrar_.Add(prefs::kDesktopNotificationDefaultContentSetting, this);
258 prefs->AddPrefObserver(prefs::kDesktopNotificationDefaultContentSetting, 259 registrar_.Add(prefs::kDesktopNotificationAllowedOrigins, this);
259 this); 260 registrar_.Add(prefs::kDesktopNotificationDeniedOrigins, this);
260 prefs->AddPrefObserver(prefs::kDesktopNotificationAllowedOrigins, this);
261 prefs->AddPrefObserver(prefs::kDesktopNotificationDeniedOrigins, this);
262 } 261 }
263 } 262 }
264 263
265 void DesktopNotificationService::StopObserving() { 264 void DesktopNotificationService::StopObserving() {
266 if (!profile_->IsOffTheRecord()) { 265 if (!profile_->IsOffTheRecord()) {
267 PrefService* prefs = profile_->GetPrefs(); 266 registrar_.RemoveAll();
268 prefs->RemovePrefObserver(prefs::kDesktopNotificationDefaultContentSetting,
269 this);
270 prefs->RemovePrefObserver(prefs::kDesktopNotificationAllowedOrigins, this);
271 prefs->RemovePrefObserver(prefs::kDesktopNotificationDeniedOrigins, this);
272 } 267 }
273 } 268 }
274 269
275 void DesktopNotificationService::GrantPermission(const GURL& origin) { 270 void DesktopNotificationService::GrantPermission(const GURL& origin) {
276 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); 271 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
277 PersistPermissionChange(origin, true); 272 PersistPermissionChange(origin, true);
278 273
279 // Schedule a cache update on the IO thread. 274 // Schedule a cache update on the IO thread.
280 ChromeThread::PostTask( 275 ChromeThread::PostTask(
281 ChromeThread::IO, FROM_HERE, 276 ChromeThread::IO, FROM_HERE,
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 if (origin.SchemeIs(chrome::kExtensionScheme)) { 581 if (origin.SchemeIs(chrome::kExtensionScheme)) {
587 ExtensionsService* ext_service = profile_->GetExtensionsService(); 582 ExtensionsService* ext_service = profile_->GetExtensionsService();
588 if (ext_service) { 583 if (ext_service) {
589 Extension* extension = ext_service->GetExtensionByURL(origin); 584 Extension* extension = ext_service->GetExtensionByURL(origin);
590 if (extension) 585 if (extension)
591 return UTF8ToUTF16(extension->name()); 586 return UTF8ToUTF16(extension->name());
592 } 587 }
593 } 588 }
594 return UTF8ToUTF16(origin.host()); 589 return UTF8ToUTF16(origin.host());
595 } 590 }
OLDNEW
« no previous file with comments | « chrome/browser/notifications/desktop_notification_service.h ('k') | chrome/browser/prefs/pref_change_registrar.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698