Bug 1825212 [wpt PR 39266] - [@scope] Propagate proximity from SubResult, a=testonly
[gecko.git] / uriloader / exthandler / nsLocalHandlerApp.h
blob3ea8e3e4fca43e2a71c708efbc44508f883ffd8d
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * vim:expandtab:shiftwidth=2:tabstop=2:cin:
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #ifndef __nsLocalHandlerAppImpl_h__
8 #define __nsLocalHandlerAppImpl_h__
10 #include "nsString.h"
11 #include "nsIMIMEInfo.h"
12 #include "nsIFile.h"
13 #include "nsTArray.h"
15 class nsLocalHandlerApp : public nsILocalHandlerApp {
16 public:
17 NS_DECL_ISUPPORTS
18 NS_DECL_NSIHANDLERAPP
19 NS_DECL_NSILOCALHANDLERAPP
21 nsLocalHandlerApp() {}
23 nsLocalHandlerApp(const char16_t* aName, nsIFile* aExecutable)
24 : mName(aName), mExecutable(aExecutable) {}
26 nsLocalHandlerApp(const nsAString& aName, nsIFile* aExecutable)
27 : mName(aName), mExecutable(aExecutable) {}
29 protected:
30 virtual ~nsLocalHandlerApp() {}
32 nsString mName;
33 nsString mDetailedDescription;
34 nsTArray<nsString> mParameters;
35 nsCOMPtr<nsIFile> mExecutable;
37 /**
38 * Launches this application with a single argument (typically either
39 * a file path or a URI spec). This is meant as a helper method for
40 * implementations of (e.g.) LaunchWithURI.
42 * @param aApp The application to launch (may not be null)
43 * @param aArg The argument to pass on the command line
45 nsresult LaunchWithIProcess(const nsCString& aArg);
48 // any platforms that need a platform-specific class instead of just
49 // using nsLocalHandlerApp need to add an include and a typedef here.
50 #ifdef XP_MACOSX
51 # ifndef NSLOCALHANDLERAPPMAC_H_
52 # include "mac/nsLocalHandlerAppMac.h"
53 typedef nsLocalHandlerAppMac PlatformLocalHandlerApp_t;
54 # endif
55 #else
56 typedef nsLocalHandlerApp PlatformLocalHandlerApp_t;
57 #endif
59 #endif // __nsLocalHandlerAppImpl_h__