OLD | NEW |
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_version.h" | 5 #include "content/browser/service_worker/service_worker_version.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 | 265 |
266 void KillEmbeddedWorkerProcess(int process_id, ResultCode code) { | 266 void KillEmbeddedWorkerProcess(int process_id, ResultCode code) { |
267 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 267 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
268 | 268 |
269 RenderProcessHost* render_process_host = | 269 RenderProcessHost* render_process_host = |
270 RenderProcessHost::FromID(process_id); | 270 RenderProcessHost::FromID(process_id); |
271 if (render_process_host->GetHandle() != base::kNullProcessHandle) | 271 if (render_process_host->GetHandle() != base::kNullProcessHandle) |
272 render_process_host->ReceivedBadMessage(); | 272 render_process_host->ReceivedBadMessage(); |
273 } | 273 } |
274 | 274 |
275 void DidSetCachedMetadata(int64 callback_id, int result) { | |
276 TRACE_EVENT_ASYNC_END1("ServiceWorker", | |
277 "ServiceWorkerVersion::OnSetCachedMetadata", | |
278 callback_id, "result", result); | |
279 } | |
280 | |
281 void DidClearCachedMetadata(int64 callback_id, int result) { | |
282 TRACE_EVENT_ASYNC_END1("ServiceWorker", | |
283 "ServiceWorkerVersion::OnClearCachedMetadata", | |
284 callback_id, "result", result); | |
285 } | |
286 | |
287 } // namespace | 275 } // namespace |
288 | 276 |
289 ServiceWorkerVersion::ServiceWorkerVersion( | 277 ServiceWorkerVersion::ServiceWorkerVersion( |
290 ServiceWorkerRegistration* registration, | 278 ServiceWorkerRegistration* registration, |
291 const GURL& script_url, | 279 const GURL& script_url, |
292 int64 version_id, | 280 int64 version_id, |
293 base::WeakPtr<ServiceWorkerContextCore> context) | 281 base::WeakPtr<ServiceWorkerContextCore> context) |
294 : version_id_(version_id), | 282 : version_id_(version_id), |
295 registration_id_(kInvalidServiceWorkerVersionId), | 283 registration_id_(kInvalidServiceWorkerVersionId), |
296 script_url_(script_url), | 284 script_url_(script_url), |
(...skipping 940 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1237 request_id, client)); | 1225 request_id, client)); |
1238 } | 1226 } |
1239 | 1227 |
1240 void ServiceWorkerVersion::OnSetCachedMetadata(const GURL& url, | 1228 void ServiceWorkerVersion::OnSetCachedMetadata(const GURL& url, |
1241 const std::vector<char>& data) { | 1229 const std::vector<char>& data) { |
1242 int64 callback_id = base::TimeTicks::Now().ToInternalValue(); | 1230 int64 callback_id = base::TimeTicks::Now().ToInternalValue(); |
1243 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", | 1231 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", |
1244 "ServiceWorkerVersion::OnSetCachedMetadata", | 1232 "ServiceWorkerVersion::OnSetCachedMetadata", |
1245 callback_id, "URL", url.spec()); | 1233 callback_id, "URL", url.spec()); |
1246 script_cache_map_.WriteMetadata( | 1234 script_cache_map_.WriteMetadata( |
1247 url, data, base::Bind(&DidSetCachedMetadata, callback_id)); | 1235 url, data, base::Bind(&ServiceWorkerVersion::OnSetCachedMetadataFinished, |
| 1236 weak_factory_.GetWeakPtr(), callback_id)); |
| 1237 } |
| 1238 |
| 1239 void ServiceWorkerVersion::OnSetCachedMetadataFinished(int64 callback_id, |
| 1240 int result) { |
| 1241 TRACE_EVENT_ASYNC_END1("ServiceWorker", |
| 1242 "ServiceWorkerVersion::OnSetCachedMetadata", |
| 1243 callback_id, "result", result); |
| 1244 FOR_EACH_OBSERVER(Listener, listeners_, OnCachedMetadataUpdated(this)); |
1248 } | 1245 } |
1249 | 1246 |
1250 void ServiceWorkerVersion::OnClearCachedMetadata(const GURL& url) { | 1247 void ServiceWorkerVersion::OnClearCachedMetadata(const GURL& url) { |
1251 int64 callback_id = base::TimeTicks::Now().ToInternalValue(); | 1248 int64 callback_id = base::TimeTicks::Now().ToInternalValue(); |
1252 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", | 1249 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", |
1253 "ServiceWorkerVersion::OnClearCachedMetadata", | 1250 "ServiceWorkerVersion::OnClearCachedMetadata", |
1254 callback_id, "URL", url.spec()); | 1251 callback_id, "URL", url.spec()); |
1255 script_cache_map_.ClearMetadata( | 1252 script_cache_map_.ClearMetadata( |
1256 url, base::Bind(&DidClearCachedMetadata, callback_id)); | 1253 url, base::Bind(&ServiceWorkerVersion::OnClearCachedMetadataFinished, |
| 1254 weak_factory_.GetWeakPtr(), callback_id)); |
| 1255 } |
| 1256 |
| 1257 void ServiceWorkerVersion::OnClearCachedMetadataFinished(int64 callback_id, |
| 1258 int result) { |
| 1259 TRACE_EVENT_ASYNC_END1("ServiceWorker", |
| 1260 "ServiceWorkerVersion::OnClearCachedMetadata", |
| 1261 callback_id, "result", result); |
| 1262 FOR_EACH_OBSERVER(Listener, listeners_, OnCachedMetadataUpdated(this)); |
1257 } | 1263 } |
1258 | 1264 |
1259 void ServiceWorkerVersion::OnPostMessageToDocument( | 1265 void ServiceWorkerVersion::OnPostMessageToDocument( |
1260 int client_id, | 1266 int client_id, |
1261 const base::string16& message, | 1267 const base::string16& message, |
1262 const std::vector<int>& sent_message_port_ids) { | 1268 const std::vector<int>& sent_message_port_ids) { |
1263 TRACE_EVENT1("ServiceWorker", | 1269 TRACE_EVENT1("ServiceWorker", |
1264 "ServiceWorkerVersion::OnPostMessageToDocument", | 1270 "ServiceWorkerVersion::OnPostMessageToDocument", |
1265 "Client id", client_id); | 1271 "Client id", client_id); |
1266 ServiceWorkerProviderHost* provider_host = | 1272 ServiceWorkerProviderHost* provider_host = |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1444 int request_id) { | 1450 int request_id) { |
1445 callbacks->Remove(request_id); | 1451 callbacks->Remove(request_id); |
1446 if (is_doomed_) { | 1452 if (is_doomed_) { |
1447 // The stop should be already scheduled, but try to stop immediately, in | 1453 // The stop should be already scheduled, but try to stop immediately, in |
1448 // order to release worker resources soon. | 1454 // order to release worker resources soon. |
1449 StopWorkerIfIdle(); | 1455 StopWorkerIfIdle(); |
1450 } | 1456 } |
1451 } | 1457 } |
1452 | 1458 |
1453 } // namespace content | 1459 } // namespace content |
OLD | NEW |