Bug 1730156 - Do not create DispatchChangeEventCallback if associated HTMLInputElement has no scriptGlobalObject. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D126095
This commit is contained in:
@@ -219,13 +219,17 @@ class DispatchChangeEventCallback final : public GetFilesCallback {
|
||||
virtual void Callback(
|
||||
nsresult aStatus,
|
||||
const FallibleTArray<RefPtr<BlobImpl>>& aBlobImpls) override {
|
||||
if (!mInputElement->GetOwnerGlobal()) {
|
||||
return;
|
||||
}
|
||||
|
||||
nsTArray<OwningFileOrDirectory> array;
|
||||
for (uint32_t i = 0; i < aBlobImpls.Length(); ++i) {
|
||||
OwningFileOrDirectory* element = array.AppendElement();
|
||||
RefPtr<File> file =
|
||||
File::Create(mInputElement->GetOwnerGlobal(), aBlobImpls[i]);
|
||||
if (NS_WARN_IF(!file)) {
|
||||
break;
|
||||
return;
|
||||
}
|
||||
|
||||
element->SetAsFile() = file;
|
||||
@@ -545,6 +549,11 @@ HTMLInputElement::nsFilePickerShownCallback::Done(int16_t aResult) {
|
||||
// So, we can safely send one by ourself.
|
||||
mInput->SetFilesOrDirectories(newFilesOrDirectories, true);
|
||||
|
||||
// mInput(HTMLInputElement) has no scriptGlobalObject, don't create
|
||||
// DispatchChangeEventCallback
|
||||
if (!mInput->GetOwnerGlobal()) {
|
||||
return NS_OK;
|
||||
}
|
||||
RefPtr<DispatchChangeEventCallback> dispatchChangeEventCallback =
|
||||
new DispatchChangeEventCallback(mInput);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user