Bug 1261694 - HTMLInputElement::GetFilesAndDirectories should return a new promise object, r=smaug

This commit is contained in:
Andrea Marchesini
2016-05-13 13:12:34 +02:00
parent 9e34b9fae4
commit 3775b9159e
3 changed files with 22 additions and 16 deletions

View File

@@ -1053,7 +1053,6 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(HTMLInputElement,
}
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mFilesOrDirectories)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mFileList)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mFilesAndDirectoriesPromise)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(HTMLInputElement,
@@ -1062,7 +1061,6 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(HTMLInputElement,
NS_IMPL_CYCLE_COLLECTION_UNLINK(mControllers)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mFilesOrDirectories)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mFileList)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mFilesAndDirectoriesPromise)
if (tmp->IsSingleLineTextControl(false)) {
tmp->mInputData.mState->Unlink();
}
@@ -2701,9 +2699,6 @@ HTMLInputElement::UpdateFileList()
}
}
}
// Make sure we (lazily) create a new Promise for GetFilesAndDirectories:
mFilesAndDirectoriesPromise = nullptr;
}
nsresult
@@ -5037,10 +5032,6 @@ HTMLInputElement::GetFilesAndDirectories(ErrorResult& aRv)
return nullptr;
}
if (mFilesAndDirectoriesPromise) {
return RefPtr<Promise>(mFilesAndDirectoriesPromise).forget();
}
nsCOMPtr<nsIGlobalObject> global = OwnerDoc()->GetScopeObject();
MOZ_ASSERT(global);
if (!global) {
@@ -5081,12 +5072,6 @@ HTMLInputElement::GetFilesAndDirectories(ErrorResult& aRv)
}
p->MaybeResolve(filesAndDirsSeq);
// Cache the Promise so that repeat getFilesAndDirectories() calls return
// the same Promise and array of File and Directory objects until the user
// picks different files/directories:
mFilesAndDirectoriesPromise = p;
return p.forget();
}