Index: webkit/glue/media/buffered_data_source.cc |
diff --git a/webkit/glue/media/buffered_data_source.cc b/webkit/glue/media/buffered_data_source.cc |
index a82ce87f070c4ff1fe1e6676bbd8c2ed88c3cf82..6183e67b01b54f51c0125c8ece06370bdf41a80d 100644 |
--- a/webkit/glue/media/buffered_data_source.cc |
+++ b/webkit/glue/media/buffered_data_source.cc |
@@ -738,8 +738,8 @@ void BufferedDataSource::Abort() { |
// If we are told to abort, immediately return from any pending read |
// with an error. |
if (read_callback_.get()) { |
- AutoLock auto_lock(lock_); |
- DoneRead_Locked(net::ERR_FAILED); |
+ AutoLock auto_lock(lock_); |
+ DoneRead_Locked(net::ERR_FAILED); |
} |
CleanupTask(); |
@@ -751,7 +751,8 @@ void BufferedDataSource::Abort() { |
void BufferedDataSource::InitializeTask() { |
DCHECK(MessageLoop::current() == render_loop_); |
DCHECK(!loader_.get()); |
- DCHECK(!stopped_on_render_loop_); |
+ if (stopped_on_render_loop_) |
+ return; |
// Kick starts the watch dog task that will handle connection timeout. |
// We run the watch dog 2 times faster the actual timeout so as to catch |
@@ -788,11 +789,6 @@ void BufferedDataSource::ReadTask( |
int64 position, int read_size, uint8* buffer, |
media::DataSource::ReadCallback* read_callback) { |
DCHECK(MessageLoop::current() == render_loop_); |
- |
- // If CleanupTask() was executed we should return immediately. We check this |
- // variable to prevent doing any actual work after clean up was done. We do |
- // not check |stop_signal_received_| because anything use of it has to be |
- // within |lock_| which is not desirable. |
if (stopped_on_render_loop_) |
return; |
@@ -813,8 +809,6 @@ void BufferedDataSource::ReadTask( |
void BufferedDataSource::CleanupTask() { |
DCHECK(MessageLoop::current() == render_loop_); |
- |
- // If we have already stopped, do nothing. |
if (stopped_on_render_loop_) |
return; |
@@ -839,13 +833,6 @@ void BufferedDataSource::CleanupTask() { |
void BufferedDataSource::RestartLoadingTask() { |
DCHECK(MessageLoop::current() == render_loop_); |
- |
- // This variable is set in CleanupTask(). We check this and do an early |
- // return. The sequence of actions which enable this conditions is: |
- // 1. Stop() is called from the pipeline. |
- // 2. ReadCallback() is called from the resource loader. |
- // 3. CleanupTask() is executed. |
- // 4. RestartLoadingTask() is executed. |
if (stopped_on_render_loop_) |
return; |
@@ -863,7 +850,8 @@ void BufferedDataSource::RestartLoadingTask() { |
void BufferedDataSource::WatchDogTask() { |
DCHECK(MessageLoop::current() == render_loop_); |
- DCHECK(!stopped_on_render_loop_); |
+ if (stopped_on_render_loop_) |
+ return; |
// We only care if there is an active read request. |
if (!read_callback_.get()) |