Index: components/dom_distiller/core/task_tracker.cc |
diff --git a/components/dom_distiller/core/task_tracker.cc b/components/dom_distiller/core/task_tracker.cc |
index 316c679c5fd4c31881ad4eb4c71396d55d24918c..d49f83d8d5d9bc4c6a484b3ce03d15793ac084ee 100644 |
--- a/components/dom_distiller/core/task_tracker.cc |
+++ b/components/dom_distiller/core/task_tracker.cc |
@@ -60,6 +60,7 @@ void TaskTracker::StartDistiller(DistillerFactory* factory, |
void TaskTracker::StartBlobFetcher() { |
if (content_store_) { |
+ blob_fetcher_running_ = true; |
content_store_->LoadContent(entry_, |
base::Bind(&TaskTracker::OnBlobFetched, |
weak_ptr_factory_.GetWeakPtr())); |
@@ -147,11 +148,17 @@ void TaskTracker::OnDistillerFinished( |
AddDistilledContentToStore(*distilled_article_); |
} |
+ // 'distiller_ != null' is used as a signal that distillation is in progress, |
+ // so it needs to be released so that we know distillation is done. |
+ base::MessageLoop::current()->DeleteSoon(FROM_HERE, distiller_.release()); |
+ |
ContentSourceFinished(); |
} |
void TaskTracker::CancelPendingSources() { |
- base::MessageLoop::current()->DeleteSoon(FROM_HERE, distiller_.release()); |
+ if (distiller_) { |
+ base::MessageLoop::current()->DeleteSoon(FROM_HERE, distiller_.release()); |
+ } |
} |
void TaskTracker::OnBlobFetched( |