| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "extensions/renderer/worker_thread_dispatcher.h" | 5 #include "extensions/renderer/worker_thread_dispatcher.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "base/threading/thread_local.h" | 8 #include "base/threading/thread_local.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "content/public/child/worker_thread.h" | 10 #include "content/public/child/worker_thread.h" |
| 11 #include "content/public/renderer/render_thread.h" | 11 #include "content/public/renderer/render_thread.h" |
| 12 #include "extensions/common/extension_messages.h" | 12 #include "extensions/common/extension_messages.h" |
| 13 #include "extensions/common/feature_switch.h" | 13 #include "extensions/common/feature_switch.h" |
| 14 #include "extensions/renderer/extension_bindings_system.h" | 14 #include "extensions/renderer/extension_bindings_system.h" |
| 15 #include "extensions/renderer/js_extension_bindings_system.h" | 15 #include "extensions/renderer/js_extension_bindings_system.h" |
| 16 #include "extensions/renderer/native_extension_bindings_system.h" | 16 #include "extensions/renderer/native_extension_bindings_system.h" |
| 17 #include "extensions/renderer/service_worker_data.h" | 17 #include "extensions/renderer/service_worker_data.h" |
| 18 | 18 |
| 19 namespace extensions { | 19 namespace extensions { |
| 20 | 20 |
| 21 namespace { | 21 namespace { |
| 22 | 22 |
| 23 base::LazyInstance<WorkerThreadDispatcher> g_instance = | 23 base::LazyInstance<WorkerThreadDispatcher>::DestructorAtExit g_instance = |
| 24 LAZY_INSTANCE_INITIALIZER; | 24 LAZY_INSTANCE_INITIALIZER; |
| 25 base::LazyInstance<base::ThreadLocalPointer<extensions::ServiceWorkerData>> | 25 base::LazyInstance<base::ThreadLocalPointer<extensions::ServiceWorkerData>>:: |
| 26 g_data_tls = LAZY_INSTANCE_INITIALIZER; | 26 DestructorAtExit g_data_tls = LAZY_INSTANCE_INITIALIZER; |
| 27 | 27 |
| 28 void OnResponseOnWorkerThread(int request_id, | 28 void OnResponseOnWorkerThread(int request_id, |
| 29 bool succeeded, | 29 bool succeeded, |
| 30 const std::unique_ptr<base::ListValue>& response, | 30 const std::unique_ptr<base::ListValue>& response, |
| 31 const std::string& error) { | 31 const std::string& error) { |
| 32 // TODO(devlin): Using the RequestSender directly here won't work with | 32 // TODO(devlin): Using the RequestSender directly here won't work with |
| 33 // NativeExtensionBindingsSystem (since there is no associated RequestSender | 33 // NativeExtensionBindingsSystem (since there is no associated RequestSender |
| 34 // in that case). We should instead be going | 34 // in that case). We should instead be going |
| 35 // ExtensionBindingsSystem::HandleResponse(). | 35 // ExtensionBindingsSystem::HandleResponse(). |
| 36 ServiceWorkerData* data = g_data_tls.Pointer()->Get(); | 36 ServiceWorkerData* data = g_data_tls.Pointer()->Get(); |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 int64_t service_worker_version_id) { | 143 int64_t service_worker_version_id) { |
| 144 ServiceWorkerData* data = g_data_tls.Pointer()->Get(); | 144 ServiceWorkerData* data = g_data_tls.Pointer()->Get(); |
| 145 if (data) { | 145 if (data) { |
| 146 DCHECK_EQ(service_worker_version_id, data->service_worker_version_id()); | 146 DCHECK_EQ(service_worker_version_id, data->service_worker_version_id()); |
| 147 delete data; | 147 delete data; |
| 148 g_data_tls.Pointer()->Set(nullptr); | 148 g_data_tls.Pointer()->Set(nullptr); |
| 149 } | 149 } |
| 150 } | 150 } |
| 151 | 151 |
| 152 } // namespace extensions | 152 } // namespace extensions |
| OLD | NEW |