Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Side by Side Diff: content/browser/service_worker/service_worker_version.cc

Issue 2746783002: [ServiceWorker] Mojofy InstallEvent of Service Worker (Closed)
Patch Set: Just delete a useless line Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 if (running_status() == EmbeddedWorkerStatus::RUNNING) { 623 if (running_status() == EmbeddedWorkerStatus::RUNNING) {
624 DCHECK(start_callbacks_.empty()); 624 DCHECK(start_callbacks_.empty());
625 task.Run(); 625 task.Run();
626 return; 626 return;
627 } 627 }
628 StartWorker(purpose, 628 StartWorker(purpose,
629 base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(), 629 base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(),
630 error_callback, task)); 630 error_callback, task));
631 } 631 }
632 632
633 void ServiceWorkerVersion::DispatchEvent(const std::vector<int>& request_ids,
634 const IPC::Message& message) {
635 DCHECK_EQ(EmbeddedWorkerStatus::RUNNING, running_status());
636
637 const ServiceWorkerStatusCode status = embedded_worker_->SendMessage(message);
638
639 for (int request_id : request_ids) {
640 PendingRequest* request = pending_requests_.Lookup(request_id);
641 DCHECK(request) << "Invalid request id";
642 DCHECK(!request->is_dispatched)
643 << "Request already dispatched an IPC event";
644 if (status != SERVICE_WORKER_OK) {
645 RunSoon(base::Bind(request->error_callback, status));
646 pending_requests_.Remove(request_id);
647 } else {
648 request->is_dispatched = true;
649 }
650 }
651 }
652
653 void ServiceWorkerVersion::AddControllee( 633 void ServiceWorkerVersion::AddControllee(
654 ServiceWorkerProviderHost* provider_host) { 634 ServiceWorkerProviderHost* provider_host) {
655 const std::string& uuid = provider_host->client_uuid(); 635 const std::string& uuid = provider_host->client_uuid();
656 CHECK(!provider_host->client_uuid().empty()); 636 CHECK(!provider_host->client_uuid().empty());
657 DCHECK(!base::ContainsKey(controllee_map_, uuid)); 637 DCHECK(!base::ContainsKey(controllee_map_, uuid));
658 controllee_map_[uuid] = provider_host; 638 controllee_map_[uuid] = provider_host;
659 // Keep the worker alive a bit longer right after a new controllee is added. 639 // Keep the worker alive a bit longer right after a new controllee is added.
660 RestartTick(&idle_time_); 640 RestartTick(&idle_time_);
661 for (auto& observer : listeners_) 641 for (auto& observer : listeners_)
662 observer.OnControlleeAdded(this, provider_host); 642 observer.OnControlleeAdded(this, provider_host);
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 OnClearCachedMetadata) 934 OnClearCachedMetadata)
955 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessageToClient, 935 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessageToClient,
956 OnPostMessageToClient) 936 OnPostMessageToClient)
957 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_FocusClient, 937 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_FocusClient,
958 OnFocusClient) 938 OnFocusClient)
959 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_NavigateClient, OnNavigateClient) 939 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_NavigateClient, OnNavigateClient)
960 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_SkipWaiting, 940 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_SkipWaiting,
961 OnSkipWaiting) 941 OnSkipWaiting)
962 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ClaimClients, 942 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ClaimClients,
963 OnClaimClients) 943 OnClaimClients)
964 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_RegisterForeignFetchScopes,
965 OnRegisterForeignFetchScopes)
966 IPC_MESSAGE_UNHANDLED(handled = false) 944 IPC_MESSAGE_UNHANDLED(handled = false)
967 IPC_END_MESSAGE_MAP() 945 IPC_END_MESSAGE_MAP()
968 return handled; 946 return handled;
969 } 947 }
970 948
971 void ServiceWorkerVersion::OnStartSentAndScriptEvaluated( 949 void ServiceWorkerVersion::OnStartSentAndScriptEvaluated(
972 ServiceWorkerStatusCode status) { 950 ServiceWorkerStatusCode status) {
973 if (status != SERVICE_WORKER_OK) { 951 if (status != SERVICE_WORKER_OK) {
974 scoped_refptr<ServiceWorkerVersion> protect(this); 952 scoped_refptr<ServiceWorkerVersion> protect(this);
975 FinishStartWorker(DeduceStartWorkerFailureReason(status)); 953 FinishStartWorker(DeduceStartWorkerFailureReason(status));
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
1330 1308
1331 embedded_worker_->SendMessage(ServiceWorkerMsg_ClaimClientsError( 1309 embedded_worker_->SendMessage(ServiceWorkerMsg_ClaimClientsError(
1332 request_id, blink::WebServiceWorkerError::kErrorTypeAbort, 1310 request_id, blink::WebServiceWorkerError::kErrorTypeAbort,
1333 base::ASCIIToUTF16(kClaimClientsShutdownErrorMesage))); 1311 base::ASCIIToUTF16(kClaimClientsShutdownErrorMesage)));
1334 } 1312 }
1335 1313
1336 void ServiceWorkerVersion::OnPongFromWorker() { 1314 void ServiceWorkerVersion::OnPongFromWorker() {
1337 ping_controller_->OnPongReceived(); 1315 ping_controller_->OnPongReceived();
1338 } 1316 }
1339 1317
1340 void ServiceWorkerVersion::OnRegisterForeignFetchScopes( 1318 void ServiceWorkerVersion::RegisterForeignFetchScopes(
1341 const std::vector<GURL>& sub_scopes, 1319 const std::vector<GURL>& sub_scopes,
1342 const std::vector<url::Origin>& origins) { 1320 const std::vector<url::Origin>& origins) {
1343 DCHECK(status() == INSTALLING || status() == REDUNDANT) << status(); 1321 DCHECK(status() == INSTALLING || status() == REDUNDANT) << status();
1344 // Renderer should have already verified all these urls are inside the 1322 // Renderer should have already verified all these urls are inside the
1345 // worker's scope, but verify again here on the browser process side. 1323 // worker's scope, but verify again here on the browser process side.
1346 GURL origin = scope_.GetOrigin(); 1324 GURL origin = scope_.GetOrigin();
1347 std::string scope_path = scope_.path(); 1325 std::string scope_path = scope_.path();
1348 for (const GURL& url : sub_scopes) { 1326 for (const GURL& url : sub_scopes) {
1349 if (!url.is_valid() || url.GetOrigin() != origin || 1327 if (!url.is_valid() || url.GetOrigin() != origin ||
1350 !base::StartsWith(url.path(), scope_path, 1328 !base::StartsWith(url.path(), scope_path,
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
1840 1818
1841 void ServiceWorkerVersion::CleanUpExternalRequest( 1819 void ServiceWorkerVersion::CleanUpExternalRequest(
1842 const std::string& request_uuid, 1820 const std::string& request_uuid,
1843 ServiceWorkerStatusCode status) { 1821 ServiceWorkerStatusCode status) {
1844 if (status == SERVICE_WORKER_OK) 1822 if (status == SERVICE_WORKER_OK)
1845 return; 1823 return;
1846 external_request_uuid_to_request_id_.erase(request_uuid); 1824 external_request_uuid_to_request_id_.erase(request_uuid);
1847 } 1825 }
1848 1826
1849 } // namespace content 1827 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698