| Index: content/public/browser/resource_throttle.h
|
| diff --git a/content/public/browser/resource_throttle.h b/content/public/browser/resource_throttle.h
|
| index da1054c86cfb5c26bf2890fa82190fcb934c2400..4ac8fd4d6633197eaf37c740470090a1150630be 100644
|
| --- a/content/public/browser/resource_throttle.h
|
| +++ b/content/public/browser/resource_throttle.h
|
| @@ -24,6 +24,25 @@ class ThrottlingResourceHandler;
|
| // time.
|
| class CONTENT_EXPORT ResourceThrottle {
|
| public:
|
| + // An interface to get notified when the throttle implementation considers
|
| + // it's ready to resume the deferred resource load. The throttle
|
| + // implementation may also tell the delegate to cancel the resource loading.
|
| + class CONTENT_EXPORT Delegate {
|
| + public:
|
| + // Cancels the resource load.
|
| + virtual void Cancel() = 0;
|
| + // Marks the resource load as ignored by the resource handler, and then
|
| + // cancels the resource load.
|
| + virtual void CancelAndIgnore() = 0;
|
| + // Cancels the resource load with the specified error code.
|
| + virtual void CancelWithError(int error_code) = 0;
|
| + // Tells the delegate to resume the deferred resource load.
|
| + virtual void Resume() = 0;
|
| +
|
| + protected:
|
| + virtual ~Delegate() {}
|
| + };
|
| +
|
| virtual ~ResourceThrottle() {}
|
|
|
| // Called before the resource request is started.
|
| @@ -51,20 +70,25 @@ class CONTENT_EXPORT ResourceThrottle {
|
| // WillProcessResponse.
|
| virtual bool MustProcessResponseBeforeReadingBody();
|
|
|
| - void set_controller_for_testing(ResourceController* c) {
|
| - controller_ = c;
|
| - }
|
| + void set_delegate_for_testing(Delegate* delegate) { delegate_ = delegate; }
|
|
|
| protected:
|
| - ResourceThrottle() : controller_(nullptr) {}
|
| - ResourceController* controller() { return controller_; }
|
| + ResourceThrottle() : delegate_(nullptr) {}
|
| +
|
| + // Helper methods for subclasses. When these methods are called, methods with
|
| + // the same name on |delegate_| are called.
|
| + void Cancel();
|
| + void CancelAndIgnore();
|
| + void CancelWithError(int error_code);
|
| + void Resume();
|
|
|
| private:
|
| friend class AsyncRevalidationDriver;
|
| friend class ThrottlingResourceHandler;
|
| - void set_controller(ResourceController* c) { controller_ = c; }
|
|
|
| - ResourceController* controller_;
|
| + void set_delegate(Delegate* delegate) { delegate_ = delegate; }
|
| +
|
| + Delegate* delegate_;
|
| };
|
|
|
| } // namespace content
|
|
|