blob: 9e3e2f59eb85abf63cc56b5f924d7b8075882337 [file] [log] [blame]
/* -*- 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 following dictionaries are for Mozilla use only. They allow startup
* localization runtime to work around the performance cost of Stylo having
* to resolve XBL bindings in order to localize DOM in JS.
*
* Instead, we use `Node.localize` method which handles scanning for localizable
* elements and applies the result translations without having to create
* JS reflections for them.
*
* For details on the implementation of the API, see `Node.webidl`.
*/
dictionary L10nElement {
required DOMString namespaceURI;
required DOMString localName;
required DOMString l10nId; // value of data-l10n-id
DOMString? type = null;
DOMString? l10nAttrs = null; // value of data-l10n-attrs
object? l10nArgs = null; // json value of data-l10n-args attribute
};
dictionary AttributeNameValue {
required DOMString name;
required DOMString value;
};
dictionary L10nValue {
DOMString? value = null;
sequence<AttributeNameValue>? attributes = null;
};
callback L10nCallback =
Promise<sequence<L10nValue>> (sequence<L10nElement> l10nElements);