DownloadItem::DownloadItem(v8::Isolate* isolate,
content::DownloadItem* download_item)
- : download_item_(download_item) {
+ : download_item_(download_item), done_emitted_(false) {
download_item_->AddObserver(this);
Init(isolate);
AttachAsUserData(download_item);
}
void DownloadItem::OnDownloadUpdated(content::DownloadItem* item) {
- if (download_item_->IsDone()) {
+ if (!download_item_->IsDone()) {
+ Emit("updated", item->GetState());
+
+ } else if (!done_emitted_) {
Emit("done", item->GetState());
+ done_emitted_ = true;
// Destroy the item once item is downloaded.
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE, GetDestroyClosure());
- } else {
- Emit("updated", item->GetState());
}
}