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

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

Issue 2002883002: ServiceWorker: Store the existence of fetch event handler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 if (running_status() == RUNNING) { 549 if (running_status() == RUNNING) {
550 DCHECK(start_callbacks_.empty()); 550 DCHECK(start_callbacks_.empty());
551 task.Run(); 551 task.Run();
552 return; 552 return;
553 } 553 }
554 StartWorker(purpose, 554 StartWorker(purpose,
555 base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(), 555 base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(),
556 error_callback, task)); 556 error_callback, task));
557 } 557 }
558 558
559 void ServiceWorkerVersion::DispatchInstallEvent(int request_id) {
560 DispatchEvent<ServiceWorkerHostMsg_InstallEventFinished>(
561 request_id, ServiceWorkerMsg_InstallEvent(request_id),
562 base::Bind(&ServiceWorkerVersion::OnInstallEventResponse, this));
563 }
564
559 void ServiceWorkerVersion::AddControllee( 565 void ServiceWorkerVersion::AddControllee(
560 ServiceWorkerProviderHost* provider_host) { 566 ServiceWorkerProviderHost* provider_host) {
561 const std::string& uuid = provider_host->client_uuid(); 567 const std::string& uuid = provider_host->client_uuid();
562 CHECK(!provider_host->client_uuid().empty()); 568 CHECK(!provider_host->client_uuid().empty());
563 DCHECK(!ContainsKey(controllee_map_, uuid)); 569 DCHECK(!ContainsKey(controllee_map_, uuid));
564 controllee_map_[uuid] = provider_host; 570 controllee_map_[uuid] = provider_host;
565 // Keep the worker alive a bit longer right after a new controllee is added. 571 // Keep the worker alive a bit longer right after a new controllee is added.
566 RestartTick(&idle_time_); 572 RestartTick(&idle_time_);
567 FOR_EACH_OBSERVER(Listener, listeners_, 573 FOR_EACH_OBSERVER(Listener, listeners_,
568 OnControlleeAdded(this, provider_host)); 574 OnControlleeAdded(this, provider_host));
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 940
935 FinishRequest(request_id, 941 FinishRequest(request_id,
936 result == blink::WebServiceWorkerEventResultCompleted); 942 result == blink::WebServiceWorkerEventResultCompleted);
937 943
938 ServiceWorkerStatusCode status = SERVICE_WORKER_OK; 944 ServiceWorkerStatusCode status = SERVICE_WORKER_OK;
939 if (result == blink::WebServiceWorkerEventResultRejected) 945 if (result == blink::WebServiceWorkerEventResultRejected)
940 status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; 946 status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED;
941 callback.Run(status); 947 callback.Run(status);
942 } 948 }
943 949
950 void ServiceWorkerVersion::OnInstallEventResponse(
951 int request_id,
952 blink::WebServiceWorkerEventResult result,
953 bool has_fetch_handler) {
954 has_fetch_handler_ = has_fetch_handler;
955 OnSimpleEventResponse(request_id, result);
956 }
957
944 void ServiceWorkerVersion::OnOpenWindow(int request_id, GURL url) { 958 void ServiceWorkerVersion::OnOpenWindow(int request_id, GURL url) {
945 // Just abort if we are shutting down. 959 // Just abort if we are shutting down.
946 if (!context_) 960 if (!context_)
947 return; 961 return;
948 962
949 if (!url.is_valid()) { 963 if (!url.is_valid()) {
950 DVLOG(1) << "Received unexpected invalid URL from renderer process."; 964 DVLOG(1) << "Received unexpected invalid URL from renderer process.";
951 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 965 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
952 base::Bind(&KillEmbeddedWorkerProcess, 966 base::Bind(&KillEmbeddedWorkerProcess,
953 embedded_worker_->process_id(), 967 embedded_worker_->process_id(),
(...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after
1693 void ServiceWorkerVersion::OnBeginEvent() { 1707 void ServiceWorkerVersion::OnBeginEvent() {
1694 if (should_exclude_from_uma_ || running_status() != RUNNING || 1708 if (should_exclude_from_uma_ || running_status() != RUNNING ||
1695 idle_time_.is_null()) { 1709 idle_time_.is_null()) {
1696 return; 1710 return;
1697 } 1711 }
1698 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() - 1712 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() -
1699 idle_time_); 1713 idle_time_);
1700 } 1714 }
1701 1715
1702 } // namespace content 1716 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698