| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/service_worker/service_worker_dispatcher_host.h" | 5 #include "content/browser/service_worker/service_worker_dispatcher_host.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/debug/crash_logging.h" | 9 #include "base/debug/crash_logging.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 | 94 |
| 95 ServiceWorkerDispatcherHost::ServiceWorkerDispatcherHost( | 95 ServiceWorkerDispatcherHost::ServiceWorkerDispatcherHost( |
| 96 int render_process_id, | 96 int render_process_id, |
| 97 MessagePortMessageFilter* message_port_message_filter, | 97 MessagePortMessageFilter* message_port_message_filter, |
| 98 ResourceContext* resource_context) | 98 ResourceContext* resource_context) |
| 99 : BrowserMessageFilter(kFilteredMessageClasses, | 99 : BrowserMessageFilter(kFilteredMessageClasses, |
| 100 arraysize(kFilteredMessageClasses)), | 100 arraysize(kFilteredMessageClasses)), |
| 101 render_process_id_(render_process_id), | 101 render_process_id_(render_process_id), |
| 102 message_port_message_filter_(message_port_message_filter), | 102 message_port_message_filter_(message_port_message_filter), |
| 103 resource_context_(resource_context), | 103 resource_context_(resource_context), |
| 104 channel_ready_(false) { | 104 channel_ready_(false), |
| 105 weak_factory_(this) { |
| 106 AddAssociatedInterface( |
| 107 mojom::ServiceWorkerDispatcherHost::Name_, |
| 108 base::Bind(&ServiceWorkerDispatcherHost::AddMojoBinding, |
| 109 base::Unretained(this))); |
| 105 } | 110 } |
| 106 | 111 |
| 107 ServiceWorkerDispatcherHost::~ServiceWorkerDispatcherHost() { | 112 ServiceWorkerDispatcherHost::~ServiceWorkerDispatcherHost() { |
| 108 if (GetContext()) { | 113 if (GetContext()) { |
| 109 GetContext()->RemoveAllProviderHostsForProcess(render_process_id_); | 114 GetContext()->RemoveAllProviderHostsForProcess(render_process_id_); |
| 110 GetContext()->embedded_worker_registry()->RemoveChildProcessSender( | 115 GetContext()->embedded_worker_registry()->RemoveChildProcessSender( |
| 111 render_process_id_); | 116 render_process_id_); |
| 112 } | 117 } |
| 113 } | 118 } |
| 114 | 119 |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 if (!handled && GetContext()) { | 217 if (!handled && GetContext()) { |
| 213 handled = GetContext()->embedded_worker_registry()->OnMessageReceived( | 218 handled = GetContext()->embedded_worker_registry()->OnMessageReceived( |
| 214 message, render_process_id_); | 219 message, render_process_id_); |
| 215 if (!handled) | 220 if (!handled) |
| 216 bad_message::ReceivedBadMessage(this, bad_message::SWDH_NOT_HANDLED); | 221 bad_message::ReceivedBadMessage(this, bad_message::SWDH_NOT_HANDLED); |
| 217 } | 222 } |
| 218 | 223 |
| 219 return handled; | 224 return handled; |
| 220 } | 225 } |
| 221 | 226 |
| 227 void ServiceWorkerDispatcherHost::AddMojoBinding( |
| 228 mojo::ScopedInterfaceEndpointHandle handle) { |
| 229 bindings_.AddBinding( |
| 230 this, mojo::MakeAssociatedRequest<mojom::ServiceWorkerDispatcherHost>( |
| 231 std::move(handle))); |
| 232 } |
| 233 |
| 222 bool ServiceWorkerDispatcherHost::Send(IPC::Message* message) { | 234 bool ServiceWorkerDispatcherHost::Send(IPC::Message* message) { |
| 223 if (channel_ready_) { | 235 if (channel_ready_) { |
| 224 BrowserMessageFilter::Send(message); | 236 BrowserMessageFilter::Send(message); |
| 225 // Don't bother passing through Send()'s result: it's not reliable. | 237 // Don't bother passing through Send()'s result: it's not reliable. |
| 226 return true; | 238 return true; |
| 227 } | 239 } |
| 228 | 240 |
| 229 pending_messages_.push_back(base::WrapUnique(message)); | 241 pending_messages_.push_back(base::WrapUnique(message)); |
| 230 return true; | 242 return true; |
| 231 } | 243 } |
| (...skipping 1223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1455 if (!handle) { | 1467 if (!handle) { |
| 1456 bad_message::ReceivedBadMessage(this, | 1468 bad_message::ReceivedBadMessage(this, |
| 1457 bad_message::SWDH_TERMINATE_BAD_HANDLE); | 1469 bad_message::SWDH_TERMINATE_BAD_HANDLE); |
| 1458 return; | 1470 return; |
| 1459 } | 1471 } |
| 1460 handle->version()->StopWorker( | 1472 handle->version()->StopWorker( |
| 1461 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); | 1473 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); |
| 1462 } | 1474 } |
| 1463 | 1475 |
| 1464 } // namespace content | 1476 } // namespace content |
| OLD | NEW |