Index: content/browser/service_worker/service_worker_context_wrapper.cc |
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc |
index db0b4e9fffe6c94a3dcb2da3194f3e4629a666a8..77c709fb83d8c378d5d4938f29946947887c5427 100644 |
--- a/content/browser/service_worker/service_worker_context_wrapper.cc |
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc |
@@ -22,6 +22,7 @@ |
#include "content/browser/service_worker/service_worker_quota_client.h" |
#include "content/browser/service_worker/service_worker_request_handler.h" |
#include "content/browser/storage_partition_impl.h" |
+#include "content/common/service_worker/service_worker_status_code.h" |
#include "content/public/browser/browser_context.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/service_worker_context.h" |
@@ -218,6 +219,53 @@ void ServiceWorkerContextWrapper::UnregisterServiceWorker( |
base::Bind(&FinishUnregistrationOnIO, continuation)); |
} |
+static void CallGetUserDataCallback( |
+ const ServiceWorkerContext::GetUserDataCallback& callback, |
+ const std::string& data, |
+ ServiceWorkerStatusCode service_worker_status) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ bool success = service_worker_status == SERVICE_WORKER_OK; |
+ bool not_found = service_worker_status == SERVICE_WORKER_ERROR_NOT_FOUND; |
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
+ base::Bind(callback, data, success, not_found)); |
nhiroki
2015/01/26 03:25:26
I'd prefer to run the callback on the IO thread be
johnme
2015/01/26 11:02:58
Done (oops, that was actually my intention, but I
|
+} |
+ |
+static void CallResultCallback( |
+ const ServiceWorkerContext::ResultCallback& callback, |
+ ServiceWorkerStatusCode service_worker_status) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ bool success = service_worker_status == SERVICE_WORKER_OK; |
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
+ base::Bind(callback, success)); |
+} |
+ |
+void ServiceWorkerContextWrapper::GetUserData( |
+ int64 registration_id, const std::string& key, |
+ const GetUserDataCallback& callback) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ context()->storage()->GetUserData(registration_id, key, |
+ base::Bind(&CallGetUserDataCallback, |
+ callback)); |
+} |
+ |
+void ServiceWorkerContextWrapper::StoreUserData( |
+ int64 registration_id, const GURL& origin, const std::string& key, |
+ const std::string& data, const ResultCallback& callback) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ context()->storage()->StoreUserData(registration_id, origin, key, data, |
+ base::Bind(&CallResultCallback, |
+ callback)); |
+} |
+ |
+void ServiceWorkerContextWrapper::ClearUserData( |
+ int64 registration_id, const std::string& key, |
+ const ResultCallback& callback) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ context()->storage()->ClearUserData(registration_id, key, |
+ base::Bind(&CallResultCallback, |
+ callback)); |
+} |
+ |
static void DidFindRegistrationForDocument( |
const net::CompletionCallback& callback, |
ServiceWorkerStatusCode status, |