Backout changeset e43f568b3e9a (bug 1423990) because some OSX-only code still doesn't build. r=me

This commit is contained in:
Emilio Cobos Álvarez
2017-12-25 12:55:45 +01:00
parent b3956b6171
commit ecd202d763
175 changed files with 1398 additions and 1709 deletions

View File

@@ -257,10 +257,8 @@ nsFileControlFrame::DnDListener::HandleEvent(nsIDOMEvent* aEvent)
}
RefPtr<HTMLInputElement> inputElement =
HTMLInputElement::FromContent(mFrame->GetContent());
bool supportsMultiple =
inputElement->HasAttr(kNameSpaceID_None, nsGkAtoms::multiple);
nsCOMPtr<nsIContent> content = mFrame->GetContent();
bool supportsMultiple = content && content->HasAttr(kNameSpaceID_None, nsGkAtoms::multiple);
if (!CanDropTheseFiles(dataTransfer, supportsMultiple)) {
dataTransfer->SetDropEffect(NS_LITERAL_STRING("none"));
aEvent->StopPropagation();
@@ -279,6 +277,11 @@ nsFileControlFrame::DnDListener::HandleEvent(nsIDOMEvent* aEvent)
aEvent->StopPropagation();
aEvent->PreventDefault();
NS_ASSERTION(content, "The frame has no content???");
HTMLInputElement* inputElement = HTMLInputElement::FromContent(content);
NS_ASSERTION(inputElement, "No input element for this file upload control frame!");
nsCOMPtr<nsIDOMFileList> fileList;
dataTransfer->GetFiles(getter_AddRefs(fileList));
@@ -289,7 +292,7 @@ nsFileControlFrame::DnDListener::HandleEvent(nsIDOMEvent* aEvent)
nsTArray<OwningFileOrDirectory> array;
if (webkitDir) {
AppendBlobImplAsDirectory(array, webkitDir, inputElement);
AppendBlobImplAsDirectory(array, webkitDir, content);
inputElement->MozSetDndFilesAndDirectories(array);
} else {
bool blinkFileSystemEnabled =
@@ -303,7 +306,7 @@ nsFileControlFrame::DnDListener::HandleEvent(nsIDOMEvent* aEvent)
File* file = files->Item(i);
if (file) {
if (file->Impl() && file->Impl()->IsDirectory()) {
AppendBlobImplAsDirectory(array, file->Impl(), inputElement);
AppendBlobImplAsDirectory(array, file->Impl(), content);
} else {
OwningFileOrDirectory* element = array.AppendElement();
element->SetAsFile() = file;
@@ -330,12 +333,10 @@ nsFileControlFrame::DnDListener::HandleEvent(nsIDOMEvent* aEvent)
inputElement->SetFiles(fileList, true);
}
nsContentUtils::DispatchTrustedEvent(inputElement->OwnerDoc(),
static_cast<nsINode*>(inputElement),
nsContentUtils::DispatchTrustedEvent(content->OwnerDoc(), content,
NS_LITERAL_STRING("input"), true,
false);
nsContentUtils::DispatchTrustedEvent(inputElement->OwnerDoc(),
static_cast<nsINode*>(inputElement),
nsContentUtils::DispatchTrustedEvent(content->OwnerDoc(), content,
NS_LITERAL_STRING("change"), true,
false);
}
@@ -453,7 +454,7 @@ nsFileControlFrame::AttributeChanged(int32_t aNameSpaceID,
mBrowseFilesOrDirs->UnsetAttr(aNameSpaceID, aAttribute, true);
} else {
nsAutoString value;
mContent->AsElement()->GetAttr(aNameSpaceID, aAttribute, value);
mContent->GetAttr(aNameSpaceID, aAttribute, value);
mBrowseFilesOrDirs->SetAttr(aNameSpaceID, aAttribute, value, true);
}
}