gecko-dev/docshell/base/nsIDocumentLoaderFactory.idl
Nika Layzell 855d5761c0 Bug 196078 - Part 2: Support displaying arbitrary text/* MIME types as plain text, r=smaug,necko-reviewers,valentin
This patch refactors how we check for text formats when deciding how to handle
resources, such that more text MIME types will be rendered in-browser, rather
than downloaded.

This change requires us to move more away from using the Gecko-Content-Viewers
category in the category manager for this decision, as we need to handle an
unlimited number of MIME types behind the scenes.

Support for Gecko-Content-Viewers was left in for both the in-tree use for
application/http-index-format and dynamically determining whether image/avif
and image/jxl are supported, as well as for the message/rfc822 type used by
Thunderbird.

Differential Revision: https://phabricator.services.mozilla.com/D212078
2024-06-05 00:05:58 +00:00

38 lines
1.5 KiB
Text

/* -*- Mode: IDL; tab-width: 4; 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"
interface nsIChannel;
interface nsIDocumentViewer;
interface nsIStreamListener;
interface nsIDocShell;
interface nsILoadGroup;
interface nsIPrincipal;
webidl Document;
/**
* To get a component that implements nsIDocumentLoaderFactory
* for a given mimetype, use nsContentUtils::FindInternalDocumentViewer.
* This will look up the MIME type within the "Gecko-Content-Viewers" category,
* with additional handlers for other content types.
*/
[scriptable, uuid(e795239e-9d3c-47c4-b063-9e600fb3b287)]
interface nsIDocumentLoaderFactory : nsISupports {
nsIDocumentViewer createInstance(in string aCommand,
in nsIChannel aChannel,
in nsILoadGroup aLoadGroup,
in ACString aContentType,
in nsIDocShell aContainer,
in nsISupports aExtraInfo,
out nsIStreamListener aDocListenerResult);
nsIDocumentViewer createInstanceForDocument(in nsISupports aContainer,
in Document aDocument,
in string aCommand);
};