gecko-dev/docshell/base/nsIWebNavigationInfo.idl
David Parks 7a4e918916 Bug 1682030 - Clean up NPAPI plugin fallback behavior. r=jmathies,emilio
Similifies use of EventStates and ObjectType/FallbackType enums since most states they represented are no longer valid with the removal of NPAPI plugins.  The state machine for (unsupported) plugin elements is now much simpler but still distinguishes between HTML fallbacks, fallbacks leading to a "BROKEN" state (e.g. failing to load the image the element refers to), and fallbacks that would simply lead the element to occupy an empty region.  The last type of fallback is behind a pref "layout.use-plugin-fallback" and is disabled by default.

Simplifying the state machine allows us to clean up nsObjectLoadingContent.  We also update many of the enums which refered to plugins, which would otherwise get confusing.

Differential Revision: https://phabricator.services.mozilla.com/D107158
2021-04-06 19:28:18 +00:00

64 lines
2.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"
interface nsIWebNavigation;
/**
* The nsIWebNavigationInfo interface exposes a way to get information
* on the capabilities of Gecko webnavigation objects.
*/
[scriptable, uuid(62a93afb-93a1-465c-84c8-0432264229de)]
interface nsIWebNavigationInfo : nsISupports
{
/**
* Returned by isTypeSupported to indicate lack of support for a type.
* @note this is guaranteed not to change, so that boolean tests can be done
* on the return value if isTypeSupported to detect whether a type is
* supported at all.
*/
const unsigned long UNSUPPORTED = 0;
/**
* Returned by isTypeSupported to indicate that a type is supported as an
* image.
*/
const unsigned long IMAGE = 1;
/**
* Returned by isTypeSupported to indicate that a type is a special NPAPI
* plugin that render as a transparent region (we do not support NPAPI
* plugins).
*/
const unsigned long FALLBACK = 2;
/**
* @note Other return types may be added here in the future as they become
* relevant.
*/
/**
* Returned by isTypeSupported to indicate that a type is supported via some
* other means.
*/
const unsigned long OTHER = 1 << 15;
/**
* Query whether aType is supported.
* @param aType the MIME type in question.
* @param aWebNav the nsIWebNavigation object for which the request
* is being made. This is allowed to be null. If it is non-null,
* the return value of this method may depend on the exact state of
* aWebNav and the values set through nsIWebBrowserSetup; otherwise
* the method will assume that the caller is interested in information
* about nsIWebNavigation objects in their default state.
* @return an enum value indicating whether and how aType is supported.
* @note This method may rescan plugins to ensure that they're properly
* registered for the types they support.
*/
unsigned long isTypeSupported(in ACString aType, in nsIWebNavigation aWebNav);
};