| Index: webkit/glue/media/buffered_resource_loader.h
|
| diff --git a/webkit/glue/media/buffered_resource_loader.h b/webkit/glue/media/buffered_resource_loader.h
|
| index 3e04b43d166104f0e22187951516244a24edf539..22b8bd1b95706ea6cfa8abf8c2bee1396498f89a 100644
|
| --- a/webkit/glue/media/buffered_resource_loader.h
|
| +++ b/webkit/glue/media/buffered_resource_loader.h
|
| @@ -36,6 +36,15 @@ class BufferedResourceLoader :
|
| public base::RefCountedThreadSafe<BufferedResourceLoader>,
|
| public WebKit::WebURLLoaderClient {
|
| public:
|
| + // kNeverDefer - Aggresively buffer; never defer loading while paused.
|
| + // kReadThenDefer - Request only enough data to fulfill read requests.
|
| + // kThresholdDefer - Try to keep amount of buffered data at a threshold.
|
| + enum DeferStrategy {
|
| + kNeverDefer,
|
| + kReadThenDefer,
|
| + kThresholdDefer,
|
| + };
|
| +
|
| typedef Callback0::Type NetworkEventCallback;
|
|
|
| // |url| - URL for the resource to be loaded.
|
| @@ -85,9 +94,6 @@ class BufferedResourceLoader :
|
| // |kPositionNotSpecified| if such value is not available.
|
| virtual int64 GetBufferedPosition();
|
|
|
| - // Sets whether deferring data is allowed or disallowed.
|
| - virtual void SetAllowDefer(bool is_allowed);
|
| -
|
| // Gets the content length in bytes of the instance after this loader has been
|
| // started. If this value is |kPositionNotSpecified|, then content length is
|
| // unknown.
|
| @@ -149,19 +155,30 @@ class BufferedResourceLoader :
|
|
|
| bool HasSingleOrigin() const;
|
|
|
| + // Sets the defer strategy to the given value.
|
| + void UpdateDeferStrategy(DeferStrategy strategy);
|
| +
|
| protected:
|
| friend class base::RefCountedThreadSafe<BufferedResourceLoader>;
|
| -
|
| virtual ~BufferedResourceLoader();
|
|
|
| private:
|
| friend class BufferedResourceLoaderTest;
|
|
|
| - // Defer the resource loading if the buffer is full.
|
| - void EnableDeferIfNeeded();
|
| + // Toggles whether the resource loading is deferred or not.
|
| + // Returns true if a network event was fired.
|
| + bool ToggleDeferring();
|
| +
|
| + // Returns true if we should defer resource loading, based
|
| + // on current buffering scheme.
|
| + bool ShouldEnableDefer();
|
| +
|
| + // Returns true if we should enable resource loading, based
|
| + // on current buffering scheme.
|
| + bool ShouldDisableDefer();
|
|
|
| - // Disable defer loading if we are under-buffered.
|
| - void DisableDeferIfNeeded();
|
| + // Updates deferring behavior based on current buffering scheme.
|
| + void UpdateDeferBehavior();
|
|
|
| // Returns true if the current read request can be fulfilled by what is in
|
| // the buffer.
|
| @@ -204,8 +221,8 @@ class BufferedResourceLoader :
|
| // True if resource loading was deferred.
|
| bool deferred_;
|
|
|
| - // True if resource loader is allowed to defer, false otherwise.
|
| - bool defer_allowed_;
|
| + // Current buffering algorithm in place for resource loading.
|
| + DeferStrategy defer_strategy_;
|
|
|
| // True if resource loading has completed.
|
| bool completed_;
|
|
|