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

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

Issue 194108: adds DesktopNotificationService to Profile (Closed)
Patch Set: more feedback Created 11 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
(Empty)
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/notifications/notifications_prefs_cache.h"
6
7 #include "base/string_util.h"
8 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/chrome_thread.h"
10 #include "chrome/common/pref_service.h"
11 #include "webkit/api/public/WebNotificationPresenter.h"
12
13 NotificationsPrefsCache::NotificationsPrefsCache(
14 ListValue* allowed, ListValue* denied) {
15 ListValue::const_iterator i;
16 std::wstring origin;
17 if (allowed) {
18 for (i = allowed->begin(); i != allowed->end(); ++i) {
19 (*i)->GetAsString(&origin);
20 allowed_origins_.insert(GURL(WideToUTF8(origin)));
21 }
22 }
23 if (denied) {
24 for (i = denied->begin(); i != denied->end(); ++i) {
25 (*i)->GetAsString(&origin);
26 denied_origins_.insert(GURL(WideToUTF8(origin)));
27 }
28 }
29 }
30
31 void NotificationsPrefsCache::CacheAllowedOrigin(
32 const GURL& origin) {
33 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
34 std::set<GURL>::iterator iter;
35 allowed_origins_.insert(origin);
36 if ((iter = denied_origins_.find(origin)) != denied_origins_.end())
37 denied_origins_.erase(iter);
38 }
39
40 void NotificationsPrefsCache::CacheDeniedOrigin(
41 const GURL& origin) {
42 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
43 std::set<GURL>::iterator iter;
44 denied_origins_.insert(origin);
45 if ((iter = allowed_origins_.find(origin)) != allowed_origins_.end())
46 allowed_origins_.erase(iter);
47 }
48
49 int NotificationsPrefsCache::HasPermission(const GURL& origin) {
50 if (IsOriginAllowed(origin))
51 return WebKit::WebNotificationPresenter::PermissionAllowed;
52 if (IsOriginDenied(origin))
53 return WebKit::WebNotificationPresenter::PermissionDenied;
54 return WebKit::WebNotificationPresenter::PermissionNotAllowed;
55 }
56
57 bool NotificationsPrefsCache::IsOriginAllowed(
58 const GURL& origin) {
59 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
60 return (allowed_origins_.find(origin) != allowed_origins_.end());
61 }
62
63 bool NotificationsPrefsCache::IsOriginDenied(
64 const GURL& origin) {
65 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
66 return (denied_origins_.find(origin) != denied_origins_.end());
67 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698