Index: chrome/browser/net/sdch_dictionary_fetcher.cc |
diff --git a/chrome/browser/net/sdch_dictionary_fetcher.cc b/chrome/browser/net/sdch_dictionary_fetcher.cc |
index 1130fe336242b5b5c666a2ae433771e1b98d3bd4..396515ef9da87409d6fe1978d261918669978e93 100644 |
--- a/chrome/browser/net/sdch_dictionary_fetcher.cc |
+++ b/chrome/browser/net/sdch_dictionary_fetcher.cc |
@@ -49,6 +49,16 @@ void SdchDictionaryFetcher::Schedule(const GURL& dictionary_url) { |
ScheduleDelayedRun(); |
} |
+void SdchDictionaryFetcher::Cancel() { |
+ DCHECK(CalledOnValidThread()); |
+ |
+ std::queue<GURL> trash_queue; |
+ fetch_queue_.swap(trash_queue); |
+ attempted_load_.clear(); |
+ weak_factory_.InvalidateWeakPtrs(); |
+ current_fetch_.reset(NULL); |
+} |
+ |
void SdchDictionaryFetcher::ScheduleDelayedRun() { |
if (fetch_queue_.empty() || current_fetch_.get() || task_is_pending_) |
return; |