OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file contains an implementation of the ResourceLoaderBridge class. | 5 // This file contains an implementation of the ResourceLoaderBridge class. |
6 // The class is implemented using net::URLRequest, meaning it is a "simple" | 6 // The class is implemented using net::URLRequest, meaning it is a "simple" |
7 // version that directly issues requests. The more complicated one used in the | 7 // version that directly issues requests. The more complicated one used in the |
8 // browser uses IPC. | 8 // browser uses IPC. |
9 // | 9 // |
10 // Because net::URLRequest only provides an asynchronous resource loading API, | 10 // Because net::URLRequest only provides an asynchronous resource loading API, |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
46 #include "base/time.h" | 46 #include "base/time.h" |
47 #include "base/timer.h" | 47 #include "base/timer.h" |
48 #include "net/base/file_stream.h" | 48 #include "net/base/file_stream.h" |
49 #include "net/base/io_buffer.h" | 49 #include "net/base/io_buffer.h" |
50 #include "net/base/load_flags.h" | 50 #include "net/base/load_flags.h" |
51 #include "net/base/mime_util.h" | 51 #include "net/base/mime_util.h" |
52 #include "net/base/net_errors.h" | 52 #include "net/base/net_errors.h" |
53 #include "net/base/net_util.h" | 53 #include "net/base/net_util.h" |
54 #include "net/base/network_delegate.h" | 54 #include "net/base/network_delegate.h" |
55 #include "net/base/static_cookie_policy.h" | 55 #include "net/base/static_cookie_policy.h" |
56 #include "net/base/upload_data.h" | 56 #include "net/base/upload_data_stream.h" |
57 #include "net/cookies/cookie_store.h" | 57 #include "net/cookies/cookie_store.h" |
58 #include "net/http/http_cache.h" | 58 #include "net/http/http_cache.h" |
59 #include "net/http/http_request_headers.h" | 59 #include "net/http/http_request_headers.h" |
60 #include "net/http/http_response_headers.h" | 60 #include "net/http/http_response_headers.h" |
61 #include "net/url_request/url_request.h" | 61 #include "net/url_request/url_request.h" |
62 #include "net/url_request/url_request_job.h" | 62 #include "net/url_request/url_request_job.h" |
63 #include "webkit/appcache/appcache_interfaces.h" | 63 #include "webkit/appcache/appcache_interfaces.h" |
64 #include "webkit/blob/blob_storage_controller.h" | 64 #include "webkit/blob/blob_storage_controller.h" |
65 #include "webkit/blob/blob_url_request_job.h" | 65 #include "webkit/blob/blob_url_request_job.h" |
66 #include "webkit/blob/shareable_file_reference.h" | 66 #include "webkit/blob/shareable_file_reference.h" |
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
611 // Called on the IO thread. | 611 // Called on the IO thread. |
612 void MaybeUpdateUploadProgress() { | 612 void MaybeUpdateUploadProgress() { |
613 // If a redirect is received upload is cancelled in net::URLRequest, we | 613 // If a redirect is received upload is cancelled in net::URLRequest, we |
614 // should try to stop the |upload_progress_timer_| timer and return. | 614 // should try to stop the |upload_progress_timer_| timer and return. |
615 if (!request_->has_upload()) { | 615 if (!request_->has_upload()) { |
616 if (upload_progress_timer_.IsRunning()) | 616 if (upload_progress_timer_.IsRunning()) |
617 upload_progress_timer_.Stop(); | 617 upload_progress_timer_.Stop(); |
618 return; | 618 return; |
619 } | 619 } |
620 | 620 |
621 // GetContentLengthSync() may perform file IO, but it's ok here, as file | 621 // UploadDataStream::Init() may perform file IO, but it's ok here, as file |
622 // IO is not prohibited in IOThread defined in the file. | 622 // IO is not prohibited in IOThread defined in the file. |
623 uint64 size = request_->get_upload_mutable()->GetContentLengthSync(); | 623 uint64 size = 0; |
624 { | |
625 net::UploadDataStream stream(request_->get_upload_mutable()); | |
hashimoto
2012/08/27 22:09:40
This filthy code here and in resource_dispatcher_h
| |
626 if (stream.Init() == net::OK) | |
627 size = stream.size(); | |
628 } | |
624 uint64 position = request_->GetUploadProgress(); | 629 uint64 position = request_->GetUploadProgress(); |
625 if (position == last_upload_position_) | 630 if (position == last_upload_position_) |
626 return; // no progress made since last time | 631 return; // no progress made since last time |
627 | 632 |
628 const uint64 kHalfPercentIncrements = 200; | 633 const uint64 kHalfPercentIncrements = 200; |
629 const base::TimeDelta kOneSecond = base::TimeDelta::FromMilliseconds(1000); | 634 const base::TimeDelta kOneSecond = base::TimeDelta::FromMilliseconds(1000); |
630 | 635 |
631 uint64 amt_since_last = position - last_upload_position_; | 636 uint64 amt_since_last = position - last_upload_position_; |
632 base::TimeDelta time_since_last = base::TimeTicks::Now() - | 637 base::TimeDelta time_since_last = base::TimeTicks::Now() - |
633 last_upload_ticks_; | 638 last_upload_ticks_; |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1107 (http_prefix.SchemeIs("http") || http_prefix.SchemeIs("https"))); | 1112 (http_prefix.SchemeIs("http") || http_prefix.SchemeIs("https"))); |
1108 g_file_over_http_params = new FileOverHTTPParams(file_path_template, | 1113 g_file_over_http_params = new FileOverHTTPParams(file_path_template, |
1109 http_prefix); | 1114 http_prefix); |
1110 } | 1115 } |
1111 | 1116 |
1112 // static | 1117 // static |
1113 webkit_glue::ResourceLoaderBridge* SimpleResourceLoaderBridge::Create( | 1118 webkit_glue::ResourceLoaderBridge* SimpleResourceLoaderBridge::Create( |
1114 const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info) { | 1119 const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info) { |
1115 return new ResourceLoaderBridgeImpl(request_info); | 1120 return new ResourceLoaderBridgeImpl(request_info); |
1116 } | 1121 } |
OLD | NEW |