Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Side by Side Diff: content/browser/service_worker/service_worker_version.cc

Issue 945413005: Add browser test for V8 code caching for ServiceWorker scripts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: incorporated kinuko's comment Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 271
272 void KillEmbeddedWorkerProcess(int process_id, ResultCode code) { 272 void KillEmbeddedWorkerProcess(int process_id, ResultCode code) {
273 DCHECK_CURRENTLY_ON(BrowserThread::UI); 273 DCHECK_CURRENTLY_ON(BrowserThread::UI);
274 274
275 RenderProcessHost* render_process_host = 275 RenderProcessHost* render_process_host =
276 RenderProcessHost::FromID(process_id); 276 RenderProcessHost::FromID(process_id);
277 if (render_process_host->GetHandle() != base::kNullProcessHandle) 277 if (render_process_host->GetHandle() != base::kNullProcessHandle)
278 render_process_host->ReceivedBadMessage(); 278 render_process_host->ReceivedBadMessage();
279 } 279 }
280 280
281 void DidSetCachedMetadata(int64 callback_id, int result) {
282 TRACE_EVENT_ASYNC_END1("ServiceWorker",
283 "ServiceWorkerVersion::OnSetCachedMetadata",
284 callback_id, "result", result);
285 }
286
287 void DidClearCachedMetadata(int64 callback_id, int result) {
288 TRACE_EVENT_ASYNC_END1("ServiceWorker",
289 "ServiceWorkerVersion::OnClearCachedMetadata",
290 callback_id, "result", result);
291 }
292
293 } // namespace 281 } // namespace
294 282
295 ServiceWorkerVersion::ServiceWorkerVersion( 283 ServiceWorkerVersion::ServiceWorkerVersion(
296 ServiceWorkerRegistration* registration, 284 ServiceWorkerRegistration* registration,
297 const GURL& script_url, 285 const GURL& script_url,
298 int64 version_id, 286 int64 version_id,
299 base::WeakPtr<ServiceWorkerContextCore> context) 287 base::WeakPtr<ServiceWorkerContextCore> context)
300 : version_id_(version_id), 288 : version_id_(version_id),
301 registration_id_(kInvalidServiceWorkerVersionId), 289 registration_id_(kInvalidServiceWorkerVersionId),
302 script_url_(script_url), 290 script_url_(script_url),
(...skipping 954 matching lines...) Expand 10 before | Expand all | Expand 10 after
1257 request_id, client)); 1245 request_id, client));
1258 } 1246 }
1259 1247
1260 void ServiceWorkerVersion::OnSetCachedMetadata(const GURL& url, 1248 void ServiceWorkerVersion::OnSetCachedMetadata(const GURL& url,
1261 const std::vector<char>& data) { 1249 const std::vector<char>& data) {
1262 int64 callback_id = base::TimeTicks::Now().ToInternalValue(); 1250 int64 callback_id = base::TimeTicks::Now().ToInternalValue();
1263 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", 1251 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker",
1264 "ServiceWorkerVersion::OnSetCachedMetadata", 1252 "ServiceWorkerVersion::OnSetCachedMetadata",
1265 callback_id, "URL", url.spec()); 1253 callback_id, "URL", url.spec());
1266 script_cache_map_.WriteMetadata( 1254 script_cache_map_.WriteMetadata(
1267 url, data, base::Bind(&DidSetCachedMetadata, callback_id)); 1255 url, data, base::Bind(&ServiceWorkerVersion::OnSetCachedMetadataFinished,
1256 weak_factory_.GetWeakPtr(), callback_id));
1257 }
1258
1259 void ServiceWorkerVersion::OnSetCachedMetadataFinished(int64 callback_id,
1260 int result) {
1261 TRACE_EVENT_ASYNC_END1("ServiceWorker",
1262 "ServiceWorkerVersion::OnSetCachedMetadata",
1263 callback_id, "result", result);
1264 FOR_EACH_OBSERVER(Listener, listeners_, OnCachedMetadataUpdated(this));
1268 } 1265 }
1269 1266
1270 void ServiceWorkerVersion::OnClearCachedMetadata(const GURL& url) { 1267 void ServiceWorkerVersion::OnClearCachedMetadata(const GURL& url) {
1271 int64 callback_id = base::TimeTicks::Now().ToInternalValue(); 1268 int64 callback_id = base::TimeTicks::Now().ToInternalValue();
1272 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", 1269 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker",
1273 "ServiceWorkerVersion::OnClearCachedMetadata", 1270 "ServiceWorkerVersion::OnClearCachedMetadata",
1274 callback_id, "URL", url.spec()); 1271 callback_id, "URL", url.spec());
1275 script_cache_map_.ClearMetadata( 1272 script_cache_map_.ClearMetadata(
1276 url, base::Bind(&DidClearCachedMetadata, callback_id)); 1273 url, base::Bind(&ServiceWorkerVersion::OnClearCachedMetadataFinished,
1274 weak_factory_.GetWeakPtr(), callback_id));
1275 }
1276
1277 void ServiceWorkerVersion::OnClearCachedMetadataFinished(int64 callback_id,
1278 int result) {
1279 TRACE_EVENT_ASYNC_END1("ServiceWorker",
1280 "ServiceWorkerVersion::OnClearCachedMetadata",
1281 callback_id, "result", result);
1282 FOR_EACH_OBSERVER(Listener, listeners_, OnCachedMetadataUpdated(this));
1277 } 1283 }
1278 1284
1279 void ServiceWorkerVersion::OnPostMessageToDocument( 1285 void ServiceWorkerVersion::OnPostMessageToDocument(
1280 int client_id, 1286 int client_id,
1281 const base::string16& message, 1287 const base::string16& message,
1282 const std::vector<int>& sent_message_port_ids) { 1288 const std::vector<int>& sent_message_port_ids) {
1283 TRACE_EVENT1("ServiceWorker", 1289 TRACE_EVENT1("ServiceWorker",
1284 "ServiceWorkerVersion::OnPostMessageToDocument", 1290 "ServiceWorkerVersion::OnPostMessageToDocument",
1285 "Client id", client_id); 1291 "Client id", client_id);
1286 ServiceWorkerProviderHost* provider_host = 1292 ServiceWorkerProviderHost* provider_host =
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
1511 int request_id) { 1517 int request_id) {
1512 callbacks->Remove(request_id); 1518 callbacks->Remove(request_id);
1513 if (is_doomed_) { 1519 if (is_doomed_) {
1514 // The stop should be already scheduled, but try to stop immediately, in 1520 // The stop should be already scheduled, but try to stop immediately, in
1515 // order to release worker resources soon. 1521 // order to release worker resources soon.
1516 StopWorkerIfIdle(); 1522 StopWorkerIfIdle();
1517 } 1523 }
1518 } 1524 }
1519 1525
1520 } // namespace content 1526 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_version.h ('k') | content/public/common/content_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698