Chromium Code Reviews| 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); |