mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-29 07:42:04 +00:00
e55996cc86
Firefox in Flatpak sandboxed environment does not get the list of installed applications on the system because application should know about the environment as little as possible. Introducing nsFlatpakHandlerApp which forwards requests for opening downloaded files to the system by utilizing gtk_show_uri fuction. This changeset also removes nsIGIOMimeApp::Launch method from the interface because it can be fully replaced with LaunchWithUri from nsIHandlerApp interface. The TMPDIR where files are downloaded when user choose to open them needs to be accessible from sandbox and host. The default settings TMPDIR=/tmp is accessible only to the sandbox. To workaround for is to set TMPDIR environment variable to $XDG_CACHE_HOME/tmp before executing Firefox. MozReview-Commit-ID: CSBv0QcETpd --HG-- extra : rebase_source : 8155c33fa9c402d2668bdfb07094ba6758fe6203
89 lines
3.3 KiB
Plaintext
89 lines
3.3 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* 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/. */
|
|
|
|
#include "nsISupports.idl"
|
|
#include "nsIMIMEInfo.idl"
|
|
|
|
interface nsIUTF8StringEnumerator;
|
|
interface nsIURI;
|
|
interface nsIMutableArray;
|
|
|
|
/* nsIGIOMimeApp holds information about an application that is looked up
|
|
with nsIGIOService::GetAppForMimeType. */
|
|
// 66009894-9877-405b-9321-bf30420e34e6 prev uuid
|
|
|
|
[scriptable, uuid(ca6bad0c-8a48-48ac-82c7-27bb8f510fbe)]
|
|
interface nsIGIOMimeApp : nsIHandlerApp
|
|
{
|
|
const long EXPECTS_URIS = 0;
|
|
const long EXPECTS_PATHS = 1;
|
|
const long EXPECTS_URIS_FOR_NON_FILES = 2;
|
|
|
|
readonly attribute AUTF8String id;
|
|
readonly attribute AUTF8String command;
|
|
readonly attribute long expectsURIs; // see constants above
|
|
readonly attribute nsIUTF8StringEnumerator supportedURISchemes;
|
|
|
|
void setAsDefaultForMimeType(in AUTF8String mimeType);
|
|
void setAsDefaultForFileExtensions(in AUTF8String extensions);
|
|
void setAsDefaultForURIScheme(in AUTF8String uriScheme);
|
|
};
|
|
|
|
/*
|
|
* The VFS service makes use of two distinct registries.
|
|
*
|
|
* The application registry holds information about applications (uniquely
|
|
* identified by id), such as which MIME types and URI schemes they are
|
|
* capable of handling, whether they run in a terminal, etc.
|
|
*
|
|
* The MIME registry holds information about MIME types, such as which
|
|
* extensions map to a given MIME type. The MIME registry also stores the
|
|
* id of the application selected to handle each MIME type.
|
|
*/
|
|
|
|
// prev id dea20bf0-4e4d-48c5-b932-dc3e116dc64b
|
|
[scriptable, uuid(eda22a30-84e1-4e16-9ca0-cd1553c2b34a)]
|
|
interface nsIGIOService : nsISupports
|
|
{
|
|
|
|
/*** MIME registry methods ***/
|
|
|
|
/* Obtain the MIME type registered for an extension. The extension
|
|
should not include a leading dot. */
|
|
AUTF8String getMimeTypeFromExtension(in AUTF8String extension);
|
|
|
|
/* Obtain the preferred application for opening a given URI scheme */
|
|
nsIHandlerApp getAppForURIScheme(in AUTF8String aURIScheme);
|
|
|
|
/* Obtain list of application capable of opening given URI scheme */
|
|
nsIMutableArray getAppsForURIScheme(in AUTF8String aURIScheme);
|
|
|
|
/* Obtain the preferred application for opening a given MIME type */
|
|
nsIHandlerApp getAppForMimeType(in AUTF8String mimeType);
|
|
|
|
/* Create application info for given command and name */
|
|
nsIGIOMimeApp createAppFromCommand(in AUTF8String cmd,
|
|
in AUTF8String appName);
|
|
|
|
/* Find the application info by given command */
|
|
nsIGIOMimeApp findAppFromCommand(in AUTF8String cmd);
|
|
|
|
/* Obtain a description for the given MIME type */
|
|
AUTF8String getDescriptionForMimeType(in AUTF8String mimeType);
|
|
|
|
/*** Misc. methods ***/
|
|
|
|
/* Open the given URI in the default application */
|
|
void showURI(in nsIURI uri);
|
|
[noscript] void showURIForInput(in ACString uri);
|
|
|
|
/* Open path in file manager using org.freedesktop.FileManager1 interface */
|
|
[noscript] void orgFreedesktopFileManager1ShowItems(in ACString path);
|
|
};
|
|
|
|
%{C++
|
|
#define NS_GIOSERVICE_CONTRACTID "@mozilla.org/gio-service;1"
|
|
%}
|