diff options
3 files changed, 13 insertions, 10 deletions
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc index 1ccb955..6feea38 100644 --- a/content/browser/service_worker/service_worker_browsertest.cc +++ b/content/browser/service_worker/service_worker_browsertest.cc @@ -582,14 +582,14 @@ class ServiceWorkerBlackBoxBrowserTest : public ServiceWorkerBrowserTest { IN_PROC_BROWSER_TEST_F(ServiceWorkerBlackBoxBrowserTest, Registration) { const std::string kWorkerUrl = "/service_worker/fetch_event.js"; - // Unregistering nothing should return false. + // Unregistering nothing should return true. { base::RunLoop run_loop; public_context()->UnregisterServiceWorker( embedded_test_server()->GetURL("/*"), RenderProcessID(), base::Bind(&ServiceWorkerBlackBoxBrowserTest::ExpectResultAndRun, - false, + true, run_loop.QuitClosure())); run_loop.Run(); } diff --git a/content/browser/service_worker/service_worker_job_unittest.cc b/content/browser/service_worker/service_worker_job_unittest.cc index 39f1b94..de5e612 100644 --- a/content/browser/service_worker/service_worker_job_unittest.cc +++ b/content/browser/service_worker/service_worker_job_unittest.cc @@ -272,10 +272,9 @@ TEST_F(ServiceWorkerJobTest, Unregister_NothingRegistered) { GURL pattern("http://www.example.com/*"); bool called; - job_coordinator()->Unregister( - pattern, - render_process_id_, - SaveUnregistration(SERVICE_WORKER_ERROR_NOT_FOUND, &called)); + job_coordinator()->Unregister(pattern, + render_process_id_, + SaveUnregistration(SERVICE_WORKER_OK, &called)); ASSERT_FALSE(called); base::RunLoop().RunUntilIdle(); @@ -567,15 +566,13 @@ TEST_F(ServiceWorkerJobTest, ParallelUnreg) { job_coordinator()->Unregister( pattern, render_process_id_, - SaveUnregistration(SERVICE_WORKER_ERROR_NOT_FOUND, - &unregistration1_called)); + SaveUnregistration(SERVICE_WORKER_OK, &unregistration1_called)); bool unregistration2_called = false; job_coordinator()->Unregister( pattern, render_process_id_, - SaveUnregistration(SERVICE_WORKER_ERROR_NOT_FOUND, - &unregistration2_called)); + SaveUnregistration(SERVICE_WORKER_OK, &unregistration2_called)); ASSERT_FALSE(unregistration1_called); ASSERT_FALSE(unregistration2_called); diff --git a/content/browser/service_worker/service_worker_unregister_job.cc b/content/browser/service_worker/service_worker_unregister_job.cc index 9b2addf..5866c78 100644 --- a/content/browser/service_worker/service_worker_unregister_job.cc +++ b/content/browser/service_worker/service_worker_unregister_job.cc @@ -59,6 +59,12 @@ void ServiceWorkerUnregisterJob::DeleteExistingRegistration( return; } + if (status == SERVICE_WORKER_ERROR_NOT_FOUND) { + DCHECK(!registration); + Complete(SERVICE_WORKER_OK); + return; + } + Complete(status); } |