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

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: 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 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698