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

Unified Diff: content/browser/service_worker/service_worker_browsertest.cc

Issue 2002883002: ServiceWorker: Store the existence of fetch event handler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove DispatchInstallEvent 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_browsertest.cc
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc
index 5e917c3a683c1592666cc35af15670433c42489c..1392a2c37840082710af57713047f577df3e9288 100644
--- a/content/browser/service_worker/service_worker_browsertest.cc
+++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -651,8 +651,26 @@ class ServiceWorkerVersionBrowserTest : public ServiceWorkerBrowserTest {
int request_id =
version_->StartRequest(ServiceWorkerMetrics::EventType::INSTALL,
CreateReceiver(BrowserThread::UI, done, result));
- version_->DispatchSimpleEvent<ServiceWorkerHostMsg_InstallEventFinished>(
- request_id, ServiceWorkerMsg_InstallEvent(request_id));
+ version_->DispatchEvent<ServiceWorkerHostMsg_InstallEventFinished>(
+ request_id, ServiceWorkerMsg_InstallEvent(request_id),
+ base::Bind(&self::ReceiveInstallEventOnIOThread, this, done, result));
+ }
+
+ void ReceiveInstallEventOnIOThread(const base::Closure& done,
+ ServiceWorkerStatusCode* out_result,
+ int request_id,
+ blink::WebServiceWorkerEventResult result,
+ bool has_fetch_handler) {
+ version_->FinishRequest(
+ request_id, result == blink::WebServiceWorkerEventResultCompleted);
+
+ ServiceWorkerStatusCode status = SERVICE_WORKER_OK;
+ if (result == blink::WebServiceWorkerEventResultRejected)
+ status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED;
+
+ *out_result = status;
+ if (!done.is_null())
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done);
}
void StoreOnIOThread(const base::Closure& done,

Powered by Google App Engine
This is Rietveld 408576698