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 <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <limits> | 9 #include <limits> |
10 #include <map> | 10 #include <map> |
(...skipping 842 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
853 event_type(event_type) {} | 853 event_type(event_type) {} |
854 | 854 |
855 ServiceWorkerVersion::PendingRequest::~PendingRequest() {} | 855 ServiceWorkerVersion::PendingRequest::~PendingRequest() {} |
856 | 856 |
857 ServiceWorkerVersion::BaseMojoServiceWrapper::BaseMojoServiceWrapper( | 857 ServiceWorkerVersion::BaseMojoServiceWrapper::BaseMojoServiceWrapper( |
858 ServiceWorkerVersion* worker, | 858 ServiceWorkerVersion* worker, |
859 const char* service_name) | 859 const char* service_name) |
860 : worker_(worker), service_name_(service_name) {} | 860 : worker_(worker), service_name_(service_name) {} |
861 | 861 |
862 ServiceWorkerVersion::BaseMojoServiceWrapper::~BaseMojoServiceWrapper() { | 862 ServiceWorkerVersion::BaseMojoServiceWrapper::~BaseMojoServiceWrapper() { |
863 IDMap<PendingRequest, IDMapOwnPointer>::iterator iter( | 863 IDMap<std::unique_ptr<PendingRequest>>::iterator iter( |
864 &worker_->pending_requests_); | 864 &worker_->pending_requests_); |
865 while (!iter.IsAtEnd()) { | 865 while (!iter.IsAtEnd()) { |
866 PendingRequest* request = iter.GetCurrentValue(); | 866 PendingRequest* request = iter.GetCurrentValue(); |
867 if (request->mojo_service == service_name_) { | 867 if (request->mojo_service == service_name_) { |
868 TRACE_EVENT_ASYNC_END1("ServiceWorker", "ServiceWorkerVersion::Request", | 868 TRACE_EVENT_ASYNC_END1("ServiceWorker", "ServiceWorkerVersion::Request", |
869 request, "Error", "Service Disconnected"); | 869 request, "Error", "Service Disconnected"); |
870 request->error_callback.Run(SERVICE_WORKER_ERROR_FAILED); | 870 request->error_callback.Run(SERVICE_WORKER_ERROR_FAILED); |
871 worker_->pending_requests_.Remove(iter.GetCurrentKey()); | 871 worker_->pending_requests_.Remove(iter.GetCurrentKey()); |
872 } | 872 } |
873 iter.Advance(); | 873 iter.Advance(); |
(...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1820 | 1820 |
1821 if (!should_restart) { | 1821 if (!should_restart) { |
1822 // Let all start callbacks fail. | 1822 // Let all start callbacks fail. |
1823 FinishStartWorker(DeduceStartWorkerFailureReason( | 1823 FinishStartWorker(DeduceStartWorkerFailureReason( |
1824 SERVICE_WORKER_ERROR_START_WORKER_FAILED)); | 1824 SERVICE_WORKER_ERROR_START_WORKER_FAILED)); |
1825 } | 1825 } |
1826 | 1826 |
1827 // Let all message callbacks fail (this will also fire and clear all | 1827 // Let all message callbacks fail (this will also fire and clear all |
1828 // callbacks for events). | 1828 // callbacks for events). |
1829 // TODO(kinuko): Consider if we want to add queue+resend mechanism here. | 1829 // TODO(kinuko): Consider if we want to add queue+resend mechanism here. |
1830 IDMap<PendingRequest, IDMapOwnPointer>::iterator iter(&pending_requests_); | 1830 IDMap<std::unique_ptr<PendingRequest>>::iterator iter(&pending_requests_); |
1831 while (!iter.IsAtEnd()) { | 1831 while (!iter.IsAtEnd()) { |
1832 TRACE_EVENT_ASYNC_END1("ServiceWorker", "ServiceWorkerVersion::Request", | 1832 TRACE_EVENT_ASYNC_END1("ServiceWorker", "ServiceWorkerVersion::Request", |
1833 iter.GetCurrentValue(), "Error", "Worker Stopped"); | 1833 iter.GetCurrentValue(), "Error", "Worker Stopped"); |
1834 iter.GetCurrentValue()->error_callback.Run(SERVICE_WORKER_ERROR_FAILED); | 1834 iter.GetCurrentValue()->error_callback.Run(SERVICE_WORKER_ERROR_FAILED); |
1835 iter.Advance(); | 1835 iter.Advance(); |
1836 } | 1836 } |
1837 pending_requests_.Clear(); | 1837 pending_requests_.Clear(); |
1838 external_request_uuid_to_request_id_.clear(); | 1838 external_request_uuid_to_request_id_.clear(); |
1839 event_dispatcher_.reset(); | 1839 event_dispatcher_.reset(); |
1840 | 1840 |
(...skipping 27 matching lines...) Expand all Loading... |
1868 | 1868 |
1869 void ServiceWorkerVersion::CleanUpExternalRequest( | 1869 void ServiceWorkerVersion::CleanUpExternalRequest( |
1870 const std::string& request_uuid, | 1870 const std::string& request_uuid, |
1871 ServiceWorkerStatusCode status) { | 1871 ServiceWorkerStatusCode status) { |
1872 if (status == SERVICE_WORKER_OK) | 1872 if (status == SERVICE_WORKER_OK) |
1873 return; | 1873 return; |
1874 external_request_uuid_to_request_id_.erase(request_uuid); | 1874 external_request_uuid_to_request_id_.erase(request_uuid); |
1875 } | 1875 } |
1876 | 1876 |
1877 } // namespace content | 1877 } // namespace content |
OLD | NEW |