| Index: content/browser/service_worker/service_worker_version.cc
|
| diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc
|
| index 352c33d7e7072c77468e88eb0f5054f286bcf823..60e2d9a35ab9176b0002c26b2080b69a71c8a595 100644
|
| --- a/content/browser/service_worker/service_worker_version.cc
|
| +++ b/content/browser/service_worker/service_worker_version.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/stl_util.h"
|
| #include "base/strings/string16.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| +#include "base/time/time.h"
|
| #include "content/browser/message_port_message_filter.h"
|
| #include "content/browser/message_port_service.h"
|
| #include "content/browser/service_worker/embedded_worker_instance.h"
|
| @@ -271,6 +272,18 @@ void KillEmbeddedWorkerProcess(int process_id, ResultCode code) {
|
| render_process_host->ReceivedBadMessage();
|
| }
|
|
|
| +void DidSetCachedMetadata(int64 callback_id, int result) {
|
| + TRACE_EVENT_ASYNC_END1("ServiceWorker",
|
| + "ServiceWorkerVersion::OnSetCachedMetadata",
|
| + callback_id, "result", result);
|
| +}
|
| +
|
| +void DidClearCachedMetadata(int64 callback_id, int result) {
|
| + TRACE_EVENT_ASYNC_END1("ServiceWorker",
|
| + "ServiceWorkerVersion::OnClearCachedMetadata",
|
| + callback_id, "result", result);
|
| +}
|
| +
|
| } // namespace
|
|
|
| ServiceWorkerVersion::ServiceWorkerVersion(
|
| @@ -929,6 +942,10 @@ bool ServiceWorkerVersion::OnMessageReceived(const IPC::Message& message) {
|
| OnCrossOriginConnectEventFinished)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_OpenWindow,
|
| OnOpenWindow)
|
| + IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_SetCachedMetadata,
|
| + OnSetCachedMetadata)
|
| + IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ClearCachedMetadata,
|
| + OnClearCachedMetadata)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessageToDocument,
|
| OnPostMessageToDocument)
|
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_FocusClient,
|
| @@ -1234,6 +1251,25 @@ void ServiceWorkerVersion::OnOpenWindowFinished(
|
| request_id, client));
|
| }
|
|
|
| +void ServiceWorkerVersion::OnSetCachedMetadata(const GURL& url,
|
| + const std::vector<char>& data) {
|
| + int64 callback_id = base::TimeTicks::Now().ToInternalValue();
|
| + TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker",
|
| + "ServiceWorkerVersion::OnSetCachedMetadata",
|
| + callback_id, "URL", url.spec());
|
| + script_cache_map_.WriteMetadata(
|
| + url, data, base::Bind(&DidSetCachedMetadata, callback_id));
|
| +}
|
| +
|
| +void ServiceWorkerVersion::OnClearCachedMetadata(const GURL& url) {
|
| + int64 callback_id = base::TimeTicks::Now().ToInternalValue();
|
| + TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker",
|
| + "ServiceWorkerVersion::OnClearCachedMetadata",
|
| + callback_id, "URL", url.spec());
|
| + script_cache_map_.ClearMetadata(
|
| + url, base::Bind(&DidClearCachedMetadata, callback_id));
|
| +}
|
| +
|
| void ServiceWorkerVersion::OnPostMessageToDocument(
|
| int client_id,
|
| const base::string16& message,
|
|
|