| Index: chrome/browser/notifications/notifications_prefs_cache.cc
|
| diff --git a/chrome/browser/notifications/notifications_prefs_cache.cc b/chrome/browser/notifications/notifications_prefs_cache.cc
|
| index 6a5172bb192956cc43089db8b3cfd0b098e0af67..2fec1e88c6e5d60ddf417a71518a7b8aae2b5610 100644
|
| --- a/chrome/browser/notifications/notifications_prefs_cache.cc
|
| +++ b/chrome/browser/notifications/notifications_prefs_cache.cc
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| @@ -11,7 +11,8 @@
|
| #include "third_party/WebKit/WebKit/chromium/public/WebNotificationPresenter.h"
|
|
|
| NotificationsPrefsCache::NotificationsPrefsCache()
|
| - : is_initialized_(false) {
|
| + : default_content_setting_(CONTENT_SETTING_DEFAULT),
|
| + is_initialized_(false) {
|
| }
|
|
|
| void NotificationsPrefsCache::CacheAllowedOrigin(
|
| @@ -44,6 +45,11 @@ void NotificationsPrefsCache::SetCacheDeniedOrigins(
|
| denied_origins_.insert(denied.begin(), denied.end());
|
| }
|
|
|
| +void NotificationsPrefsCache::SetCacheDefaultContentSetting(
|
| + ContentSetting setting) {
|
| + default_content_setting_ = setting;
|
| +}
|
| +
|
| // static
|
| void NotificationsPrefsCache::ListValueToGurlVector(
|
| const ListValue& origin_list,
|
| @@ -61,19 +67,28 @@ int NotificationsPrefsCache::HasPermission(const GURL& origin) {
|
| return WebKit::WebNotificationPresenter::PermissionAllowed;
|
| if (IsOriginDenied(origin))
|
| return WebKit::WebNotificationPresenter::PermissionDenied;
|
| - return WebKit::WebNotificationPresenter::PermissionNotAllowed;
|
| + switch (default_content_setting_) {
|
| + case CONTENT_SETTING_ALLOW:
|
| + return WebKit::WebNotificationPresenter::PermissionAllowed;
|
| + case CONTENT_SETTING_BLOCK:
|
| + return WebKit::WebNotificationPresenter::PermissionDenied;
|
| + case CONTENT_SETTING_ASK:
|
| + case CONTENT_SETTING_DEFAULT:
|
| + default: // Make gcc happy.
|
| + return WebKit::WebNotificationPresenter::PermissionNotAllowed;
|
| + }
|
| }
|
|
|
| bool NotificationsPrefsCache::IsOriginAllowed(
|
| const GURL& origin) {
|
| CheckThreadAccess();
|
| - return (allowed_origins_.find(origin) != allowed_origins_.end());
|
| + return allowed_origins_.find(origin) != allowed_origins_.end();
|
| }
|
|
|
| bool NotificationsPrefsCache::IsOriginDenied(
|
| const GURL& origin) {
|
| CheckThreadAccess();
|
| - return (denied_origins_.find(origin) != denied_origins_.end());
|
| + return denied_origins_.find(origin) != denied_origins_.end();
|
| }
|
|
|
| void NotificationsPrefsCache::CheckThreadAccess() {
|
|
|