From 8c89fc3bd2a663c1da6abade04d82f14fa9f559e Mon Sep 17 00:00:00 2001 From: Jonathan Watt Date: Wed, 2 Oct 2013 00:26:40 +0100 Subject: [PATCH] Bug 912489 - Including the name of the directory picked by HTMLInputElement.openDirectoryPicker() in File.path. r=sicking --- content/html/content/src/HTMLInputElement.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/content/html/content/src/HTMLInputElement.cpp b/content/html/content/src/HTMLInputElement.cpp index 95447dc765b..009f3cba461 100644 --- a/content/html/content/src/HTMLInputElement.cpp +++ b/content/html/content/src/HTMLInputElement.cpp @@ -357,6 +357,12 @@ public: } #endif + if (NS_FAILED(aTopDir->GetParent(getter_AddRefs(mTopDirsParent))) { + // This just means that the name of the picked directory won't be + // included in the File.path string. + mTopDirsParent = aTopDir; + } + nsCOMPtr entries; if (NS_SUCCEEDED(mTopDir->GetDirectoryEntries(getter_AddRefs(entries))) && entries) { @@ -377,7 +383,8 @@ public: } nsRefPtr domFile = new nsDOMFileFile(mNextFile); nsCString relDescriptor; - nsresult rv = mNextFile->GetRelativeDescriptor(mTopDir, relDescriptor); + nsresult rv = + mNextFile->GetRelativeDescriptor(mTopDirsParent, relDescriptor); NS_ENSURE_SUCCESS(rv, rv); NS_ConvertUTF8toUTF16 path(relDescriptor); nsAutoString leafName; @@ -463,6 +470,7 @@ private: private: nsCOMPtr mTopDir; + nsCOMPtr mTopDirsParent; // May be mTopDir if no parent nsCOMPtr mNextFile; nsTArray > mDirEnumeratorStack; };