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

Unified Diff: content/browser/notifications/notification_message_filter.cc

Issue 1050623003: Move the Notification browser tests down to //content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@n-db-Integrate
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/notifications/notification_message_filter.cc
diff --git a/content/browser/notifications/notification_message_filter.cc b/content/browser/notifications/notification_message_filter.cc
index 9270ca878806bf2e8ecd2824720bc356e444ffd4..07607ee32af29d9ed437d9db3307e288f3193215 100644
--- a/content/browser/notifications/notification_message_filter.cc
+++ b/content/browser/notifications/notification_message_filter.cc
@@ -19,6 +19,8 @@
namespace content {
+PlatformNotificationService* NotificationMessageFilter::service_ = nullptr;
+
NotificationMessageFilter::NotificationMessageFilter(
int process_id,
PlatformNotificationContextImpl* notification_context,
@@ -84,20 +86,16 @@ void NotificationMessageFilter::OnShowPlatformNotification(
scoped_ptr<DesktopNotificationDelegate> delegate(
new PageNotificationDelegate(process_id_, notification_id));
- PlatformNotificationService* service =
- GetContentClient()->browser()->GetPlatformNotificationService();
- DCHECK(service);
-
- if (!VerifyNotificationPermissionGranted(service, origin))
+ if (!VerifyNotificationPermissionGranted(origin))
return;
base::Closure close_closure;
- service->DisplayNotification(browser_context_,
- origin,
- icon,
- notification_data,
- delegate.Pass(),
- &close_closure);
+ service()->DisplayNotification(browser_context_,
+ origin,
+ icon,
+ notification_data,
+ delegate.Pass(),
+ &close_closure);
if (!close_closure.is_null())
close_closures_[notification_id] = close_closure;
@@ -146,15 +144,13 @@ void NotificationMessageFilter::DidWritePersistentNotificationData(
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (success) {
- PlatformNotificationService* service =
- GetContentClient()->browser()->GetPlatformNotificationService();
- DCHECK(service);
+ DCHECK(service());
BrowserThread::PostTask(
BrowserThread::UI,
FROM_HERE,
base::Bind(&PlatformNotificationService::DisplayPersistentNotification,
- base::Unretained(service), // The service is a singleton.
+ base::Unretained(service()), // The service is a singleton.
browser_context_,
persistent_notification_id,
origin,
@@ -204,9 +200,7 @@ void NotificationMessageFilter::OnClosePersistentNotification(
return;
}
- PlatformNotificationService* service =
- GetContentClient()->browser()->GetPlatformNotificationService();
- DCHECK(service);
+ DCHECK(service());
// There's no point in waiting until the database data has been removed before
// closing the notification presented to the user. Post that task immediately.
@@ -214,7 +208,7 @@ void NotificationMessageFilter::OnClosePersistentNotification(
BrowserThread::UI,
FROM_HERE,
base::Bind(&PlatformNotificationService::ClosePersistentNotification,
- base::Unretained(service), // The service is a singleton.
+ base::Unretained(service()), // The service is a singleton.
browser_context_,
persistent_notification_id));
@@ -237,23 +231,24 @@ NotificationMessageFilter::GetPermissionForOriginOnIO(
const GURL& origin) const {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- PlatformNotificationService* service =
- GetContentClient()->browser()->GetPlatformNotificationService();
- if (!service)
- return blink::WebNotificationPermissionDenied;
+ if (service()) {
+ return service()->CheckPermissionOnIOThread(resource_context_,
+ origin,
+ process_id_);
+ }
- return service->CheckPermissionOnIOThread(resource_context_,
- origin,
- process_id_);
+ // The ContentBrowserClient does not provide a notification service.
+ return blink::WebNotificationPermissionDenied;
}
bool NotificationMessageFilter::VerifyNotificationPermissionGranted(
- PlatformNotificationService* service,
const GURL& origin) {
+ DCHECK(service());
+
blink::WebNotificationPermission permission =
- service->CheckPermissionOnUIThread(browser_context_,
- origin,
- process_id_);
+ service()->CheckPermissionOnUIThread(browser_context_,
+ origin,
+ process_id_);
if (permission == blink::WebNotificationPermissionAllowed)
return true;
@@ -262,4 +257,11 @@ bool NotificationMessageFilter::VerifyNotificationPermissionGranted(
return false;
}
+PlatformNotificationService* NotificationMessageFilter::service() const {
+ if (NotificationMessageFilter::service_)
+ return NotificationMessageFilter::service_;
+
+ return GetContentClient()->browser()->GetPlatformNotificationService();
+}
+
} // namespace content
« no previous file with comments | « content/browser/notifications/notification_message_filter.h ('k') | content/test/notifications/notification_test_utils.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698