| Index: media/filters/chunk_demuxer.cc
 | 
| diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc
 | 
| index 68e575d35711092dad8fdf3bf5d4adf6db0d324e..452d5353f26ef4abecf6277d92c436e54ab3d681 100644
 | 
| --- a/media/filters/chunk_demuxer.cc
 | 
| +++ b/media/filters/chunk_demuxer.cc
 | 
| @@ -335,8 +335,7 @@ ChunkDemuxer::ChunkDemuxer(ChunkDemuxerClient* client)
 | 
|      : state_(WAITING_FOR_INIT),
 | 
|        client_(client),
 | 
|        buffered_bytes_(0),
 | 
| -      seek_waits_for_data_(true),
 | 
| -      deferred_error_(PIPELINE_OK) {
 | 
| +      seek_waits_for_data_(true) {
 | 
|    DCHECK(client);
 | 
|  }
 | 
|  
 | 
| @@ -344,7 +343,7 @@ ChunkDemuxer::~ChunkDemuxer() {
 | 
|    DCHECK_NE(state_, INITIALIZED);
 | 
|  }
 | 
|  
 | 
| -void ChunkDemuxer::Init(const PipelineStatusCB& cb) {
 | 
| +void ChunkDemuxer::Initialize(const PipelineStatusCB& cb) {
 | 
|    DVLOG(1) << "Init()";
 | 
|    {
 | 
|      base::AutoLock auto_lock(lock_);
 | 
| @@ -362,17 +361,6 @@ void ChunkDemuxer::Init(const PipelineStatusCB& cb) {
 | 
|    client_->DemuxerOpened(this);
 | 
|  }
 | 
|  
 | 
| -void ChunkDemuxer::set_host(DemuxerHost* host) {
 | 
| -  DCHECK(state_ == INITIALIZED || state_ == PARSE_ERROR);
 | 
| -  Demuxer::set_host(host);
 | 
| -  host->SetDuration(duration_);
 | 
| -  host->SetCurrentReadPosition(0);
 | 
| -  if (deferred_error_ != PIPELINE_OK) {
 | 
| -    host->OnDemuxerError(deferred_error_);
 | 
| -    deferred_error_ = PIPELINE_OK;
 | 
| -  }
 | 
| -}
 | 
| -
 | 
|  void ChunkDemuxer::Stop(const base::Closure& callback) {
 | 
|    DVLOG(1) << "Stop()";
 | 
|    Shutdown();
 | 
| @@ -411,8 +399,6 @@ void ChunkDemuxer::OnAudioRendererDisabled() {
 | 
|    audio_ = NULL;
 | 
|  }
 | 
|  
 | 
| -void ChunkDemuxer::SetPreload(Preload preload) {}
 | 
| -
 | 
|  int ChunkDemuxer::GetBitrate() {
 | 
|    // TODO(acolwell): Implement bitrate reporting.
 | 
|    return 0;
 | 
| @@ -551,16 +537,14 @@ bool ChunkDemuxer::AppendData(const uint8* data, size_t length) {
 | 
|    }
 | 
|  
 | 
|    // Notify the host of 'network activity' because we got data.
 | 
| -  if (host()) {
 | 
| -    host()->SetBufferedBytes(buffered_bytes);
 | 
| -
 | 
| -    if (buffered_ts.InSeconds() >= 0) {
 | 
| -      host()->SetBufferedTime(buffered_ts);
 | 
| -    }
 | 
| +  host()->SetBufferedBytes(buffered_bytes);
 | 
|  
 | 
| -    host()->SetNetworkActivity(true);
 | 
| +  if (buffered_ts.InSeconds() >= 0) {
 | 
| +    host()->SetBufferedTime(buffered_ts);
 | 
|    }
 | 
|  
 | 
| +  host()->SetNetworkActivity(true);
 | 
| +
 | 
|    if (!cb.is_null())
 | 
|      cb.Run(PIPELINE_OK);
 | 
|  
 | 
| @@ -664,14 +648,8 @@ void ChunkDemuxer::ReportError_Locked(PipelineStatus error) {
 | 
|      return;
 | 
|    }
 | 
|  
 | 
| -  DemuxerHost* demuxer_host = host();
 | 
| -  if (demuxer_host) {
 | 
| -    base::AutoUnlock auto_unlock(lock_);
 | 
| -    demuxer_host->OnDemuxerError(error);
 | 
| -    return;
 | 
| -  }
 | 
| -
 | 
| -  deferred_error_ = error;
 | 
| +  base::AutoUnlock auto_unlock(lock_);
 | 
| +  host()->OnDemuxerError(error);
 | 
|  }
 | 
|  
 | 
|  void ChunkDemuxer::OnStreamParserInitDone(bool success,
 | 
| @@ -684,6 +662,8 @@ void ChunkDemuxer::OnStreamParserInitDone(bool success,
 | 
|    }
 | 
|  
 | 
|    duration_ = duration;
 | 
| +  host()->SetDuration(duration_);
 | 
| +  host()->SetCurrentReadPosition(0);
 | 
|  
 | 
|    ChangeState_Locked(INITIALIZED);
 | 
|    PipelineStatusCB cb;
 | 
| 
 |