Backout changeset e43f568b3e9a (bug 1423990) because some OSX-only code still doesn't build. r=me
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user