diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/url_request/url_request_http_job.cc | 29 | ||||
-rw-r--r-- | net/url_request/url_request_http_job.h | 24 |
2 files changed, 28 insertions, 25 deletions
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc index 583cc0b..111146c 100644 --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc @@ -90,6 +90,28 @@ class HTTPSProberDelegateImpl : public HTTPSProberDelegate { } // namespace +class URLRequestHttpJob::HttpFilterContext : public FilterContext { + public: + explicit HttpFilterContext(URLRequestHttpJob* job); + virtual ~HttpFilterContext(); + + // FilterContext implementation. + virtual bool GetMimeType(std::string* mime_type) const; + virtual bool GetURL(GURL* gurl) const; + virtual base::Time GetRequestTime() const; + virtual bool IsCachedContent() const; + virtual bool IsDownload() const; + virtual bool IsSdchResponse() const; + virtual int64 GetByteReadCount() const; + virtual int GetResponseCode() const; + virtual void RecordPacketStats(StatisticSelector statistic) const; + + private: + URLRequestHttpJob* job_; + + DISALLOW_COPY_AND_ASSIGN(HttpFilterContext); +}; + URLRequestHttpJob::HttpFilterContext::HttpFilterContext(URLRequestHttpJob* job) : job_(job) { DCHECK(job_); @@ -208,7 +230,8 @@ URLRequestHttpJob::URLRequestHttpJob(URLRequest* request) request_time_snapshot_(), final_packet_time_(), observed_packet_count_(0), - ALLOW_THIS_IN_INITIALIZER_LIST(filter_context_(this)), + ALLOW_THIS_IN_INITIALIZER_LIST( + filter_context_(new HttpFilterContext(this))), ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { ResetTimer(); } @@ -819,10 +842,10 @@ Filter* URLRequestHttpJob::SetupFilter() const { // some decoding, as some proxies strip encoding completely. In such cases, // we may need to add (for example) SDCH filtering (when the context suggests // it is appropriate). - Filter::FixupEncodingTypes(filter_context_, &encoding_types); + Filter::FixupEncodingTypes(*filter_context_, &encoding_types); return !encoding_types.empty() - ? Filter::Factory(encoding_types, filter_context_) : NULL; + ? Filter::Factory(encoding_types, *filter_context_) : NULL; } bool URLRequestHttpJob::IsSafeRedirect(const GURL& location) { diff --git a/net/url_request/url_request_http_job.h b/net/url_request/url_request_http_job.h index 0d12486..0935117 100644 --- a/net/url_request/url_request_http_job.h +++ b/net/url_request/url_request_http_job.h @@ -136,27 +136,7 @@ class URLRequestHttpJob : public URLRequestJob { bool is_cached_content_; private: - class HttpFilterContext : public FilterContext { - public: - explicit HttpFilterContext(URLRequestHttpJob* job); - virtual ~HttpFilterContext(); - - // FilterContext implementation. - virtual bool GetMimeType(std::string* mime_type) const; - virtual bool GetURL(GURL* gurl) const; - virtual base::Time GetRequestTime() const; - virtual bool IsCachedContent() const; - virtual bool IsDownload() const; - virtual bool IsSdchResponse() const; - virtual int64 GetByteReadCount() const; - virtual int GetResponseCode() const; - virtual void RecordPacketStats(StatisticSelector statistic) const; - - private: - URLRequestHttpJob* job_; - - DISALLOW_COPY_AND_ASSIGN(HttpFilterContext); - }; + class HttpFilterContext; virtual ~URLRequestHttpJob(); @@ -202,7 +182,7 @@ class URLRequestHttpJob : public URLRequestJob { // We're ignoring overflow, as 1430 x 2^31 is a LOT of bytes. int observed_packet_count_; - HttpFilterContext filter_context_; + scoped_ptr<HttpFilterContext> filter_context_; ScopedRunnableMethodFactory<URLRequestHttpJob> method_factory_; DISALLOW_COPY_AND_ASSIGN(URLRequestHttpJob); |