Bug 1317367 part 1. Get rid of the XPCOM MozGet/SetFileNameArray methods on HTMLInputElement. r=smaug

This commit is contained in:
Boris Zbarsky 2016-11-15 12:46:31 -05:00
Родитель bc74bb03f3
Коммит 452b292356
2 изменённых файлов: 1 добавлений и 63 удалений

Просмотреть файл

@ -2573,39 +2573,6 @@ HTMLInputElement::MozGetFileNameArray(nsTArray<nsString>& aArray,
}
}
NS_IMETHODIMP
HTMLInputElement::MozGetFileNameArray(uint32_t* aLength, char16_t*** aFileNames)
{
if (!nsContentUtils::IsCallerChrome()) {
// Since this function returns full paths it's important that normal pages
// can't call it.
return NS_ERROR_DOM_SECURITY_ERR;
}
ErrorResult rv;
nsTArray<nsString> array;
MozGetFileNameArray(array, rv);
if (NS_WARN_IF(rv.Failed())) {
return rv.StealNSResult();
}
*aLength = array.Length();
char16_t** ret =
static_cast<char16_t**>(moz_xmalloc(*aLength * sizeof(char16_t*)));
if (!ret) {
return NS_ERROR_OUT_OF_MEMORY;
}
for (uint32_t i = 0; i < *aLength; ++i) {
ret[i] = NS_strdup(array[i].get());
}
*aFileNames = ret;
return NS_OK;
}
void
HTMLInputElement::MozSetFileArray(const Sequence<OwningNonNull<File>>& aFiles)
{
@ -2672,30 +2639,6 @@ HTMLInputElement::MozSetFileNameArray(const Sequence<nsString>& aFileNames,
SetFilesOrDirectories(files, true);
}
NS_IMETHODIMP
HTMLInputElement::MozSetFileNameArray(const char16_t** aFileNames,
uint32_t aLength)
{
if (!nsContentUtils::IsCallerChrome()) {
// setting the value of a "FILE" input widget requires chrome privilege
return NS_ERROR_DOM_SECURITY_ERR;
}
Sequence<nsString> list;
nsString* names = list.AppendElements(aLength, fallible);
if (!names) {
return NS_ERROR_OUT_OF_MEMORY;
}
for (uint32_t i = 0; i < aLength; ++i) {
const char16_t* filename = aFileNames[i];
names[i].Rebind(filename, nsCharTraits<char16_t>::length(filename));
}
ErrorResult rv;
MozSetFileNameArray(list, rv);
return rv.StealNSResult();
}
void
HTMLInputElement::MozSetDirectory(const nsAString& aDirectoryPath,
ErrorResult& aRv)

Просмотреть файл

@ -96,12 +96,7 @@ interface nsIDOMHTMLInputElement : nsISupports
readonly attribute nsIControllers controllers;
readonly attribute long textLength;
void mozGetFileNameArray([optional] out unsigned long aLength,
[array,size_is(aLength), retval] out wstring aFileNames);
void mozSetFileNameArray([array,size_is(aLength)] in wstring aFileNames,
in unsigned long aLength);
/**
/**
* This non-standard method prevents to check types manually to know if the
* element is a text field.
*/