OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_cache.h" | 5 #include "content/browser/service_worker/service_worker_cache.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
10 #include "base/guid.h" | 10 #include "base/guid.h" |
11 #include "base/message_loop/message_loop_proxy.h" | 11 #include "base/message_loop/message_loop_proxy.h" |
| 12 #include "base/profiler/scoped_tracker.h" |
12 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
13 #include "content/browser/service_worker/service_worker_cache.pb.h" | 14 #include "content/browser/service_worker/service_worker_cache.pb.h" |
14 #include "content/public/browser/browser_thread.h" | 15 #include "content/public/browser/browser_thread.h" |
15 #include "net/base/io_buffer.h" | 16 #include "net/base/io_buffer.h" |
16 #include "net/base/net_errors.h" | 17 #include "net/base/net_errors.h" |
17 #include "net/disk_cache/disk_cache.h" | 18 #include "net/disk_cache/disk_cache.h" |
18 #include "net/url_request/url_request_context.h" | 19 #include "net/url_request/url_request_context.h" |
19 #include "storage/browser/blob/blob_data_handle.h" | 20 #include "storage/browser/blob/blob_data_handle.h" |
20 #include "storage/browser/blob/blob_storage_context.h" | 21 #include "storage/browser/blob/blob_storage_context.h" |
21 #include "storage/browser/blob/blob_url_request_job_factory.h" | 22 #include "storage/browser/blob/blob_url_request_job_factory.h" |
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 void OnSSLCertificateError(net::URLRequest* request, | 440 void OnSSLCertificateError(net::URLRequest* request, |
440 const net::SSLInfo& ssl_info, | 441 const net::SSLInfo& ssl_info, |
441 bool fatal) override { | 442 bool fatal) override { |
442 NOTREACHED(); | 443 NOTREACHED(); |
443 } | 444 } |
444 void OnBeforeNetworkStart(net::URLRequest* request, bool* defer) override { | 445 void OnBeforeNetworkStart(net::URLRequest* request, bool* defer) override { |
445 NOTREACHED(); | 446 NOTREACHED(); |
446 } | 447 } |
447 | 448 |
448 void OnResponseStarted(net::URLRequest* request) override { | 449 void OnResponseStarted(net::URLRequest* request) override { |
| 450 // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. |
| 451 tracked_objects::ScopedTracker tracking_profile( |
| 452 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 453 "423948 ServiceWorkerCache::BlobReader::OnResponseStarted")); |
| 454 |
449 if (!request->status().is_success()) { | 455 if (!request->status().is_success()) { |
450 callback_.Run(entry_.Pass(), false); | 456 callback_.Run(entry_.Pass(), false); |
451 return; | 457 return; |
452 } | 458 } |
453 ReadFromBlob(); | 459 ReadFromBlob(); |
454 } | 460 } |
455 | 461 |
456 virtual void ReadFromBlob() { | 462 virtual void ReadFromBlob() { |
457 int bytes_read = 0; | 463 int bytes_read = 0; |
458 bool done = | 464 bool done = |
459 blob_request_->Read(buffer_.get(), buffer_->size(), &bytes_read); | 465 blob_request_->Read(buffer_.get(), buffer_->size(), &bytes_read); |
460 if (done) | 466 if (done) |
461 OnReadCompleted(blob_request_.get(), bytes_read); | 467 OnReadCompleted(blob_request_.get(), bytes_read); |
462 } | 468 } |
463 | 469 |
464 void OnReadCompleted(net::URLRequest* request, int bytes_read) override { | 470 void OnReadCompleted(net::URLRequest* request, int bytes_read) override { |
| 471 // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. |
| 472 tracked_objects::ScopedTracker tracking_profile( |
| 473 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 474 "423948 ServiceWorkerCache::BlobReader::OnReadCompleted")); |
| 475 |
465 if (!request->status().is_success()) { | 476 if (!request->status().is_success()) { |
466 callback_.Run(entry_.Pass(), false); | 477 callback_.Run(entry_.Pass(), false); |
467 return; | 478 return; |
468 } | 479 } |
469 | 480 |
470 if (bytes_read == 0) { | 481 if (bytes_read == 0) { |
471 callback_.Run(entry_.Pass(), true); | 482 callback_.Run(entry_.Pass(), true); |
472 return; | 483 return; |
473 } | 484 } |
474 | 485 |
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1239 | 1250 |
1240 void ServiceWorkerCache::PendingRequestsCallback( | 1251 void ServiceWorkerCache::PendingRequestsCallback( |
1241 const RequestsCallback& callback, | 1252 const RequestsCallback& callback, |
1242 ErrorType error, | 1253 ErrorType error, |
1243 scoped_ptr<Requests> requests) { | 1254 scoped_ptr<Requests> requests) { |
1244 callback.Run(error, requests.Pass()); | 1255 callback.Run(error, requests.Pass()); |
1245 DecPendingOps(); | 1256 DecPendingOps(); |
1246 } | 1257 } |
1247 | 1258 |
1248 } // namespace content | 1259 } // namespace content |
OLD | NEW |