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

Side by Side Diff: content/browser/push_messaging_router_impl.h

Issue 340773006: Dispatch push event to worker from PushServiceImpl#OnMessage. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Get registration from storage if necessary. Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2014 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 #ifndef CONTENT_BROWSER_PUSH_MESSAGING_ROUTER_IMPL_H_
6 #define CONTENT_BROWSER_PUSH_MESSAGING_ROUTER_IMPL_H_
7
8 #include "base/memory/ref_counted.h"
9 #include "base/memory/weak_ptr.h"
10 #include "content/common/service_worker/service_worker_status_code.h"
11 #include "content/public/browser/push_messaging_router.h"
12
13 namespace content {
14
15 class BrowserContext;
16 class ServiceWorkerContextWrapper;
17 class ServiceWorkerRegistration;
18 struct PushMessagingApplicationId;
19
20 class PushMessagingRouterImpl : public PushMessagingRouter {
21 public:
22 // PushMessagingRouter implementation.
23 virtual void SendMessage(
24 const PushMessagingApplicationId& application_id,
25 const std::string& data,
26 const SendMessageCallback& send_message_callback) OVERRIDE;
27
28 explicit PushMessagingRouterImpl(BrowserContext* browser_context);
johnme 2014/07/23 14:25:23 I'd suggest to either make this constructor privat
Michael van Ouwerkerk 2014/07/23 16:57:52 The PushMessagingRouterImpl constructor does need
29 virtual ~PushMessagingRouterImpl();
30
31 private:
32 // Attempts to find a Service Worker registration for |application_id| so that
33 // a message can be dispatched. Must be called on the IO thread.
34 void FindServiceWorkerRegistration(
35 const PushMessagingApplicationId& application_id,
36 const std::string& data,
37 const SendMessageCallback& send_message_callback,
38 scoped_refptr<ServiceWorkerContextWrapper> service_worker_context);
39
40 // Sends the message if a registration was found. Must be called on the IO
41 // thread.
42 void FindServiceWorkerRegistrationCallback(
43 const PushMessagingApplicationId& application_id,
44 const std::string& data,
45 const SendMessageCallback& send_message_callback,
46 ServiceWorkerStatusCode service_worker_status,
47 const scoped_refptr<ServiceWorkerRegistration>&
48 service_worker_registration);
49
50 // Sends a push message with |data| to the Service Worker identified by
51 // |service_worker_registration|. Must be called on the IO thread.
52 void DoSendMessage(const std::string& data,
53 const SendMessageCallback& send_message_callback,
54 const scoped_refptr<ServiceWorkerRegistration>&
55 service_worker_registration);
56
57 // Gets called asynchronously after the Service Worker has dispatched the push
58 // event. Must be called on the IO thread.
59 void SendMessageEnd(const SendMessageCallback& send_message_callback,
60 const scoped_refptr<ServiceWorkerRegistration>&
61 service_worker_registration,
62 ServiceWorkerStatusCode service_worker_status);
63
64 BrowserContext* browser_context_; // It indirectly owns this.
65
66 base::WeakPtrFactory<PushMessagingRouterImpl> weak_factory_;
67
68 DISALLOW_COPY_AND_ASSIGN(PushMessagingRouterImpl);
69 };
70
71 } // namespace content
72
73 #endif // CONTENT_BROWSER_PUSH_MESSAGING_ROUTER_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698