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

Unified Diff: webkit/glue/media/buffered_resource_loader.h

Issue 6625059: Implementing preload=metadata for video (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Strategy is enum, not object Created 9 years, 9 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: 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 fe01fb4d3cfa88be1f84f7b73cfc9b1f077fff97..d03e9d03858f9f0680bc873e9229cfca888dc36d 100644
--- a/webkit/glue/media/buffered_resource_loader.h
+++ b/webkit/glue/media/buffered_resource_loader.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -28,6 +28,7 @@ const char kHttpScheme[] = "http";
const char kHttpsScheme[] = "https";
const char kDataScheme[] = "data";
+class BufferedDataSource;
acolwell GONE FROM CHROMIUM 2011/03/25 23:08:14 No longer necessary.
vrk (LEFT CHROMIUM) 2011/03/29 00:53:00 Done.
// This class works inside demuxer thread and render thread. It contains a
// WebURLLoader and does the actual resource loading. This object does
// buffering internally, it defers the resource loading if buffer is full
@@ -36,6 +37,12 @@ class BufferedResourceLoader :
public base::RefCountedThreadSafe<BufferedResourceLoader>,
public WebKit::WebURLLoaderClient {
public:
+ enum DeferStrategy {
acolwell GONE FROM CHROMIUM 2011/03/25 23:08:14 Brief comments about each of these.
vrk (LEFT CHROMIUM) 2011/03/29 00:53:00 Done. I also changed the naming style to match th
acolwell GONE FROM CHROMIUM 2011/03/29 05:52:03 I think the kXXX style is good here. I think Pipel
+ NeverDefer,
+ ReadThenDefer,
+ ThresholdDefer
+ };
+
typedef Callback0::Type NetworkEventCallback;
// |url| - URL for the resource to be loaded.
@@ -85,9 +92,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.
@@ -141,19 +145,30 @@ class BufferedResourceLoader :
bool HasSingleOrigin() const;
+ void SetDeferStrategy(DeferStrategy strategy);
+
+ // Updates deferring behavior based on current buffering scheme.
+ void UpdateDeferBehavior();
acolwell GONE FROM CHROMIUM 2011/03/25 23:08:14 I believe this can become private once the one cal
vrk (LEFT CHROMIUM) 2011/03/29 00:53:00 Done.
+
protected:
friend class base::RefCountedThreadSafe<BufferedResourceLoader>;
-
virtual ~BufferedResourceLoader();
private:
+
acolwell GONE FROM CHROMIUM 2011/03/25 23:08:14 Remove blank line
vrk (LEFT CHROMIUM) 2011/03/29 00:53:00 Done.
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();
- // Disable defer loading if we are under-buffered.
- void DisableDeferIfNeeded();
+ // Returns true if we should enable resource loading, based
+ // on current buffering scheme.
+ bool ShouldDisableDefer();
// Returns true if the current read request can be fulfilled by what is in
// the buffer.
@@ -196,8 +211,7 @@ class BufferedResourceLoader :
// True if resource loading was deferred.
bool deferred_;
- // True if resource loader is allowed to defer, false otherwise.
- bool defer_allowed_;
+ DeferStrategy defer_strategy_;
// True if resource loading has completed.
bool completed_;

Powered by Google App Engine
This is Rietveld 408576698