mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1152694 - Make UUID and service name as input arguments for BluetoothSocket, r=tzimmermann (b7cf048bb) - Bug 1163388 - patch 1 - make nsIDOMFile an empty interface, r=ehsan (2723c513a) - Bug 1150160 - Support import of apps as memory blobs. r=marco (ffe4538f1) - Bug 1142132: Move helper classes of OPP manager into manager's namespace, r=shuang (ffca18a8e) - uuid of 1146349 (00c6050e5) - Bug 1151611 - Expose DXVA status in about:support. r=cpearce,felipe (6afe0b458) - Bug 1157150 - Add nsDOMWindowUtils.postRestyleSelfEvent method, for use in tests. r=smaug (081f852ae) - Bug 1161206 - Implement native mousewheel event synthesization on OS X. r=mstange (8741c0b62) - Bug 1163388 - patch 2 - get rid of nsIDOMFile, r=ehsan (ae0c054b6) - Bug 1159659 - Allow tab sharing on XP and OSX 10.6. r=pkerr (461ffca9d) - Bug 1155759 - Part 1 - Remove some manual refcounting from docshell. r=smaug (fdcdf3a9a) - Bug 1155759 - Part 2 - Use a static ref ptr for gObserver in nsSHistory. r=smaug (84706ab08) - Bug 679939 part 1. Extend the hasRunOnce/treatAsRunOnce setup to global and eval scripts. r=luke (1b0450709) - Bug 679939 part 2. Disallow execution of global/eval scripts that are flagged runOnce and have already run. r=luke (4a2f9d947) - pointer style (f95806360) - Bug 679939 part 3. Add a CompileOptions flag for indicating that the script should be compiled runOnce. r=luke (7e7cfe90a) - Bug 679939 part 4. Set the isRunOnce compile flag as needed. r=luke (ab84de2ad) - Bug 1167494 - Build error with --disable-sandbox on OS X. r=jld (a66816733) - Bug 1146472 part 1. Don't do object-kind guessing for object literal templates in scripts, since we in fact know exactly how many slots we want them to have and hence what the kind should be. r=terrence (aa1db7c23) - Bug 1146472 part 2. Use JSOP_NEWOBJECT as needed even if the script is not compile-and-go. r=luke (b6e222834) - Bug 977308 - Pre-tenure all objects attached to scripts; r=sfink (ac3175b8e) - Bug 1143704 part 12 - Move remaining functions to BytecodeEmitter. r=bhackett (7369f3f6d) - Bug 1143704 part 13 - Make emitJump, emitN etc return bool instead of ptrdiff_t. r=luke (42c8f936f) - Bug 1143704 part 14 - Change newSrcNote* to return bool instead of int. r=luke (182525f7d) - Bug 1147581 - Remove the now defunct TMPSLOT mechanism. (r=jorendorff) (08c377985) - Bug 1146836 part 1 - Cleanup BytecodeEmitter::emitSwitch. r=luke (2e15e54da) - Bug 1146836 part 2 - Use Vectors instead of malloc in emitSwitch and fix an old bug. r=luke (018838218) - Bug 679939 part 5. Stop using the compileAndGo script flag in the bytecode emitter. r=luke (047c3baca) - Bug 679939 part 6. Drop function-cloning uses of compileAndGo, since it no longer affects the bytecode. r=luke (25ec43122) - Bug 1145488. Stop using compileAndGo in the JITs. r=jandem (903ed3914) - Bug 679939 part 7. Drop the now-unused JSScript::compileAndGo. r=luke (979044eb4) - Bug 679939 part 8. Drop the now-unused compileAndGo from CompileOptions. r=luke (db211ef89) - Bug 1139217 - Make js::HashSet<T> work with move-only T types; r=luke (353f6e1e3) - Bug 1144366 followup - Stop declaring multiple pointers on a single line. r=jorendorff (b33884fb0) - support FreeBSD (1a9b19266)
This commit is contained in:
@@ -405,7 +405,9 @@ public:
|
||||
MOZ_ASSERT(blobImpl);
|
||||
blobImpl->SetPath(Substring(path, 0, uint32_t(length)));
|
||||
}
|
||||
*aResult = domFile.forget().downcast<nsIDOMFile>().take();
|
||||
|
||||
nsCOMPtr<nsIDOMBlob> blob = domFile.get();
|
||||
blob.forget(aResult);
|
||||
LookupAndCacheNext();
|
||||
return NS_OK;
|
||||
}
|
||||
@@ -488,23 +490,28 @@ NS_IMPL_ISUPPORTS(DirPickerRecursiveFileEnumerator, nsISimpleEnumerator)
|
||||
|
||||
/**
|
||||
* This may return nullptr if aDomFile's implementation of
|
||||
* nsIDOMFile::mozFullPathInternal does not successfully return a non-empty
|
||||
* File::mozFullPathInternal does not successfully return a non-empty
|
||||
* string that is a valid path. This can happen on Firefox OS, for example,
|
||||
* where the file picker can create Blobs.
|
||||
*/
|
||||
static already_AddRefed<nsIFile>
|
||||
DOMFileToLocalFile(nsIDOMFile* aDomFile)
|
||||
DOMFileToLocalFile(File* aDomFile)
|
||||
{
|
||||
nsString path;
|
||||
nsresult rv = aDomFile->GetMozFullPathInternal(path);
|
||||
if (NS_FAILED(rv) || path.IsEmpty()) {
|
||||
ErrorResult rv;
|
||||
aDomFile->GetMozFullPathInternal(path, rv);
|
||||
if (rv.Failed() || path.IsEmpty()) {
|
||||
rv.SuppressException();
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIFile> localFile;
|
||||
rv = NS_NewNativeLocalFile(NS_ConvertUTF16toUTF8(path), true,
|
||||
getter_AddRefs(localFile));
|
||||
NS_ENSURE_SUCCESS(rv, nullptr);
|
||||
if (NS_WARN_IF(rv.Failed())) {
|
||||
rv.SuppressException();
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return localFile.forget();
|
||||
}
|
||||
@@ -532,9 +539,9 @@ public:
|
||||
nsCOMPtr<nsISupports> tmp;
|
||||
while (NS_SUCCEEDED(iter->HasMoreElements(&hasMore)) && hasMore) {
|
||||
iter->GetNext(getter_AddRefs(tmp));
|
||||
nsCOMPtr<nsIDOMFile> domFile = do_QueryInterface(tmp);
|
||||
MOZ_ASSERT(domFile);
|
||||
mFileList.AppendElement(static_cast<File*>(domFile.get()));
|
||||
nsCOMPtr<nsIDOMBlob> domBlob = do_QueryInterface(tmp);
|
||||
MOZ_ASSERT(domBlob);
|
||||
mFileList.AppendElement(static_cast<File*>(domBlob.get()));
|
||||
mFileListLength = mFileList.Length();
|
||||
if (mCanceled) {
|
||||
MOZ_ASSERT(!mInput, "This is bad - how did this happen?");
|
||||
@@ -691,20 +698,23 @@ HTMLInputElement::nsFilePickerShownCallback::Done(int16_t aResult)
|
||||
|
||||
while (NS_SUCCEEDED(iter->HasMoreElements(&hasMore)) && hasMore) {
|
||||
iter->GetNext(getter_AddRefs(tmp));
|
||||
nsCOMPtr<nsIDOMFile> domFile = do_QueryInterface(tmp);
|
||||
NS_WARN_IF_FALSE(domFile,
|
||||
nsCOMPtr<nsIDOMBlob> domBlob = do_QueryInterface(tmp);
|
||||
NS_WARN_IF_FALSE(domBlob,
|
||||
"Null file object from FilePicker's file enumerator?");
|
||||
if (domFile) {
|
||||
newFiles.AppendElement(static_cast<File*>(domFile.get()));
|
||||
if (domBlob) {
|
||||
newFiles.AppendElement(static_cast<File*>(domBlob.get()));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
MOZ_ASSERT(mode == static_cast<int16_t>(nsIFilePicker::modeOpen));
|
||||
nsCOMPtr<nsIDOMFile> domFile;
|
||||
nsresult rv = mFilePicker->GetDomfile(getter_AddRefs(domFile));
|
||||
nsCOMPtr<nsISupports> tmp;
|
||||
nsresult rv = mFilePicker->GetDomfile(getter_AddRefs(tmp));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
if (domFile) {
|
||||
newFiles.AppendElement(static_cast<File*>(domFile.get()));
|
||||
|
||||
nsCOMPtr<nsIDOMBlob> blob = do_QueryInterface(tmp);
|
||||
if (blob) {
|
||||
nsRefPtr<File> file = static_cast<Blob*>(blob.get())->ToFile();
|
||||
newFiles.AppendElement(file);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -969,7 +979,11 @@ HTMLInputElement::InitFilePicker(FilePickerType aType)
|
||||
aType != FILE_PICKER_DIRECTORY) {
|
||||
nsString path;
|
||||
|
||||
oldFiles[0]->GetMozFullPathInternal(path);
|
||||
ErrorResult error;
|
||||
oldFiles[0]->GetMozFullPathInternal(path, error);
|
||||
if (NS_WARN_IF(error.Failed())) {
|
||||
return error.StealNSResult();
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIFile> localFile;
|
||||
rv = NS_NewLocalFile(path, false, getter_AddRefs(localFile));
|
||||
@@ -1720,7 +1734,12 @@ HTMLInputElement::GetValueInternal(nsAString& aValue) const
|
||||
// XXX We'd love to assert that this can't happen, but some mochitests
|
||||
// use SpecialPowers to circumvent our more sane security model.
|
||||
if (!mFiles.IsEmpty()) {
|
||||
return mFiles[0]->GetMozFullPath(aValue);
|
||||
ErrorResult rv;
|
||||
mFiles[0]->GetMozFullPath(aValue, rv);
|
||||
if (NS_WARN_IF(rv.Failed())) {
|
||||
return rv.StealNSResult();
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
else {
|
||||
aValue.Truncate();
|
||||
@@ -1728,8 +1747,10 @@ HTMLInputElement::GetValueInternal(nsAString& aValue) const
|
||||
#endif
|
||||
} else {
|
||||
// Just return the leaf name
|
||||
if (mFiles.IsEmpty() || NS_FAILED(mFiles[0]->GetName(aValue))) {
|
||||
if (mFiles.IsEmpty()) {
|
||||
aValue.Truncate();
|
||||
} else {
|
||||
mFiles[0]->GetName(aValue);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2319,11 +2340,16 @@ HTMLInputElement::FlushFrames()
|
||||
}
|
||||
|
||||
void
|
||||
HTMLInputElement::MozGetFileNameArray(nsTArray< nsString >& aArray)
|
||||
HTMLInputElement::MozGetFileNameArray(nsTArray<nsString>& aArray,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
for (uint32_t i = 0; i < mFiles.Length(); i++) {
|
||||
nsString str;
|
||||
mFiles[i]->GetMozFullPathInternal(str);
|
||||
mFiles[i]->GetMozFullPathInternal(str, aRv);
|
||||
if (NS_WARN_IF(aRv.Failed())) {
|
||||
return;
|
||||
}
|
||||
|
||||
aArray.AppendElement(str);
|
||||
}
|
||||
}
|
||||
@@ -2338,8 +2364,12 @@ HTMLInputElement::MozGetFileNameArray(uint32_t* aLength, char16_t*** aFileNames)
|
||||
return NS_ERROR_DOM_SECURITY_ERR;
|
||||
}
|
||||
|
||||
ErrorResult rv;
|
||||
nsTArray<nsString> array;
|
||||
MozGetFileNameArray(array);
|
||||
MozGetFileNameArray(array, rv);
|
||||
if (NS_WARN_IF(rv.Failed())) {
|
||||
return rv.StealNSResult();
|
||||
}
|
||||
|
||||
*aLength = array.Length();
|
||||
char16_t** ret =
|
||||
@@ -2699,7 +2729,11 @@ HTMLInputElement::AfterSetFiles(bool aSetValueChanged)
|
||||
if (mFiles.IsEmpty()) {
|
||||
mFirstFilePath.Truncate();
|
||||
} else {
|
||||
mFiles[0]->GetMozFullPath(mFirstFilePath);
|
||||
ErrorResult rv;
|
||||
mFiles[0]->GetMozFullPath(mFirstFilePath, rv);
|
||||
if (NS_WARN_IF(rv.Failed())) {
|
||||
rv.SuppressException();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user