summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-14 01:12:59 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-14 01:12:59 +0000
commitd112b62b61342ea5c42c48dc0fcde642ddb9662d (patch)
tree92276ee54339bc82301fa2bd87016a02495fa527 /webkit
parent13ce8227e4daff67846117d7668c72339e0fd7bc (diff)
downloadchromium_src-d112b62b61342ea5c42c48dc0fcde642ddb9662d.zip
chromium_src-d112b62b61342ea5c42c48dc0fcde642ddb9662d.tar.gz
chromium_src-d112b62b61342ea5c42c48dc0fcde642ddb9662d.tar.bz2
Collapse Should{Enable,Disable}Defer() into ShouldDefer() + simplify some other code.
BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10694138 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146700 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/media/buffered_resource_loader.cc52
-rw-r--r--webkit/media/buffered_resource_loader.h16
2 files changed, 16 insertions, 52 deletions
diff --git a/webkit/media/buffered_resource_loader.cc b/webkit/media/buffered_resource_loader.cc
index c859f5e..2b86d26 100644
--- a/webkit/media/buffered_resource_loader.cc
+++ b/webkit/media/buffered_resource_loader.cc
@@ -299,11 +299,9 @@ void BufferedResourceLoader::Read(
}
// Make sure we stop deferring now that there's additional capacity.
- if (active_loader_->deferred())
- SetDeferred(false);
-
- DCHECK(!ShouldEnableDefer())
+ DCHECK(!ShouldDefer())
<< "Capacity was not adjusted properly to prevent deferring.";
+ UpdateDeferBehavior();
return;
}
@@ -606,61 +604,31 @@ void BufferedResourceLoader::UpdateDeferBehavior() {
if (!active_loader_.get())
return;
- // If necessary, toggle defer state and continue/pause downloading data
- // accordingly.
- if (ShouldEnableDefer() || ShouldDisableDefer())
- SetDeferred(!active_loader_->deferred());
+ SetDeferred(ShouldDefer());
}
void BufferedResourceLoader::SetDeferred(bool deferred) {
+ if (active_loader_->deferred() == deferred)
+ return;
+
active_loader_->SetDeferred(deferred);
loading_cb_.Run(deferred ? kLoadingDeferred : kLoading);
}
-bool BufferedResourceLoader::ShouldEnableDefer() const {
- // If we're already deferring, then enabling makes no sense.
- if (active_loader_->deferred())
- return false;
-
+bool BufferedResourceLoader::ShouldDefer() const {
switch(defer_strategy_) {
- // Never defer at all, so never enable defer.
case kNeverDefer:
return false;
- // Defer if nothing is being requested.
case kReadThenDefer:
+ DCHECK(read_cb_.is_null() || last_offset_ > buffer_.forward_bytes())
+ << "We shouldn't stop deferring if we can fulfill the read";
return read_cb_.is_null();
- // Defer if we've reached max capacity.
case kCapacityDefer:
return buffer_.forward_bytes() >= buffer_.forward_capacity();
}
- // Otherwise don't enable defer.
- return false;
-}
-
-bool BufferedResourceLoader::ShouldDisableDefer() const {
- // If we're not deferring, then disabling makes no sense.
- if (!active_loader_->deferred())
- return false;
-
- switch(defer_strategy_) {
- // Always disable deferring.
- case kNeverDefer:
- return true;
-
- // We have an outstanding read request, and we have not buffered enough
- // yet to fulfill the request; disable defer to get more data.
- case kReadThenDefer:
- return !read_cb_.is_null() && last_offset_ > buffer_.forward_bytes();
-
- // Disable deferring whenever our forward-buffered amount falls beneath our
- // capacity.
- case kCapacityDefer:
- return buffer_.forward_bytes() < buffer_.forward_capacity();
- }
-
- // Otherwise keep deferring.
+ NOTREACHED();
return false;
}
diff --git a/webkit/media/buffered_resource_loader.h b/webkit/media/buffered_resource_loader.h
index b88b9e0..f2a3093 100644
--- a/webkit/media/buffered_resource_loader.h
+++ b/webkit/media/buffered_resource_loader.h
@@ -213,21 +213,17 @@ class BufferedResourceLoader : public WebKit::WebURLLoaderClient {
// Updates the |buffer_|'s forward and backward capacities.
void UpdateBufferWindow();
- // Returns true if we should defer resource loading based on the current
- // buffering scheme.
- bool ShouldEnableDefer() const;
-
- // Returns true if we should enable resource loading based on the current
- // buffering scheme.
- bool ShouldDisableDefer() const;
-
// Updates deferring behavior based on current buffering scheme.
void UpdateDeferBehavior();
- // Set defer state to |deferred| and cease/continue downloading data
- // accordingly.
+ // Sets |active_loader_|'s defer state and fires |loading_cb_| if the state
+ // changed.
void SetDeferred(bool deferred);
+ // Returns true if we should defer resource loading based on the current
+ // buffering scheme.
+ bool ShouldDefer() const;
+
// Returns true if the current read request can be fulfilled by what is in
// the buffer.
bool CanFulfillRead() const;