Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Unified Diff: net/url_request/url_request_job.h

Issue 40138: Use FilterContext to allow filters to access URLRequestJob data... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/url_request/url_request_job.h
===================================================================
--- net/url_request/url_request_job.h (revision 11030)
+++ net/url_request/url_request_job.h (working copy)
@@ -9,6 +9,7 @@
#include <vector>
#include "base/ref_counted.h"
+#include "base/scoped_ptr.h"
#include "net/base/filter.h"
#include "net/base/load_states.h"
@@ -27,7 +28,8 @@
// The URLRequestJob is using RefCounterThreadSafe because some sub classes
// can be destroyed on multiple threads. This is the case of the
// UrlRequestFileJob.
-class URLRequestJob : public base::RefCountedThreadSafe<URLRequestJob> {
+class URLRequestJob : public base::RefCountedThreadSafe<URLRequestJob>,
+ public FilterContext {
public:
explicit URLRequestJob(URLRequest* request);
virtual ~URLRequestJob();
@@ -86,11 +88,6 @@
// Called to get the upload progress in bytes.
virtual uint64 GetUploadProgress() const { return 0; }
- // Called to fetch the mime_type for this request. Only makes sense for some
- // types of requests. Returns true on success. Calling this on a type that
- // doesn't have a mime type will return false.
- virtual bool GetMimeType(std::string* mime_type) { return false; }
-
// Called to fetch the charset for this request. Only makes sense for some
// types of requests. Returns true on success. Calling this on a type that
// doesn't have a charset will return false.
@@ -192,6 +189,14 @@
expected_content_size_ = size;
}
+ // FilterContext methods:
+ // These methods are not applicable to all connections.
+ virtual bool GetMimeType(std::string* mime_type) const { return false; }
+ virtual bool GetURL(GURL* gurl) const;
+ virtual base::Time GetRequestTime() const;
+ virtual bool IsCachedContent() const;
+ virtual int GetInputStreambufferSize() const { return kFilterBufSize; }
wtc 2009/03/09 17:24:09 Should we capitalize "buffer"?
+
protected:
// Notifies the job that headers have been received.
void NotifyHeadersComplete();
@@ -259,6 +264,9 @@
scoped_ptr<URLRequestJobMetrics> metrics_;
private:
+ // Size of filter input buffers used by this class.
+ static const int kFilterBufSize;
+
// When data filtering is enabled, this function is used to read data
// for the filter. Returns true if raw data was read. Returns false if
// an error occurred (or we are waiting for IO to complete).

Powered by Google App Engine
This is Rietveld 408576698