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 #include "content/browser/push_messaging_message_filter.h" | 5 #include "content/browser/push_messaging_message_filter.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 int service_worker_provider_id) { | 46 int service_worker_provider_id) { |
47 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 47 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
48 // TODO(mvanouwerkerk): Validate arguments? | 48 // TODO(mvanouwerkerk): Validate arguments? |
49 ServiceWorkerProviderHost* service_worker_host = | 49 ServiceWorkerProviderHost* service_worker_host = |
50 service_worker_context_->context()->GetProviderHost( | 50 service_worker_context_->context()->GetProviderHost( |
51 render_process_id_, service_worker_provider_id); | 51 render_process_id_, service_worker_provider_id); |
52 if (!service_worker_host || !service_worker_host->active_version()) { | 52 if (!service_worker_host || !service_worker_host->active_version()) { |
53 Send(new PushMessagingMsg_RegisterError( | 53 Send(new PushMessagingMsg_RegisterError( |
54 render_frame_id, | 54 render_frame_id, |
55 callbacks_id, | 55 callbacks_id, |
56 PUSH_MESSAGING_STATUS_REGISTRATION_FAILED_NO_SERVICE_WORKER)); | 56 PUSH_REGISTRATION_STATUS_NO_SERVICE_WORKER)); |
57 return; | 57 return; |
58 } | 58 } |
59 BrowserThread::PostTask( | 59 BrowserThread::PostTask( |
60 BrowserThread::UI, | 60 BrowserThread::UI, |
61 FROM_HERE, | 61 FROM_HERE, |
62 base::Bind(&PushMessagingMessageFilter::DoRegister, | 62 base::Bind(&PushMessagingMessageFilter::DoRegister, |
63 weak_factory_.GetWeakPtr(), | 63 weak_factory_.GetWeakPtr(), |
64 render_frame_id, | 64 render_frame_id, |
65 callbacks_id, | 65 callbacks_id, |
66 sender_id, | 66 sender_id, |
67 user_gesture, | 67 user_gesture, |
68 service_worker_host->active_version()->scope().GetOrigin(), | 68 service_worker_host->active_version()->scope().GetOrigin(), |
69 service_worker_host->active_version()->registration_id())); | 69 service_worker_host->active_version()->registration_id())); |
70 } | 70 } |
71 | 71 |
72 void PushMessagingMessageFilter::DoRegister( | 72 void PushMessagingMessageFilter::DoRegister( |
73 int render_frame_id, | 73 int render_frame_id, |
74 int callbacks_id, | 74 int callbacks_id, |
75 const std::string& sender_id, | 75 const std::string& sender_id, |
76 bool user_gesture, | 76 bool user_gesture, |
77 const GURL& origin, | 77 const GURL& origin, |
78 int64 service_worker_registration_id) { | 78 int64 service_worker_registration_id) { |
79 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 79 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
80 if (!service()) { | 80 if (!service()) { |
81 Send(new PushMessagingMsg_RegisterError( | 81 Send(new PushMessagingMsg_RegisterError( |
82 render_frame_id, | 82 render_frame_id, |
83 callbacks_id, | 83 callbacks_id, |
84 PUSH_MESSAGING_STATUS_REGISTRATION_FAILED_SERVICE_NOT_AVAILABLE)); | 84 PUSH_REGISTRATION_STATUS_SERVICE_NOT_AVAILABLE)); |
85 return; | 85 return; |
86 } | 86 } |
87 service()->Register(origin, | 87 service()->Register(origin, |
88 service_worker_registration_id, | 88 service_worker_registration_id, |
89 sender_id, | 89 sender_id, |
90 render_process_id_, | 90 render_process_id_, |
91 render_frame_id, | 91 render_frame_id, |
92 user_gesture, | 92 user_gesture, |
93 base::Bind(&PushMessagingMessageFilter::DidRegister, | 93 base::Bind(&PushMessagingMessageFilter::DidRegister, |
94 weak_factory_.GetWeakPtr(), | 94 weak_factory_.GetWeakPtr(), |
95 render_frame_id, | 95 render_frame_id, |
96 callbacks_id)); | 96 callbacks_id)); |
97 } | 97 } |
98 | 98 |
99 void PushMessagingMessageFilter::DidRegister( | 99 void PushMessagingMessageFilter::DidRegister( |
100 int render_frame_id, | 100 int render_frame_id, |
101 int callbacks_id, | 101 int callbacks_id, |
102 const GURL& push_endpoint, | 102 const GURL& push_endpoint, |
103 const std::string& push_registration_id, | 103 const std::string& push_registration_id, |
104 PushMessagingStatus status) { | 104 PushRegistrationStatus status) { |
105 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 105 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
106 if (status == PUSH_MESSAGING_STATUS_OK) { | 106 if (status == PUSH_REGISTRATION_STATUS_SUCCESS) { |
107 Send(new PushMessagingMsg_RegisterSuccess( | 107 Send(new PushMessagingMsg_RegisterSuccess( |
108 render_frame_id, callbacks_id, push_endpoint, push_registration_id)); | 108 render_frame_id, callbacks_id, push_endpoint, push_registration_id)); |
109 } else { | 109 } else { |
110 Send(new PushMessagingMsg_RegisterError( | 110 Send(new PushMessagingMsg_RegisterError( |
111 render_frame_id, callbacks_id, status)); | 111 render_frame_id, callbacks_id, status)); |
112 } | 112 } |
113 } | 113 } |
114 | 114 |
115 PushMessagingService* PushMessagingMessageFilter::service() { | 115 PushMessagingService* PushMessagingMessageFilter::service() { |
116 if (!service_) { | 116 if (!service_) { |
117 RenderProcessHost* process_host = | 117 RenderProcessHost* process_host = |
118 RenderProcessHost::FromID(render_process_id_); | 118 RenderProcessHost::FromID(render_process_id_); |
119 if (!process_host) | 119 if (!process_host) |
120 return NULL; | 120 return NULL; |
121 service_ = process_host->GetBrowserContext()->GetPushMessagingService(); | 121 service_ = process_host->GetBrowserContext()->GetPushMessagingService(); |
122 } | 122 } |
123 return service_; | 123 return service_; |
124 } | 124 } |
125 | 125 |
126 } // namespace content | 126 } // namespace content |
OLD | NEW |