Bug 949666 - Save last used upload dir with e10s. r=billm

This commit is contained in:
Tom Schuster 2014-11-09 20:26:14 +01:00
Родитель f2786d3f9f
Коммит 2ee03971b2
5 изменённых файлов: 25 добавлений и 7 удалений

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

@ -1032,11 +1032,12 @@ UploadLastDir::FetchDirectoryAndDisplayPicker(nsIDocument* aDoc,
nsCOMPtr<nsIContentPrefCallback2> prefCallback = nsCOMPtr<nsIContentPrefCallback2> prefCallback =
new UploadLastDir::ContentPrefCallback(aFilePicker, aFpCallback); new UploadLastDir::ContentPrefCallback(aFilePicker, aFpCallback);
#ifdef MOZ_B2G
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
// FIXME (bug 949666): Run this code in the parent process.
prefCallback->HandleCompletion(nsIContentPrefCallback2::COMPLETE_ERROR); prefCallback->HandleCompletion(nsIContentPrefCallback2::COMPLETE_ERROR);
return NS_OK; return NS_OK;
} }
#endif
// Attempt to get the CPS, if it's not present we'll fallback to use the Desktop folder // Attempt to get the CPS, if it's not present we'll fallback to use the Desktop folder
nsCOMPtr<nsIContentPrefService2> contentPrefService = nsCOMPtr<nsIContentPrefService2> contentPrefService =
@ -1062,10 +1063,11 @@ UploadLastDir::StoreLastUsedDirectory(nsIDocument* aDoc, nsIFile* aDir)
return NS_OK; return NS_OK;
} }
#ifdef MOZ_B2G
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
// FIXME (bug 949666): Run this code in the parent process.
return NS_OK; return NS_OK;
} }
#endif
nsCOMPtr<nsIURI> docURI = aDoc->GetDocumentURI(); nsCOMPtr<nsIURI> docURI = aDoc->GetDocumentURI();
NS_PRECONDITION(docURI, "docURI is null"); NS_PRECONDITION(docURI, "docURI is null");

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

@ -202,7 +202,8 @@ FilePickerParent::RecvOpen(const int16_t& aSelectedType,
const nsString& aDefaultFile, const nsString& aDefaultFile,
const nsString& aDefaultExtension, const nsString& aDefaultExtension,
const InfallibleTArray<nsString>& aFilters, const InfallibleTArray<nsString>& aFilters,
const InfallibleTArray<nsString>& aFilterNames) const InfallibleTArray<nsString>& aFilterNames,
const nsString& aDisplayDirectory)
{ {
if (!CreateFilePicker()) { if (!CreateFilePicker()) {
unused << Send__delete__(this, void_t(), nsIFilePicker::returnCancel); unused << Send__delete__(this, void_t(), nsIFilePicker::returnCancel);
@ -219,6 +220,14 @@ FilePickerParent::RecvOpen(const int16_t& aSelectedType,
mFilePicker->SetDefaultExtension(aDefaultExtension); mFilePicker->SetDefaultExtension(aDefaultExtension);
mFilePicker->SetFilterIndex(aSelectedType); mFilePicker->SetFilterIndex(aSelectedType);
if (!aDisplayDirectory.IsEmpty()) {
nsCOMPtr<nsIFile> localFile = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID);
if (localFile) {
localFile->InitWithPath(aDisplayDirectory);
mFilePicker->SetDisplayDirectory(localFile);
}
}
mCallback = new FilePickerShownCallback(this); mCallback = new FilePickerShownCallback(this);
mFilePicker->Open(mCallback); mFilePicker->Open(mCallback);

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

@ -36,7 +36,8 @@ class FilePickerParent : public PFilePickerParent
const nsString& aDefaultFile, const nsString& aDefaultFile,
const nsString& aDefaultExtension, const nsString& aDefaultExtension,
const InfallibleTArray<nsString>& aFilters, const InfallibleTArray<nsString>& aFilters,
const InfallibleTArray<nsString>& aFilterNames) MOZ_OVERRIDE; const InfallibleTArray<nsString>& aFilterNames,
const nsString& aDisplayDirectory) MOZ_OVERRIDE;
virtual void ActorDestroy(ActorDestroyReason aWhy) MOZ_OVERRIDE; virtual void ActorDestroy(ActorDestroyReason aWhy) MOZ_OVERRIDE;

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

@ -29,7 +29,8 @@ protocol PFilePicker
parent: parent:
Open(int16_t selectedType, bool addToRecentDocs, nsString defaultFile, Open(int16_t selectedType, bool addToRecentDocs, nsString defaultFile,
nsString defaultExtension, nsString[] filters, nsString[] filterNames); nsString defaultExtension, nsString[] filters, nsString[] filterNames,
nsString displayDirectory);
child: child:
__delete__(MaybeInputFiles files, int16_t result); __delete__(MaybeInputFiles files, int16_t result);

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

@ -136,8 +136,13 @@ nsFilePickerProxy::Open(nsIFilePickerShownCallback* aCallback)
{ {
mCallback = aCallback; mCallback = aCallback;
SendOpen(mSelectedType, mAddToRecentDocs, mDefault, nsString displayDirectory;
mDefaultExtension, mFilters, mFilterNames); if (mDisplayDirectory) {
mDisplayDirectory->GetPath(displayDirectory);
}
SendOpen(mSelectedType, mAddToRecentDocs, mDefault, mDefaultExtension,
mFilters, mFilterNames, displayDirectory);
return NS_OK; return NS_OK;
} }