OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "content/browser/notifications/platform_notification_context_impl.h" | 5 #include "content/browser/notifications/platform_notification_context_impl.h" |
6 | 6 |
7 #include "base/bind_helpers.h" | 7 #include "base/bind_helpers.h" |
8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "base/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 GetContentClient()->browser()->GetPlatformNotificationService(); | 212 GetContentClient()->browser()->GetPlatformNotificationService(); |
213 | 213 |
214 if (!service) { | 214 if (!service) { |
215 // Rely on the database only | 215 // Rely on the database only |
216 SynchronizeDisplayedNotificationsForServiceWorkerRegistration( | 216 SynchronizeDisplayedNotificationsForServiceWorkerRegistration( |
217 origin, service_worker_registration_id, callback, | 217 origin, service_worker_registration_id, callback, |
218 std::move(notification_ids), false /* sync_supported */); | 218 std::move(notification_ids), false /* sync_supported */); |
219 return; | 219 return; |
220 } | 220 } |
221 | 221 |
222 std::set<std::string>* notification_ids_ptr = notification_ids.get(); | 222 BrowserThread::PostTask( |
223 | |
224 BrowserThread::PostTaskAndReplyWithResult( | |
225 BrowserThread::UI, FROM_HERE, | 223 BrowserThread::UI, FROM_HERE, |
226 base::Bind(&PlatformNotificationService::GetDisplayedNotifications, | |
227 base::Unretained(service), browser_context_, | |
228 notification_ids_ptr), | |
229 base::Bind( | 224 base::Bind( |
230 &PlatformNotificationContextImpl:: | 225 &PlatformNotificationService::GetDisplayedNotificationsAsync, |
231 SynchronizeDisplayedNotificationsForServiceWorkerRegistration, | 226 base::Unretained(service), browser_context_, |
232 this, origin, service_worker_registration_id, callback, | 227 base::Bind( |
233 base::Passed(¬ification_ids))); | 228 &PlatformNotificationContextImpl:: |
| 229 SynchronizeDisplayedNotificationsForServiceWorkerRegistration, |
| 230 this, origin, service_worker_registration_id, callback))); |
234 } | 231 } |
235 | 232 |
236 void PlatformNotificationContextImpl:: | 233 void PlatformNotificationContextImpl:: |
237 DoReadAllNotificationDataForServiceWorkerRegistration( | 234 DoReadAllNotificationDataForServiceWorkerRegistration( |
238 const GURL& origin, | 235 const GURL& origin, |
239 int64_t service_worker_registration_id, | 236 int64_t service_worker_registration_id, |
240 const ReadAllResultCallback& callback, | 237 const ReadAllResultCallback& callback, |
241 std::unique_ptr<std::set<std::string>> displayed_notifications, | 238 std::unique_ptr<std::set<std::string>> displayed_notifications, |
242 bool synchronization_supported) { | 239 bool synchronization_supported) { |
243 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 240 DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 | 536 |
540 return path_.Append(kPlatformNotificationsDirectory); | 537 return path_.Append(kPlatformNotificationsDirectory); |
541 } | 538 } |
542 | 539 |
543 void PlatformNotificationContextImpl::SetTaskRunnerForTesting( | 540 void PlatformNotificationContextImpl::SetTaskRunnerForTesting( |
544 const scoped_refptr<base::SequencedTaskRunner>& task_runner) { | 541 const scoped_refptr<base::SequencedTaskRunner>& task_runner) { |
545 task_runner_ = task_runner; | 542 task_runner_ = task_runner; |
546 } | 543 } |
547 | 544 |
548 } // namespace content | 545 } // namespace content |
OLD | NEW |