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

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

Issue 2746783002: [ServiceWorker] Mojofy InstallEvent of Service Worker (Closed)
Patch Set: Rebase and address falken, leon and mek's comments Created 3 years, 9 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_register_job.cc
diff --git a/content/browser/service_worker/service_worker_register_job.cc b/content/browser/service_worker/service_worker_register_job.cc
index 2fcdbfb1a63cae53e7632d897fe9b0641f083d60..79afb5dad754af45653f68226a8368a5f25cab79 100644
--- a/content/browser/service_worker/service_worker_register_job.cc
+++ b/content/browser/service_worker/service_worker_register_job.cc
@@ -17,6 +17,7 @@
#include "content/browser/service_worker/service_worker_registration.h"
#include "content/browser/service_worker/service_worker_storage.h"
#include "content/browser/service_worker/service_worker_write_to_cache_job.h"
+#include "content/common/service_worker/service_worker_event_dispatcher.mojom.h"
#include "content/common/service_worker/service_worker_messages.h"
#include "content/common/service_worker/service_worker_types.h"
#include "content/common/service_worker/service_worker_utils.h"
@@ -40,6 +41,7 @@ ServiceWorkerRegisterJob::ServiceWorkerRegisterJob(
const GURL& pattern,
const GURL& script_url)
: context_(context),
+ install_method_binding_(this),
job_type_(REGISTRATION_JOB),
pattern_(pattern),
script_url_(script_url),
@@ -58,6 +60,7 @@ ServiceWorkerRegisterJob::ServiceWorkerRegisterJob(
bool force_bypass_cache,
bool skip_script_comparison)
: context_(context),
+ install_method_binding_(this),
job_type_(UPDATE_JOB),
pattern_(registration->pattern()),
phase_(INITIAL),
@@ -431,34 +434,29 @@ void ServiceWorkerRegisterJob::DispatchInstallEvent() {
ServiceWorkerMetrics::EventType::INSTALL,
base::Bind(&ServiceWorkerRegisterJob::OnInstallFailed,
weak_factory_.GetWeakPtr()));
- new_version()
- ->RegisterRequestCallback<ServiceWorkerHostMsg_InstallEventFinished>(
- request_id, base::Bind(&ServiceWorkerRegisterJob::OnInstallFinished,
- weak_factory_.GetWeakPtr()));
- new_version()->DispatchEvent({request_id},
- ServiceWorkerMsg_InstallEvent(request_id));
+
shimazu 2017/04/05 05:01:27 DCHECK(!install_method_binding_.is_bound());
+ mojom::InstallEventMethodAssociatedPtrInfo install_method_ptr_info;
+ install_method_binding_.Bind(&install_method_ptr_info);
+
+ new_version()->event_dispatcher()->DispatchInstallEvent(
+ std::move(install_method_ptr_info),
+ base::Bind(&ServiceWorkerRegisterJob::OnInstallFinished,
+ weak_factory_.GetWeakPtr(), request_id));
shimazu 2017/04/05 05:01:27 I think it's good to create a receiver class like
+}
+
+void ServiceWorkerRegisterJob::Register(
+ const std::vector<GURL>& sub_scopes,
+ const std::vector<url::Origin>& origins) {
+ new_version()->RegisterForeignFetchScopes(sub_scopes, origins);
}
void ServiceWorkerRegisterJob::OnInstallFinished(
int request_id,
- blink::WebServiceWorkerEventResult result,
+ ServiceWorkerStatusCode status,
bool has_fetch_handler,
base::Time dispatch_event_time) {
- new_version()->FinishRequest(
- request_id, result == blink::WebServiceWorkerEventResultCompleted,
- dispatch_event_time);
-
- ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
- switch (result) {
- case blink::WebServiceWorkerEventResultCompleted:
- status = SERVICE_WORKER_OK;
- break;
- case blink::WebServiceWorkerEventResultRejected:
- status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED;
- break;
- default:
- NOTREACHED();
- }
+ new_version()->FinishRequest(request_id, status == SERVICE_WORKER_OK,
+ dispatch_event_time);
if (status != SERVICE_WORKER_OK) {
OnInstallFailed(status);

Powered by Google App Engine
This is Rietveld 408576698