gecko-dev/dom/webidl/HTMLImageElement.webidl
Andrew Osmond dbfad894d9 Bug 1501794 - Implement img decode API. r=bzbarsky,tnikkel
The img decode API allows a web author to request that an image be
decoded at its intrinsic size and be notified when it has been
completed. This is useful to ensure an image is ready to display before
adding it to the DOM tree -- this will help reduce flickering.

Differential Revision: https://phabricator.services.mozilla.com/D11362
2019-04-02 08:56:54 -04:00

134 lines
4.7 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/.
*
* The origin of this IDL file is
* http://www.whatwg.org/specs/web-apps/current-work/#htmlimageelement
* http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis
* © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and
* Opera Software ASA. You are granted a license to use, reproduce
* and create derivative works of this document.
*/
interface imgINotificationObserver;
interface imgIRequest;
interface URI;
interface nsIStreamListener;
[HTMLConstructor,
NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
interface HTMLImageElement : HTMLElement {
[CEReactions, SetterThrows]
attribute DOMString alt;
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows]
attribute DOMString src;
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows]
attribute DOMString srcset;
[CEReactions, SetterThrows]
attribute DOMString? crossOrigin;
[CEReactions, SetterThrows]
attribute DOMString useMap;
[CEReactions, SetterThrows]
attribute DOMString referrerPolicy;
[CEReactions, SetterThrows]
attribute boolean isMap;
[CEReactions, SetterThrows]
attribute unsigned long width;
[CEReactions, SetterThrows]
attribute unsigned long height;
[CEReactions, SetterThrows]
attribute DOMString decoding;
readonly attribute unsigned long naturalWidth;
readonly attribute unsigned long naturalHeight;
readonly attribute boolean complete;
[NewObject]
Promise<void> decode();
};
// http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis
partial interface HTMLImageElement {
[CEReactions, SetterThrows]
attribute DOMString name;
[CEReactions, SetterThrows]
attribute DOMString align;
[CEReactions, SetterThrows]
attribute unsigned long hspace;
[CEReactions, SetterThrows]
attribute unsigned long vspace;
[CEReactions, SetterThrows]
attribute DOMString longDesc;
[CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString border;
};
// [Update me: not in whatwg spec yet]
// http://picture.responsiveimages.org/#the-img-element
partial interface HTMLImageElement {
[CEReactions, SetterThrows]
attribute DOMString sizes;
readonly attribute DOMString currentSrc;
};
// Mozilla extensions.
partial interface HTMLImageElement {
[CEReactions, SetterThrows]
attribute DOMString lowsrc;
// These attributes are offsets from the closest view (to mimic
// NS4's "offset-from-layer" behavior).
readonly attribute long x;
readonly attribute long y;
};
[NoInterfaceObject]
interface MozImageLoadingContent {
// Mirrored chrome-only nsIImageLoadingContent methods. Please make sure
// to update this list if nsIImageLoadingContent changes.
[ChromeOnly]
const long UNKNOWN_REQUEST = -1;
[ChromeOnly]
const long CURRENT_REQUEST = 0;
[ChromeOnly]
const long PENDING_REQUEST = 1;
[ChromeOnly]
attribute boolean loadingEnabled;
[ChromeOnly]
readonly attribute short imageBlockingStatus;
/**
* Same as addNativeObserver but intended for scripted observers or observers
* from another or without a document.
*/
[ChromeOnly]
void addObserver(imgINotificationObserver aObserver);
/**
* Same as removeNativeObserver but intended for scripted observers or
* observers from another or without a document.
*/
[ChromeOnly]
void removeObserver(imgINotificationObserver aObserver);
[ChromeOnly,Throws]
imgIRequest? getRequest(long aRequestType);
[ChromeOnly,Throws]
long getRequestType(imgIRequest aRequest);
[ChromeOnly,Throws]
readonly attribute URI? currentURI;
// Gets the final URI of the current request, if available.
// Otherwise, returns null.
[ChromeOnly]
readonly attribute URI? currentRequestFinalURI;
/**
* forceReload forces reloading of the image pointed to by currentURI
*
* @param aNotify request should notify
* @throws NS_ERROR_NOT_AVAILABLE if there is no current URI to reload
*/
[ChromeOnly,Throws]
void forceReload(optional boolean aNotify = true);
[ChromeOnly]
void forceImageState(boolean aForce, unsigned long long aState);
};
HTMLImageElement implements MozImageLoadingContent;