| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 #ifndef CONTENT_CHILD_PUSH_MESSAGING_PUSH_PROVIDER_H_ | 5 #ifndef CONTENT_CHILD_PUSH_MESSAGING_PUSH_PROVIDER_H_ |
| 6 #define CONTENT_CHILD_PUSH_MESSAGING_PUSH_PROVIDER_H_ | 6 #define CONTENT_CHILD_PUSH_MESSAGING_PUSH_PROVIDER_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/id_map.h" | 12 #include "base/id_map.h" |
| 13 #include "base/macros.h" | 13 #include "base/macros.h" |
| 14 #include "base/memory/ref_counted.h" | 14 #include "base/memory/ref_counted.h" |
| 15 #include "content/child/push_messaging/push_dispatcher.h" | 15 #include "content/child/push_messaging/push_dispatcher.h" |
| 16 #include "content/public/child/worker_thread.h" | 16 #include "content/public/child/worker_thread.h" |
| 17 #include "content/public/common/push_messaging_status.h" | 17 #include "content/public/common/push_messaging_status.h" |
| 18 #include "third_party/WebKit/public/platform/modules/push_messaging/WebPushError
.h" | 18 #include "third_party/WebKit/public/platform/modules/push_messaging/WebPushError
.h" |
| 19 #include "third_party/WebKit/public/platform/modules/push_messaging/WebPushProvi
der.h" | 19 #include "third_party/WebKit/public/platform/modules/push_messaging/WebPushProvi
der.h" |
| 20 | 20 |
| 21 class GURL; | 21 class GURL; |
| 22 | 22 |
| 23 namespace blink { | 23 namespace blink { |
| 24 struct WebPushSubscriptionOptions; | 24 struct WebPushSubscriptionOptions; |
| 25 } | 25 } |
| 26 | 26 |
| 27 namespace content { | 27 namespace content { |
| 28 | 28 |
| 29 class ThreadSafeSender; | 29 class ThreadSafeSender; |
| 30 struct PushSubscriptionOptions; |
| 30 | 31 |
| 31 class PushProvider : public blink::WebPushProvider, | 32 class PushProvider : public blink::WebPushProvider, |
| 32 public WorkerThread::Observer { | 33 public WorkerThread::Observer { |
| 33 public: | 34 public: |
| 34 ~PushProvider() override; | 35 ~PushProvider() override; |
| 35 | 36 |
| 36 // The |thread_safe_sender| and |push_dispatcher| are used if calling this | 37 // The |thread_safe_sender| and |push_dispatcher| are used if calling this |
| 37 // leads to construction. | 38 // leads to construction. |
| 38 static PushProvider* ThreadSpecificInstance( | 39 static PushProvider* ThreadSpecificInstance( |
| 39 ThreadSafeSender* thread_safe_sender, | 40 ThreadSafeSender* thread_safe_sender, |
| (...skipping 21 matching lines...) Expand all Loading... |
| 61 // Called by the PushDispatcher. | 62 // Called by the PushDispatcher. |
| 62 bool OnMessageReceived(const IPC::Message& message); | 63 bool OnMessageReceived(const IPC::Message& message); |
| 63 | 64 |
| 64 private: | 65 private: |
| 65 PushProvider(ThreadSafeSender* thread_safe_sender, | 66 PushProvider(ThreadSafeSender* thread_safe_sender, |
| 66 PushDispatcher* push_dispatcher); | 67 PushDispatcher* push_dispatcher); |
| 67 | 68 |
| 68 // IPC message handlers. | 69 // IPC message handlers. |
| 69 void OnSubscribeFromWorkerSuccess(int request_id, | 70 void OnSubscribeFromWorkerSuccess(int request_id, |
| 70 const GURL& endpoint, | 71 const GURL& endpoint, |
| 72 const PushSubscriptionOptions& options, |
| 71 const std::vector<uint8_t>& p256dh, | 73 const std::vector<uint8_t>& p256dh, |
| 72 const std::vector<uint8_t>& auth); | 74 const std::vector<uint8_t>& auth); |
| 73 void OnSubscribeFromWorkerError(int request_id, | 75 void OnSubscribeFromWorkerError(int request_id, |
| 74 PushRegistrationStatus status); | 76 PushRegistrationStatus status); |
| 75 void OnUnsubscribeSuccess(int request_id, bool did_unsubscribe); | 77 void OnUnsubscribeSuccess(int request_id, bool did_unsubscribe); |
| 76 void OnUnsubscribeError(int request_id, | 78 void OnUnsubscribeError(int request_id, |
| 77 blink::WebPushError::ErrorType error_type, | 79 blink::WebPushError::ErrorType error_type, |
| 78 const std::string& error_message); | 80 const std::string& error_message); |
| 79 void OnGetSubscriptionSuccess(int request_id, | 81 void OnGetSubscriptionSuccess(int request_id, |
| 80 const GURL& endpoint, | 82 const GURL& endpoint, |
| 83 const PushSubscriptionOptions& options, |
| 81 const std::vector<uint8_t>& p256dh, | 84 const std::vector<uint8_t>& p256dh, |
| 82 const std::vector<uint8_t>& auth); | 85 const std::vector<uint8_t>& auth); |
| 83 void OnGetSubscriptionError(int request_id, PushGetRegistrationStatus status); | 86 void OnGetSubscriptionError(int request_id, PushGetRegistrationStatus status); |
| 84 void OnGetPermissionStatusSuccess(int request_id, | 87 void OnGetPermissionStatusSuccess(int request_id, |
| 85 blink::WebPushPermissionStatus status); | 88 blink::WebPushPermissionStatus status); |
| 86 void OnGetPermissionStatusError(int request_id, | 89 void OnGetPermissionStatusError(int request_id, |
| 87 blink::WebPushError::ErrorType error); | 90 blink::WebPushError::ErrorType error); |
| 88 | 91 |
| 89 scoped_refptr<ThreadSafeSender> thread_safe_sender_; | 92 scoped_refptr<ThreadSafeSender> thread_safe_sender_; |
| 90 scoped_refptr<PushDispatcher> push_dispatcher_; | 93 scoped_refptr<PushDispatcher> push_dispatcher_; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 103 // the callbacks. | 106 // the callbacks. |
| 104 IDMap<blink::WebPushUnsubscribeCallbacks, IDMapOwnPointer> | 107 IDMap<blink::WebPushUnsubscribeCallbacks, IDMapOwnPointer> |
| 105 unsubscribe_callbacks_; | 108 unsubscribe_callbacks_; |
| 106 | 109 |
| 107 DISALLOW_COPY_AND_ASSIGN(PushProvider); | 110 DISALLOW_COPY_AND_ASSIGN(PushProvider); |
| 108 }; | 111 }; |
| 109 | 112 |
| 110 } // namespace content | 113 } // namespace content |
| 111 | 114 |
| 112 #endif // CONTENT_CHILD_PUSH_MESSAGING_PUSH_PROVIDER_H_ | 115 #endif // CONTENT_CHILD_PUSH_MESSAGING_PUSH_PROVIDER_H_ |
| OLD | NEW |