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 <map> | 9 #include <map> |
10 #include <string> | 10 #include <string> |
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
534 const StatusCallback& error_callback) { | 534 const StatusCallback& error_callback) { |
535 if (running_status() == RUNNING) { | 535 if (running_status() == RUNNING) { |
536 DCHECK(start_callbacks_.empty()); | 536 DCHECK(start_callbacks_.empty()); |
537 task.Run(); | 537 task.Run(); |
538 return; | 538 return; |
539 } | 539 } |
540 StartWorker(base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(), | 540 StartWorker(base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(), |
541 error_callback, task)); | 541 error_callback, task)); |
542 } | 542 } |
543 | 543 |
544 void ServiceWorkerVersion::DispatchExtendableMessageEvent( | |
545 const base::string16& message, | |
546 const std::vector<TransferredMessagePort>& sent_message_ports, | |
547 const StatusCallback& callback) { | |
548 for (const TransferredMessagePort& port : sent_message_ports) | |
549 MessagePortService::GetInstance()->HoldMessages(port.id); | |
550 RunAfterStartWorker( | |
551 base::Bind( | |
552 &ServiceWorkerVersion::DispatchExtendableMessageEventAfterStartWorker, | |
553 weak_factory_.GetWeakPtr(), message, sent_message_ports, | |
554 base::Bind(&RunErrorMessageCallback, sent_message_ports, callback)), | |
555 callback); | |
nhiroki
2016/02/02 05:53:38
The second argument of the RunAfterStartWorker sho
| |
556 } | |
557 | |
544 void ServiceWorkerVersion::DispatchMessageEvent( | 558 void ServiceWorkerVersion::DispatchMessageEvent( |
545 const base::string16& message, | 559 const base::string16& message, |
546 const std::vector<TransferredMessagePort>& sent_message_ports, | 560 const std::vector<TransferredMessagePort>& sent_message_ports, |
547 const StatusCallback& callback) { | 561 const StatusCallback& callback) { |
548 for (const TransferredMessagePort& port : sent_message_ports) { | 562 for (const TransferredMessagePort& port : sent_message_ports) { |
549 MessagePortService::GetInstance()->HoldMessages(port.id); | 563 MessagePortService::GetInstance()->HoldMessages(port.id); |
550 } | 564 } |
551 | 565 |
552 DispatchMessageEventInternal(message, sent_message_ports, callback); | 566 DispatchMessageEventInternal(message, sent_message_ports, callback); |
553 } | 567 } |
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
946 | 960 |
947 void ServiceWorkerVersion::OnStartSentAndScriptEvaluated( | 961 void ServiceWorkerVersion::OnStartSentAndScriptEvaluated( |
948 ServiceWorkerStatusCode status) { | 962 ServiceWorkerStatusCode status) { |
949 if (status != SERVICE_WORKER_OK) { | 963 if (status != SERVICE_WORKER_OK) { |
950 scoped_refptr<ServiceWorkerVersion> protect(this); | 964 scoped_refptr<ServiceWorkerVersion> protect(this); |
951 RunCallbacks(this, &start_callbacks_, | 965 RunCallbacks(this, &start_callbacks_, |
952 DeduceStartWorkerFailureReason(status)); | 966 DeduceStartWorkerFailureReason(status)); |
953 } | 967 } |
954 } | 968 } |
955 | 969 |
970 void ServiceWorkerVersion::DispatchExtendableMessageEventAfterStartWorker( | |
971 const base::string16& message, | |
972 const std::vector<TransferredMessagePort>& sent_message_ports, | |
973 const StatusCallback& callback) { | |
974 int request_id = | |
975 StartRequest(ServiceWorkerMetrics::EventType::MESSAGE, callback); | |
976 | |
977 MessagePortMessageFilter* filter = | |
978 embedded_worker_->message_port_message_filter(); | |
979 std::vector<int> new_routing_ids; | |
980 filter->UpdateMessagePortsWithNewRoutes(sent_message_ports, &new_routing_ids); | |
981 | |
982 DispatchSimpleEvent<ServiceWorkerHostMsg_ExtendableMessageEventFinished>( | |
983 request_id, | |
984 ServiceWorkerMsg_ExtendableMessageEvent( | |
985 request_id, message, sent_message_ports, new_routing_ids)); | |
986 } | |
987 | |
956 void ServiceWorkerVersion::OnGetClients( | 988 void ServiceWorkerVersion::OnGetClients( |
957 int request_id, | 989 int request_id, |
958 const ServiceWorkerClientQueryOptions& options) { | 990 const ServiceWorkerClientQueryOptions& options) { |
959 TRACE_EVENT_ASYNC_BEGIN2( | 991 TRACE_EVENT_ASYNC_BEGIN2( |
960 "ServiceWorker", "ServiceWorkerVersion::OnGetClients", request_id, | 992 "ServiceWorker", "ServiceWorkerVersion::OnGetClients", request_id, |
961 "client_type", options.client_type, "include_uncontrolled", | 993 "client_type", options.client_type, "include_uncontrolled", |
962 options.include_uncontrolled); | 994 options.include_uncontrolled); |
963 service_worker_client_utils::GetClients( | 995 service_worker_client_utils::GetClients( |
964 weak_factory_.GetWeakPtr(), options, | 996 weak_factory_.GetWeakPtr(), options, |
965 base::Bind(&ServiceWorkerVersion::OnGetClientsFinished, | 997 base::Bind(&ServiceWorkerVersion::OnGetClientsFinished, |
(...skipping 829 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1795 void ServiceWorkerVersion::OnBeginEvent() { | 1827 void ServiceWorkerVersion::OnBeginEvent() { |
1796 if (should_exclude_from_uma_ || running_status() != RUNNING || | 1828 if (should_exclude_from_uma_ || running_status() != RUNNING || |
1797 idle_time_.is_null()) { | 1829 idle_time_.is_null()) { |
1798 return; | 1830 return; |
1799 } | 1831 } |
1800 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() - | 1832 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() - |
1801 idle_time_); | 1833 idle_time_); |
1802 } | 1834 } |
1803 | 1835 |
1804 } // namespace content | 1836 } // namespace content |
OLD | NEW |