Chromium Code Reviews| 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 abd8a4f4a59af7cfbbff57c16a3a76cede1b5729..a1a26585aa8ce99a5889f486888716fdaddede49 100644 |
| --- a/content/browser/service_worker/service_worker_browsertest.cc |
| +++ b/content/browser/service_worker/service_worker_browsertest.cc |
| @@ -80,6 +80,14 @@ void RunOnIOThread( |
| run_loop.Run(); |
| } |
| +void ReceivePrepareResult(bool* is_prepared) { |
| + *is_prepared = true; |
| +} |
| + |
| +base::Closure CreatePrepareReceiver(bool* is_prepared) { |
| + return base::Bind(&ReceivePrepareResult, is_prepared); |
| +} |
| + |
| // Contrary to the style guide, the output parameter of this function comes |
| // before input parameters so Bind can be used on it to create a FetchCallback |
| // to pass to DispatchFetchEvent. |
| @@ -466,6 +474,7 @@ class ServiceWorkerVersionBrowserTest : public ServiceWorkerBrowserTest { |
| scoped_ptr<storage::BlobDataHandle>* blob_data_handle) { |
| blob_context_ = ChromeBlobStorageContext::GetFor( |
| shell()->web_contents()->GetBrowserContext()); |
| + bool prepare_result = false; |
| FetchResult fetch_result; |
| fetch_result.status = SERVICE_WORKER_ERROR_FAILED; |
| base::RunLoop fetch_run_loop; |
| @@ -474,8 +483,10 @@ class ServiceWorkerVersionBrowserTest : public ServiceWorkerBrowserTest { |
| base::Bind(&self::FetchOnIOThread, |
| this, |
| fetch_run_loop.QuitClosure(), |
| + &prepare_result, |
| &fetch_result)); |
| fetch_run_loop.Run(); |
| + ASSERT_TRUE(prepare_result); |
| *result = fetch_result.result; |
| *response = fetch_result.response; |
| *blob_data_handle = fetch_result.blob_data_handle.Pass(); |
| @@ -526,7 +537,9 @@ class ServiceWorkerVersionBrowserTest : public ServiceWorkerBrowserTest { |
| CreateReceiver(BrowserThread::UI, done, result)); |
| } |
| - void FetchOnIOThread(const base::Closure& done, FetchResult* result) { |
| + void FetchOnIOThread(const base::Closure& done, |
| + bool* prepare_result, |
| + FetchResult* result) { |
| ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| ServiceWorkerFetchRequest request( |
| embedded_test_server()->GetURL("/service_worker/empty.html"), |
| @@ -537,6 +550,7 @@ class ServiceWorkerVersionBrowserTest : public ServiceWorkerBrowserTest { |
| version_->SetStatus(ServiceWorkerVersion::ACTIVATED); |
| version_->DispatchFetchEvent( |
| request, |
| + CreatePrepareReceiver(prepare_result), |
|
nhiroki
2014/08/27 05:05:38
nit: I think we don't have to use this indirect ca
|
| CreateResponseReceiver( |
| BrowserThread::UI, done, blob_context_.get(), result)); |
| } |