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

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

Issue 2746783002: [ServiceWorker] Mojofy InstallEvent of Service Worker (Closed)
Patch Set: 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 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_register_job.h" 5 #include "content/browser/service_worker/service_worker_register_job.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 424
425 void ServiceWorkerRegisterJob::DispatchInstallEvent() { 425 void ServiceWorkerRegisterJob::DispatchInstallEvent() {
426 DCHECK_EQ(ServiceWorkerVersion::INSTALLING, new_version()->status()) 426 DCHECK_EQ(ServiceWorkerVersion::INSTALLING, new_version()->status())
427 << new_version()->status(); 427 << new_version()->status();
428 DCHECK_EQ(EmbeddedWorkerStatus::RUNNING, new_version()->running_status()) 428 DCHECK_EQ(EmbeddedWorkerStatus::RUNNING, new_version()->running_status())
429 << "Worker stopped too soon after it was started."; 429 << "Worker stopped too soon after it was started.";
430 int request_id = new_version()->StartRequest( 430 int request_id = new_version()->StartRequest(
431 ServiceWorkerMetrics::EventType::INSTALL, 431 ServiceWorkerMetrics::EventType::INSTALL,
432 base::Bind(&ServiceWorkerRegisterJob::OnInstallFailed, 432 base::Bind(&ServiceWorkerRegisterJob::OnInstallFailed,
433 weak_factory_.GetWeakPtr())); 433 weak_factory_.GetWeakPtr()));
434 new_version() 434
435 ->RegisterRequestCallback<ServiceWorkerHostMsg_InstallEventFinished>( 435 new_version()->event_dispatcher()->DispatchInstallEvent(
436 request_id, base::Bind(&ServiceWorkerRegisterJob::OnInstallFinished, 436 base::Bind(&ServiceWorkerRegisterJob::OnInstallFinished,
437 weak_factory_.GetWeakPtr())); 437 weak_factory_.GetWeakPtr(), request_id));
438 new_version()->DispatchEvent({request_id},
439 ServiceWorkerMsg_InstallEvent(request_id));
440 } 438 }
441 439
442 void ServiceWorkerRegisterJob::OnInstallFinished( 440 void ServiceWorkerRegisterJob::OnInstallFinished(
443 int request_id, 441 int request_id,
444 blink::WebServiceWorkerEventResult result, 442 ServiceWorkerStatusCode status,
445 bool has_fetch_handler, 443 bool has_fetch_handler,
446 base::Time dispatch_event_time) { 444 base::Time dispatch_event_time) {
447 new_version()->FinishRequest( 445 new_version()->FinishRequest(request_id, status == SERVICE_WORKER_OK,
falken 2017/03/14 08:49:26 By the way, this status == OK bool is not actually
xiaofengzhang 2017/04/01 02:27:21 thanks, falken, so I should keep it in this patch,
448 request_id, result == blink::WebServiceWorkerEventResultCompleted, 446 dispatch_event_time);
449 dispatch_event_time);
450
451 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
452 switch (result) {
453 case blink::WebServiceWorkerEventResultCompleted:
454 status = SERVICE_WORKER_OK;
455 break;
456 case blink::WebServiceWorkerEventResultRejected:
457 status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED;
458 break;
459 default:
460 NOTREACHED();
461 }
462 447
463 if (status != SERVICE_WORKER_OK) { 448 if (status != SERVICE_WORKER_OK) {
464 OnInstallFailed(status); 449 OnInstallFailed(status);
465 return; 450 return;
466 } 451 }
467 452
468 ServiceWorkerMetrics::RecordInstallEventStatus(status); 453 ServiceWorkerMetrics::RecordInstallEventStatus(status);
469 ServiceWorkerMetrics::RecordForeignFetchRegistrationCount( 454 ServiceWorkerMetrics::RecordForeignFetchRegistrationCount(
470 new_version()->foreign_fetch_scopes().size(), 455 new_version()->foreign_fetch_scopes().size(),
471 new_version()->foreign_fetch_origins().size()); 456 new_version()->foreign_fetch_origins().size());
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 new_version()->force_bypass_cache_for_scripts() || 633 new_version()->force_bypass_cache_for_scripts() ||
649 registration()->last_update_check().is_null()) { 634 registration()->last_update_check().is_null()) {
650 registration()->set_last_update_check(base::Time::Now()); 635 registration()->set_last_update_check(base::Time::Now());
651 636
652 if (registration()->has_installed_version()) 637 if (registration()->has_installed_version())
653 context_->storage()->UpdateLastUpdateCheckTime(registration()); 638 context_->storage()->UpdateLastUpdateCheckTime(registration());
654 } 639 }
655 } 640 }
656 641
657 } // namespace content 642 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698