| 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_version.h" | 5 #include "content/browser/service_worker/service_worker_version.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
| 11 #include "content/browser/message_port_message_filter.h" | 11 #include "content/browser/message_port_message_filter.h" |
| 12 #include "content/browser/message_port_service.h" | 12 #include "content/browser/message_port_service.h" |
| 13 #include "content/browser/service_worker/embedded_worker_instance.h" | 13 #include "content/browser/service_worker/embedded_worker_instance.h" |
| 14 #include "content/browser/service_worker/embedded_worker_registry.h" | 14 #include "content/browser/service_worker/embedded_worker_registry.h" |
| 15 #include "content/browser/service_worker/service_worker_context_core.h" | 15 #include "content/browser/service_worker/service_worker_context_core.h" |
| 16 #include "content/browser/service_worker/service_worker_registration.h" | 16 #include "content/browser/service_worker/service_worker_registration.h" |
| 17 #include "content/browser/service_worker/service_worker_utils.h" | 17 #include "content/browser/service_worker/service_worker_utils.h" |
| 18 #include "content/common/service_worker/service_worker_messages.h" | 18 #include "content/common/service_worker/service_worker_messages.h" |
| 19 #include "content/public/browser/browser_thread.h" | 19 #include "content/public/browser/browser_thread.h" |
| 20 #include "content/public/common/content_switches.h" | 20 #include "content/public/common/content_switches.h" |
| 21 #include "net/http/http_response_info.h" |
| 21 | 22 |
| 22 namespace content { | 23 namespace content { |
| 23 | 24 |
| 24 typedef ServiceWorkerVersion::StatusCallback StatusCallback; | 25 typedef ServiceWorkerVersion::StatusCallback StatusCallback; |
| 25 typedef ServiceWorkerVersion::MessageCallback MessageCallback; | 26 typedef ServiceWorkerVersion::MessageCallback MessageCallback; |
| 26 | 27 |
| 27 class ServiceWorkerVersion::GetClientDocumentsCallback | 28 class ServiceWorkerVersion::GetClientDocumentsCallback |
| 28 : public base::RefCounted<GetClientDocumentsCallback> { | 29 : public base::RefCounted<GetClientDocumentsCallback> { |
| 29 public: | 30 public: |
| 30 GetClientDocumentsCallback(int request_id, | 31 GetClientDocumentsCallback(int request_id, |
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 662 | 663 |
| 663 void ServiceWorkerVersion::SetDevToolsAttached(bool attached) { | 664 void ServiceWorkerVersion::SetDevToolsAttached(bool attached) { |
| 664 embedded_worker()->set_devtools_attached(attached); | 665 embedded_worker()->set_devtools_attached(attached); |
| 665 if (!attached && !stop_worker_timer_.IsRunning()) { | 666 if (!attached && !stop_worker_timer_.IsRunning()) { |
| 666 // If devtools is detached from this version and stop-worker-timer is not | 667 // If devtools is detached from this version and stop-worker-timer is not |
| 667 // running, try scheduling stop-worker-timer now. | 668 // running, try scheduling stop-worker-timer now. |
| 668 ScheduleStopWorker(); | 669 ScheduleStopWorker(); |
| 669 } | 670 } |
| 670 } | 671 } |
| 671 | 672 |
| 673 void ServiceWorkerVersion::SetMainScriptHttpResponseInfo( |
| 674 const net::HttpResponseInfo& http_info) { |
| 675 main_script_http_info_.reset(new net::HttpResponseInfo(http_info)); |
| 676 } |
| 677 |
| 678 const net::HttpResponseInfo* |
| 679 ServiceWorkerVersion::GetMainScriptHttpResponseInfo() { |
| 680 return main_script_http_info_.get(); |
| 681 } |
| 682 |
| 672 void ServiceWorkerVersion::OnStarted() { | 683 void ServiceWorkerVersion::OnStarted() { |
| 673 DCHECK_EQ(RUNNING, running_status()); | 684 DCHECK_EQ(RUNNING, running_status()); |
| 674 DCHECK(cache_listener_.get()); | 685 DCHECK(cache_listener_.get()); |
| 675 ScheduleStopWorker(); | 686 ScheduleStopWorker(); |
| 676 | 687 |
| 677 // Fire all start callbacks. | 688 // Fire all start callbacks. |
| 678 scoped_refptr<ServiceWorkerVersion> protect(this); | 689 scoped_refptr<ServiceWorkerVersion> protect(this); |
| 679 RunCallbacks(this, &start_callbacks_, SERVICE_WORKER_OK); | 690 RunCallbacks(this, &start_callbacks_, SERVICE_WORKER_OK); |
| 680 FOR_EACH_OBSERVER(Listener, listeners_, OnWorkerStarted(this)); | 691 FOR_EACH_OBSERVER(Listener, listeners_, OnWorkerStarted(this)); |
| 681 } | 692 } |
| (...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1172 int request_id) { | 1183 int request_id) { |
| 1173 callbacks->Remove(request_id); | 1184 callbacks->Remove(request_id); |
| 1174 if (is_doomed_) { | 1185 if (is_doomed_) { |
| 1175 // The stop should be already scheduled, but try to stop immediately, in | 1186 // The stop should be already scheduled, but try to stop immediately, in |
| 1176 // order to release worker resources soon. | 1187 // order to release worker resources soon. |
| 1177 StopWorkerIfIdle(); | 1188 StopWorkerIfIdle(); |
| 1178 } | 1189 } |
| 1179 } | 1190 } |
| 1180 | 1191 |
| 1181 } // namespace content | 1192 } // namespace content |
| OLD | NEW |