| Index: content/browser/indexed_db/indexed_db_backing_store.cc | 
| diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc | 
| index 0db7b6141b3d341fc3a0ad0766afc9f011721146..d50584c4eab1bc048c9b774d53369925f67053f1 100644 | 
| --- a/content/browser/indexed_db/indexed_db_backing_store.cc | 
| +++ b/content/browser/indexed_db/indexed_db_backing_store.cc | 
| @@ -2242,8 +2242,7 @@ class IndexedDBBackingStore::Transaction::ChainedBlobWriterImpl | 
| : waiting_for_callback_(false), | 
| database_id_(database_id), | 
| backing_store_(backing_store), | 
| -        callback_(callback), | 
| -        aborted_(false) { | 
| +        callback_(callback) { | 
| blobs_.swap(*blobs); | 
| iter_ = blobs_.begin(); | 
| backing_store->task_runner()->PostTask( | 
| @@ -2261,8 +2260,8 @@ class IndexedDBBackingStore::Transaction::ChainedBlobWriterImpl | 
| if (delegate_.get())  // Only present for Blob, not File. | 
| content::BrowserThread::DeleteSoon( | 
| content::BrowserThread::IO, FROM_HERE, delegate_.release()); | 
| -    if (aborted_) { | 
| -      self_ref_ = NULL; | 
| +    if (aborted_self_ref_.get()) { | 
| +      aborted_self_ref_ = NULL; | 
| return; | 
| } | 
| if (iter_->size() != -1 && iter_->size() != bytes_written) | 
| @@ -2278,38 +2277,36 @@ class IndexedDBBackingStore::Transaction::ChainedBlobWriterImpl | 
| void Abort() override { | 
| if (!waiting_for_callback_) | 
| return; | 
| -    self_ref_ = this; | 
| -    aborted_ = true; | 
| +    aborted_self_ref_ = this; | 
| } | 
|  | 
| private: | 
| -  ~ChainedBlobWriterImpl() override {} | 
| +  ~ChainedBlobWriterImpl() override { DCHECK(!waiting_for_callback_); } | 
|  | 
| void WriteNextFile() { | 
| DCHECK(!waiting_for_callback_); | 
| -    DCHECK(!aborted_); | 
| +    DCHECK(!aborted_self_ref_.get()); | 
| if (iter_ == blobs_.end()) { | 
| -      DCHECK(!self_ref_.get()); | 
| callback_->Run(true); | 
| return; | 
| } else { | 
| +      waiting_for_callback_ = true; | 
| if (!backing_store_->WriteBlobFile(database_id_, *iter_, this)) { | 
| +        waiting_for_callback_ = false; | 
| callback_->Run(false); | 
| return; | 
| } | 
| -      waiting_for_callback_ = true; | 
| } | 
| } | 
|  | 
| bool waiting_for_callback_; | 
| -  scoped_refptr<ChainedBlobWriterImpl> self_ref_; | 
| +  scoped_refptr<ChainedBlobWriterImpl> aborted_self_ref_; | 
| WriteDescriptorVec blobs_; | 
| WriteDescriptorVec::const_iterator iter_; | 
| int64 database_id_; | 
| IndexedDBBackingStore* backing_store_; | 
| scoped_refptr<IndexedDBBackingStore::BlobWriteCallback> callback_; | 
| scoped_ptr<FileWriterDelegate> delegate_; | 
| -  bool aborted_; | 
|  | 
| DISALLOW_COPY_AND_ASSIGN(ChainedBlobWriterImpl); | 
| }; | 
|  |