diff options
author | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-09 16:53:31 +0000 |
---|---|---|
committer | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-09 16:53:31 +0000 |
commit | 60c413c96834553e182e8c9c34d1e8958f3b0fb5 (patch) | |
tree | db8e37e57691ad25bd737895a5ec487e47107960 /net/url_request/url_request_job.cc | |
parent | dedf2055a80cf9d869767bbd0c99f51e4f31260e (diff) | |
download | chromium_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.cc | 35 |
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. |