Files
palemoon27/widget/nsFilePickerProxy.h
roytam1 f4be2b8299 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)
2020-07-25 07:10:29 +08:00

83 lines
2.7 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef NSFILEPICKERPROXY_H
#define NSFILEPICKERPROXY_H
#include "nsBaseFilePicker.h"
#include "nsString.h"
#include "nsIURI.h"
#include "nsTArray.h"
#include "nsCOMArray.h"
#include "mozilla/dom/PFilePickerChild.h"
class nsIWidget;
class nsIFile;
class nsPIDOMWindow;
namespace mozilla {
namespace dom {
class File;
}
}
/**
This class creates a proxy file picker to be used in content processes.
The file picker just collects the initialization data and when Show() is
called, remotes everything to the chrome process which in turn can show a
platform specific file picker.
*/
class nsFilePickerProxy : public nsBaseFilePicker,
public mozilla::dom::PFilePickerChild
{
public:
nsFilePickerProxy();
NS_DECL_ISUPPORTS
// nsIFilePicker (less what's in nsBaseFilePicker)
NS_IMETHODIMP Init(nsIDOMWindow* aParent, const nsAString& aTitle, int16_t aMode) override;
NS_IMETHODIMP AppendFilter(const nsAString& aTitle, const nsAString& aFilter) override;
NS_IMETHODIMP GetDefaultString(nsAString& aDefaultString) override;
NS_IMETHODIMP SetDefaultString(const nsAString& aDefaultString) override;
NS_IMETHODIMP GetDefaultExtension(nsAString& aDefaultExtension) override;
NS_IMETHODIMP SetDefaultExtension(const nsAString& aDefaultExtension) override;
NS_IMETHODIMP GetFilterIndex(int32_t* aFilterIndex) override;
NS_IMETHODIMP SetFilterIndex(int32_t aFilterIndex) override;
NS_IMETHODIMP GetFile(nsIFile** aFile) override;
NS_IMETHODIMP GetFileURL(nsIURI** aFileURL) override;
NS_IMETHODIMP GetFiles(nsISimpleEnumerator** aFiles) override;
NS_IMETHODIMP GetDomfile(nsISupports** aFile) override;
NS_IMETHODIMP GetDomfiles(nsISimpleEnumerator** aFiles) override;
NS_IMETHODIMP Show(int16_t* aReturn) override;
NS_IMETHODIMP Open(nsIFilePickerShownCallback* aCallback) override;
// PFilePickerChild
virtual bool
Recv__delete__(const MaybeInputFiles& aFiles, const int16_t& aResult) override;
private:
~nsFilePickerProxy();
void InitNative(nsIWidget*, const nsAString&) override;
// This is an innerWindow.
nsCOMPtr<nsPIDOMWindow> mParent;
nsTArray<nsRefPtr<mozilla::dom::File>> mDomfiles;
nsCOMPtr<nsIFilePickerShownCallback> mCallback;
int16_t mSelectedType;
nsString mFile;
nsString mDefault;
nsString mDefaultExtension;
InfallibleTArray<nsString> mFilters;
InfallibleTArray<nsString> mFilterNames;
};
#endif // NSFILEPICKERPROXY_H