summaryrefslogtreecommitdiffstats
path: root/net/url_request/url_request_job.cc
diff options
context:
space:
mode:
authorjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-09 16:53:31 +0000
committerjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-09 16:53:31 +0000
commit60c413c96834553e182e8c9c34d1e8958f3b0fb5 (patch)
treedb8e37e57691ad25bd737895a5ec487e47107960 /net/url_request/url_request_job.cc
parentdedf2055a80cf9d869767bbd0c99f51e4f31260e (diff)
downloadchromium_src-60c413c96834553e182e8c9c34d1e8958f3b0fb5.zip
chromium_src-60c413c96834553e182e8c9c34d1e8958f3b0fb5.tar.gz
chromium_src-60c413c96834553e182e8c9c34d1e8958f3b0fb5.tar.bz2
Use FilterContext to allow filters to access URLRequestJob data
r=wtc,darin,huanr Review URL: http://codereview.chromium.org/40138 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11248 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request/url_request_job.cc')
-rw-r--r--net/url_request/url_request_job.cc35
1 files changed, 22 insertions, 13 deletions
diff --git a/net/url_request/url_request_job.cc b/net/url_request/url_request_job.cc
index a82f879..2873ae2 100644
--- a/net/url_request/url_request_job.cc
+++ b/net/url_request/url_request_job.cc
@@ -18,7 +18,8 @@ using base::Time;
using base::TimeTicks;
// Buffer size allocated when de-compressing data.
-static const int kFilterBufSize = 32 * 1024;
+// static
+const int URLRequestJob::kFilterBufSize = 32 * 1024;
URLRequestJob::URLRequestJob(URLRequest* request)
: request_(request),
@@ -54,18 +55,7 @@ void URLRequestJob::DetachRequest() {
void URLRequestJob::SetupFilter() {
std::vector<Filter::FilterType> encoding_types;
if (GetContentEncodings(&encoding_types)) {
- filter_.reset(Filter::Factory(encoding_types, kFilterBufSize));
- if (filter_.get()) {
- std::string mime_type;
- GetMimeType(&mime_type);
- filter_->SetURL(request_->url());
- filter_->SetMimeType(mime_type);
- // Approximate connect time with request_time. If it is not cached, then
- // this is a good approximation for when the first bytes went on the
- // wire.
- filter_->SetConnectTime(request_->response_info_.request_time,
- request_->response_info_.was_cached);
- }
+ filter_.reset(Filter::Factory(encoding_types, *this));
}
}
@@ -96,6 +86,25 @@ void URLRequestJob::ContinueDespiteLastError() {
NOTREACHED();
}
+bool URLRequestJob::GetURL(GURL* gurl) const {
+ if (!request_)
+ return false;
+ *gurl = request_->url();
+ return true;
+}
+
+base::Time URLRequestJob::GetRequestTime() const {
+ if (!request_)
+ return base::Time();
+ return request_->request_time();
+};
+
+bool URLRequestJob::IsCachedContent() const {
+ if (!request_)
+ return false;
+ return request_->was_cached();
+};
+
// This function calls ReadData to get stream data. If a filter exists, passes
// the data to the attached filter. Then returns the output from filter back to
// the caller.