Search completed in 1.52 seconds.
Common causes of memory leaks in extensions - Extensions
all zombie compartments in
extensions are caused by a failure to release resources appropriately in certain circumstances, such as when a window is closed, a page unloads, or an extension is disabled or removed.
... storing references to window objects and dom nodes the most common problem is
extensions holding onto references to content windows for too long.
... problems in bootstrapped (restartless) add-ons bootstrapped
extensions use a bootstrap.js compartment.
...And 2 more matches
Chapter 1: Introduction to Extensions - Archive of obsolete content
instead, firefox can support these features through
extensions.
... the core browser is limited to basic features, so it’s something that a beginner can be comfortable with, but users who want something beyond that can install
extensions.
... about
extensions management using the add-ons manager firefox's add-ons manager is an excellent way to manage
extensions, and is a great step up in ease of use.
...And 17 more matches
Using WebGL extensions - Web APIs
webgl, like its sister apis (opengl and opengl es), supports
extensions.
... a complete list of
extensions is available in the khronos webgl extension registry.
... note: in webgl, unlike in other gl apis,
extensions are only available if explicitly requested.
...And 14 more matches
Getting Started with Firefox Extensions - Archive of obsolete content
extensions add new functionality to mozilla applications such as firefox and thunderbird.
... taken from the
extensions page.
...this tutorial focuses on
extensions for firefox, but the same (or very similar) principles apply to creating
extensions for other applications such as thunderbird, seamonkey, and flock.
...And 10 more matches
PublicKeyCredentialCreationOptions.extensions - Web APIs
extensions, an optional property of the publickeycredentialcreationoptions dictionary, is an object providing the client
extensions and their input values.
...
extensions are values requesting additional processing by the client and by the authenticator.
... for instance,
extensions may be used for: backward compatibility with the legacy fido js api, knowing the user verification process, etc.
...And 10 more matches
JS_PreventExtensions
syntax // added in spidermonkey 45 bool js_prevent
extensions(jscontext *cx, js::handleobject obj, js::objectopresult &result); // obsolete since jsapi 39 bool js_prevent
extensions(jscontext *cx, js::handleobject obj, bool *succeeded); name type description cx jscontext * the context.
... in javascript this may be accomplished using the object.prevent
extensions method.
... the similar jsapi method is js_prevent
extensions.
...And 9 more matches
Object.preventExtensions() - JavaScript
the object.prevent
extensions() method prevents new properties from ever being added to an object (i.e.
... prevents future
extensions to the object).
... syntax object.prevent
extensions(obj) parameters obj the object which should be made non-extensible.
...And 8 more matches
Reflect.preventExtensions() - JavaScript
the static reflect.prevent
extensions() method prevents new properties from ever being added to an object (i.e., prevents future
extensions to the object).
... it is similar to object.prevent
extensions(), but with some differences.
... syntax reflect.prevent
extensions(target) parameters target the target object on which to prevent
extensions.
...And 7 more matches
PublicKeyCredentialRequestOptions.extensions - Web APIs
extensions, an optional property of the publickeycredentialrequestoptions dictionary, is an object providing the client
extensions and their input values.
...
extensions are values requesting additional processing by the client and by the authenticator.
... for instance,
extensions may be used for: backward compatibility with the legacy fido js api, knowing the user verification process, etc.
...And 6 more matches
Bootstrapped extensions - Archive of obsolete content
traditional
extensions include overlays, wherein the application can load up xul from the extension's package and automatically apply it on top its own ui.
... while this makes creating
extensions that add to the application's user interface relatively easy, it means that updating, installing, or disabling an extension requires an application restart.
... gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) introduces bootstrapped
extensions.
...And 5 more matches
Overlay extensions - Archive of obsolete content
this page contains links to documentation for the approach to developing
extensions for gecko-based applications which uses: xul overlays to specify the interface apis available to privileged code, such as tabbrowser and javascript modules, to interact with the application and content.
... prior to firefox 4, and the gecko 2 engine that powers it, this was the only way to develop
extensions.
... this methodology has largely been superseded by restartless
extensions, and the add-on sdk, which is built on top of them.
...And 5 more matches
handler.preventExtensions() - JavaScript
the handler.prevent
extensions() method is a trap for object.prevent
extensions().
... syntax const p = new proxy(target, { prevent
extensions: function(target) { } }); parameters the following parameter is passed to the prevent
extensions() method.
... return value the prevent
extensions() method must return a boolean value.
...And 5 more matches
requiredExtensions - SVG: Scalable Vector Graphics
the required
extensions attribute defines a list of required language
extensions.
... language
extensions are capabilities within a user agent that go beyond the feature set defined in this specification.
... usage notes value <list-of-
extensions> default value none animatable no <list-of-
extensions> the value is a list of references (iri references in svg 1, url references in svg 2) which identify the required
extensions, with the individual values separated by white space.
...And 5 more matches
Chapter 6: Firefox extensions and XUL applications - Archive of obsolete content
matsuzawa-san is a co-author of firefox 3 hacks (o'reilly japan, 2008.) this chapter discusses tools to assist in developing
extensions.
...it works like typical debuggers, and is useful not only for developing
extensions, but also for general web development.
... also, because it works with the javascript in
extensions and firefox itself, the debugger can be a good way to learn about design methods.
...And 3 more matches
Extensions - Archive of obsolete content
prism has support for
extensions.
...
extensions are built using the same methods as any mozilla-based extension.
...
extensions typically overlay the host application's ui to add toolbar buttons, menus and other features.
...And 3 more matches
WebGLRenderingContext.getSupportedExtensions() - Web APIs
the webglrenderingcontext.getsupported
extensions() method returns a list of all the supported webgl
extensions.
... syntax gl.getsupported
extensions(); return value an array of strings with all the supported webgl
extensions.
... examples var canvas = document.getelementbyid('canvas'); gl = canvas.getcontext('webgl'); var
extensions = gl.getsupported
extensions(); // array [ 'angle_instanced_arrays', 'ext_blend_minmax', ...
...And 3 more matches
Chapter 2: Technologies used in developing extensions - Archive of obsolete content
before we dive into a thorough explanation, we'll quickly introduce the technologies used to develop firefox
extensions.
... technologies used to develop firefox
extensions firefox and its
extensions are both based on and developed with technologies widely used on the web.
...if you've had experience developing with dynamic html, you'll probably find it relatively easy to pick up the knowledge you'll need to develop firefox
extensions.
...And 2 more matches
Performance best practices in extensions - Archive of obsolete content
extensions can do almost anything.
... there is a down side to this: poorly written
extensions can have a severe impact on the browsing experience, including on the overall performance of firefox itself.
... improving startup performance
extensions are loaded and run whenever a new browser window opens.
...And 2 more matches
Security best practices in extensions - Archive of obsolete content
this is written from the perspective of a firefox extension, but most items apply to
extensions for other mozilla-based applications such as thunderbird or seamonkey.
... using eval() in an extension using the built-in javascript eval function is frowned upon in the context of
extensions.
...the convention for
extensions is to use a chrome url for the site identifier, to avoid clashes with logins for sites.
...And 2 more matches
WebSocket.extensions - Web APIs
the websocket.
extensions read-only property returns the
extensions selected by the server.
... this is currently only the empty string or a list of
extensions as negotiated by the connection.
... syntax var
extensions = awebsocket.
extensions; value a domstring.
... specifications specification status comment html living standardthe definition of 'websocket:
extensions' in that specification.
bootstrap.js - Extensions
for more information, see bootstrapped
extensions.
... function startup(data, reason) { /// bootstrap data structure @see /docs/
extensions/bootstrapped_
extensions#bootstrap_data /// string id /// string version /// nsifile installpath /// nsiuri resourceuri /// /// reason types: /// app_startup /// addon_enable /// addon_install /// addon_upgrade /// addon_downgrade } function shutdown(data, reason) { /// bootstrap data structure @see /docs/
extensions/bootstrapped_
extensions#bootstrap_data /// string id /// string version /// nsifile installpath /// nsiuri resourceuri /// /// reason types: /// app_shutdown /// addon_disable /// addon_uninstall /// addon_upgrade...
... /// addon_downgrade } function install(data, reason) { /// bootstrap data structure @see /docs/
extensions/bootstrapped_
extensions#bootstrap_data /// string id /// string version /// nsifile installpath /// nsiuri resourceuri /// /// reason types: /// addon_install /// addon_upgrade /// addon_downgrade } function uninstall(data, reason) { /// bootstrap data structure @see /docs/
extensions/bootstrapped_
extensions#bootstrap_data /// string id /// string version /// nsifile installpath /// nsiuri resourceuri /// /// reason types: /// addon_uninstall /// addon_upgrade /// addon_downgrade } ...
Thunderbird extensions
the following documentation provides help for creating
extensions for the thunderbird email client.
... there are similarities with firefox
extensions, but there are also differences that may confound the starting thunderbird developer.
...read the thunderbird how-tos; they contain many recipes for things
extensions want to do.
Installing Extensions and Themes From Web Pages - Archive of obsolete content
there are a variety of ways you can install
extensions and themes from web pages, including direct linking to the xpi files and using the installtrigger object.
...because so many sites installed
extensions by direct-linking the xpi file and relying on content handling to invoke the confirmation ui, many sites are (incorrectly) doing so for theme jar files too and wondering why they aren't auto-detected and installed.
Java in Firefox Extensions - Archive of obsolete content
ion's javascript code (linked from or contained in xul code) access to 2 objects: java and packages (note that per this thread, although the new documentation for the liveconnect reimplementation states that these globals will be deprecated (in the context of applets), "firefox and the java plug-in will continue to support the global java/packages keywords, in particular in the context of firefox
extensions.").
...(this works in firefox 3.x, for firefox 4.x use addonmanager.getaddonbyid) var extensionpath = components.classes["@mozilla.org/
extensions/manager;1"].
Extensions - Archive of obsolete content
for example, to add an item to the end of the tools menu, use the following: <menupopup id="menu_toolspopup"> <menuitem label="thesaurus"/> </menupopup> note that other
extensions may be adding their own items into the same menus.
...as you cannot predict this order, you should not rely on any menuitems being in particular positions in the presence of other
extensions.
Using workers in extensions - Archive of obsolete content
« previous this article shows you how to use worker threads in
extensions to perform tasks in the background without blocking the user interface.
... a note about chromeworkers requires gecko 2.0(firefox 4 / thunderbird 3.3 / seamonkey 2.1) gecko 2.0 added the new chromeworker object, which provides a special chrome-only worker that can be used by applications and
extensions.
Encrypted Media Extensions API - Web APIs
the encrypted media
extensions api provides interfaces for controlling the playback of content which is subject to a digital restrictions management scheme.
... specifications specification status comment encrypted media
extensions recommendation initial definition ...
Microsoft API extensions - Web APIs
microsoft browsers (internet explorer, and in a few cases, microsoft edge) support a number of special microsoft
extensions to the otherwise standard dom apis.
... these
extensions are prefixed with ms or ms.
Mozilla CSS extensions - CSS: Cascading Style Sheets
mozilla applications such as firefox support a number of special mozilla
extensions to css, including properties, values, pseudo-elements and pseudo-classes, at-rules, and media queries.
... these
extensions are prefixed with -moz-.
Community - Extensions
mozillazine
extensions & themes forum #extdev channel on moznet irc network — extension development questions #addons channel on moznet irc network — questions about http://addons.mozilla.org mozdev project owners mailing list mozillazine knowledge base allyourideas — ideas for
extensions ((really needs a unique captcha)) babelzilla — a community for developers and translators of extension for mozilla applications ...
Index - Archive of obsolete content
9 add-ons add-ons, archive,
extensions archived add-ons documentation.
... 17 cross-domain content scripts add-on sdk, add-ons,
extensions no summary!
... 18 interacting with page scripts add-on sdk, add-ons,
extensions by default, content scripts loaded by add-ons and scripts loaded by web pages are insulated from each other: 19 loading content scripts no summary!
...And 175 more matches
Index - Web APIs
192 audiotrack.sourcebuffer api, audio, audiotrack, html dom, mse, media, media source
extensions, property, read-only, reference, sourcebuffer, track the read-only audiotrack property sourcebuffer returns the sourcebuffer that created the track, or null if the track was not created by a sourcebuffer or the sourcebuffer has been removed from the mediasource.sourcebuffers attribute of its parent media source.
...nresponse.authenticatordata api, authenticatorassertionresponse, property, reference, web authentication api, webauthn the authenticatordata property of the authenticatorassertionresponse interface returns an arraybuffer containing information from the authenticator such as the relying party id hash (rpidhash), a signature counter, test of user presence, user verification flags, and any
extensions processed by the authenticator.
...this may come from http headers or other sources of mime information, and might be affected by automatic type conversions performed by either the browser or
extensions.
...And 140 more matches
Index
found 1275 pages: # page tags and summary 1 xpcom add-ons,
extensions, landing, mozilla, xpcom xpcom is a cross platform component object model, similar to microsoft com.
... 2 accessing the windows registry using xpcom add-ons, code snippets,
extensions, needsclassification, windows registry when implementing windows-specific functionality, it is often useful to access the windows registry for information about the environment or other installed programs.
... 5 bundling multiple binary components binary xpcom components are sometimes required to implement low-level features for
extensions.
...And 48 more matches
Enhanced Extension Installation - Archive of obsolete content
the state of the world install locations in firefox 1.0
extensions can be installed into only two locations: the firefox user's profile directory directory, e.g.
... ~/.mozilla/firefox/abcdefgh.default/
extensions/ the firefox application directory, e.g.
... c:\program files\mozilla firefox\
extensions extension metadata the extension system stores metadata in both of the two locations, in the following files: <location>/
extensions/
extensions.rdf - an xml/rdf datasource listing all the
extensions installed at that location.
...And 28 more matches
Chapter 5: Let's build a Firefox extension - Archive of obsolete content
setting up your development environment in order to develop (and test)
extensions in a most convenient way it is recommended to apply some changes to firefox.
... true javascript.options.strict (present in firefox 3.5+) enforces strict error output from javascript true table 1: preferences to set for developing
extensions to make these changes, start your development profile, type about:config into firefox’s location bar and open the preferences window; find the preferences listed in table 1 and double-click on them to set them accordingly.
...this is not required for developing
extensions, but it is handy to have around.
...And 26 more matches
Index
3 account examples
extensions, thunderbird this article provides examples on accessing and manipulating thunderbird accounts.
... 4 account interfaces code snippets, extension development, thunderbird this page contains a list of the interfaces that you'll will most likely use when writing
extensions that work with email or other accounts.
... 7 address book interfaces mailnews, mozilla, seamonkey, thunderbird this page contains a list of the interfaces that you'll will most likely hit when writing patches for the address book or writing
extensions.
...And 20 more matches
Index
the trust assigned by the third party might be restricted to certain uses, which are listed in certificate
extensions that are contained in the certificate.
...for example: certificates were valid at the time the signature was made, name in certificates matches the expected signer (check subject name, common name, email, based on application), the trust restrictions recorded inside the certificate (
extensions) permit the use (e.g., encryption might be allowed, but not signing), and based on environment/application policy it might be required to perform a revocation check (ocsp or crl), that asks the issuer(s) of the certificates whether there have been events that made it necessary to revoke the trust (revoke the validity of the cert).
...for example: 20050204153000z * add an extension to a crl or a crl certificate entry: addext extension-name critical/non-critical [arg1[arg2 ...]] where: extension-name: string value of a name of known
extensions.
...And 17 more matches
Install Manifests - Archive of obsolete content
note:
extensions compatible with firefox 3.5 should specify a maxversion of 3.5.*, so that they are automatically compatible with security and stability updates.
...
extensions compatible only with firefox or thunderbird 2 should specify a maxversion of 2.0.0.*.
... 2
extensions 4 themes 8 locale 32 multiple item package 64 spell check dictionary 128 telemetry experiment 256 webextension experiment examples <em:type>2</em:type> this property was added for firefox 1.5, and is only required for add-on types other than
extensions and themes.
...And 15 more matches
Index - Archive of obsolete content
3 a xul bestiary add-ons,
extensions, needstechnicalreview, xul this xulnote presents some of the key concepts and terms in the xul development environment.
... 422 deprecated and defunct markup reference, xul {many elements on this page are wrongly marked as deprecated, this page needs review} 423 dynamically modifying xul-based user interface add-ons, dom,
extensions, xul this article discusses manipulating xul interfaces, using dom and other apis.
... 440 menus add-ons,
extensions, needscontent, reference, référence(2), xul an extension will often wish to attach a new command to a menu.
...And 14 more matches
NSS tools : certutil
add one or multiple
extensions that certutil cannot encode yet, by loading their encodings from external files.
... x.509 certificate
extensions are described in rfc 5280.
... x.509 certificate
extensions are described in rfc 5280.
...And 13 more matches
certutil
x.509 certificate
extensions are described in rfc 5280.
... x.509 certificate
extensions are described in rfc 5280.
... x.509 certificate
extensions are described in rfc 5280.
...And 12 more matches
A Web PKI x509 certificate primer
in general, x509 certificates bind a signature to a validity period, a public key, a subject, an issuer, and a set of
extensions.
... the
extensions define extra properties of the certificate such as extra attributes of the certificate or constraints on the use of the certificate.
...
extensions while rfc 5280 defines 16
extensions for webpki in this document we will be describing the six
extensions we considered critical for understanding.
...And 12 more matches
Preferences - Archive of obsolete content
here are two examples: // get the root branch var prefs = components.classes["@mozilla.org/preferences-service;1"] .getservice(components.interfaces.nsiprefbranch); // get the "
extensions.myext." branch var prefs = components.classes["@mozilla.org/preferences-service;1"] .getservice(components.interfaces.nsiprefservice); prefs = prefs.getbranch("
extensions.myext."); simple types there are three types of preferences: string, integer, and boolean.
...let's say you want to make the default value for the
extensions.myext.welcomemessage preference localizable.
... you should do the following: add this line to some .properties file (for all of your locales), say to chrome://myext/locale/defaults.properties:
extensions.myext.welcomemessage=localized default value add the default value for
extensions.myext.welcomemessage, pointing to that properties file, by adding the following line to your file with default preferences (see below).
...And 10 more matches
about:debugging - Firefox Developer Tools
this firefox provides information about temporary
extensions you have loaded for debugging,
extensions that are installed in firefox, the tabs that you currently have open, and service workers running on firefox.
...when you do, it is added to the network locations list along with the devices, as shown below: this firefox the this firefox tab combines the features of
extensions, tabs, and workers into a single tab with the following sections: temporary
extensions displays a list of the
extensions that you have loaded using the load temporary add-on button.
...
extensions this section lists information about the
extensions that you have installed on your system.
...And 10 more matches
Extension Etiquette - Archive of obsolete content
this article describes best practices when making
extensions, including how to be kind to your users.
...whether the
extensions should go at the top, bottom, or somewhere in between on the tools menu, the author always has a choice.
...sub-menus should be used for single
extensions needing multiple menu items, and a tools menu item should not be created for options and preferences (for options and preferences, see the add-on manager).
...And 9 more matches
Setting Up a Development Environment - Archive of obsolete content
on the other hand,
extensions use the same (or similar) languages that are used for web development, so most text editors and ides are up to the task.
...komodo edit has automatic completion for xul tags and attributes, and it supports mozilla's css
extensions (css values and properties beginning with "-moz").
... it has an add-on system similar to the one in firefox, and there are some komodo
extensions that provide additional help in extension development.
...And 9 more matches
Add-ons - Archive of obsolete content
bootstrapped
extensions browser.bookmarks.export( function() {...} // optional function ) code snippets … creating custom firefox
extensions with the mozilla build system there is a wealth of material on creating
extensions for firefox.
...for complex
extensions, it may be necessary to create components in c++ that provide additional functionality.
... extension etiquette this article describes best practices when making
extensions, including how to be kind to your users.
...And 9 more matches
MCD, Mission Control Desktop, AKA AutoConfig - Archive of obsolete content
ndldap.patch diff -ur thunderbird-3.0/configure thunderbird-3.0.autoldap/configure --- thunderbird-3.0/configure 2009-06-29 11:37:21.677372297 +0200 +++ thunderbird-3.0.autoldap/configure 2009-06-29 14:41:11.547435040 +0200 @@ -12855,7 +12855,7 @@ moz_feeds=1 moz_jsdebugger=1 moz_jsloader=1 -moz_ldap_xpcom= +moz_ldap_xpcom=1 moz_mail_news= moz_mork=1 moz_morkreader= and set --enable-
extensions=pref in mozconfig file, in fedora source rpm it is: [root@b008-02 sources]# grep enable-
extensions /root/rpmbuild/sources/thunderbird-mozconfig ac_add_options --enable-
extensions=pref it seems worse this time , as even after applying those compilation options mentioned above, i now get the following error message while stating thunderbird with autoconfig (autoconf.js having pref('general.confi...
...moz_ldap_xpcom=1 and moz_
extensions_default="wallet spellcheck xmlextras pref webservices universalcharset auth" are now present in the default configure script.
...so we needed to recompile thunderbird with autoconfig support, it's just a matter of adding --enable-
extensions=pref in mozconfig file.
...And 9 more matches
The Essentials of an Extension - Archive of obsolete content
firefox needs this to distinguish your extension from other
extensions, so it is required that you have an id that is unique.
... since
extensions can be translated to multiple languages, it is often necessary to translate the extension's description, or even its name.
...the 3 are necessary for most
extensions.
...And 8 more matches
Index of archived content - Archive of obsolete content
unload localization logging modifying web pages based on url modifying the page hosted by a tab open a web page troubleshooting unit testing using xpcom without chrome using third-party modules (jpm) bootstrapped
extensions code snippets alerts and notifications autocomplete bookmarks boxes canvas code snippets cookies customizing the download progress bar delayed execution dialogs and prompts downloading files drag & drop embedding svg ...
...ri parsing view source for xul applications windows xml-related code snippets xml:base support in old browsers xpath getattributens common pitfalls communication between html and your extension creating custom firefox
extensions with the mozilla build system custom about: urls default preferences deploying a plugin as an extension developing add-ons displaying web content in an extension without security issues downloading json and javascript in
extensions enhanced extension installation extension etiquette extension library ...
... extension packaging extension samples extension theming guidelines extension versioning, update and compatibility
extensions support in seamonkey 2 firefox addons developer guide hiding browser chrome hotfix extension how to convert an overlay extension to restartless inline options install manifests installing
extensions and themes from web pages interaction between privileged and non-privileged pages jetpack processes legacy add-ons legacy
extensions for firefox for android api accounts.jsm browserapp addtab ...
...And 8 more matches
XULRunner tips - Archive of obsolete content
extension manager to be able to install any
extensions, you first need to enable the extension manager in application.ini.
... xulrunner 1.8.0 does not load
extensions from the application directory; only the xulrunner directory and the user profile directory are checked.
...the following prefs must also be set to make the xpinstall dialog, extension manager, and theme manager work: pref("xpinstall.dialog.confirm", "chrome://mozapps/content/xpinstall/xpinstallconfirm.xul"); pref("xpinstall.dialog.progress.skin", "chrome://mozapps/content/
extensions/
extensions.xul?type=themes"); pref("xpinstall.dialog.progress.chrome", "chrome://mozapps/content/
extensions/
extensions.xul?type=
extensions"); pref("xpinstall.dialog.progress.type.skin", "extension:manager-themes"); pref("xpinstall.dialog.progress.type.chrome", "extension:manager-
extensions"); pref("
extensions.update.enabled", true); pref("
extensions.update.interval", 86400); pref("
extensions.dss.
...And 8 more matches
Theme changes in Firefox 2 - Archive of obsolete content
mozapps/
extensions/about.css updated with a simplified set of style names, since several styles were identical.
... mozapps/
extensions/
extensions.css css for the add-ons manager window.
... mozapps/
extensions/itemdisabledfader.png new file; a translucent png used as an overlay on top of items that are disabled in the add-ons manager.
...And 8 more matches
Setting up an extension development environment - Archive of obsolete content
install firefox development
extensions specifically for this new developer user profile.
... edit files in the
extensions folder of this profile, and restart the application as this new developer profile.
... development profile the use of a separate user profile for development can be advantageous, averting performance degradation from development related settings, and further isolating personal data (such as bookmarks,
extensions, and settings) from your testing environment.
...And 7 more matches
nsIFilePicker
constant value description filterall 0x001 corresponds to the *.* filter for file
extensions.
... filterhtml 0x002 corresponds to the *.html, *.htm, *.shtml and *.xhtml filters for file
extensions.
... filtertext 0x004 corresponds to the *.txt and *.text filter for file
extensions.
...And 7 more matches
Complete - Archive of obsolete content
this page is for readers who have followed the custom toolbar button tutorial for firefox, thunderbird and sunbird, or the custom toolbar button:seamonkey tutorial for seamonkey, and who want to learn more about developing
extensions.
... introduction you can use the custom toolbar button tutorial as a very simple introduction to
extensions.
... however, because it is so simple it does not support some of the usual features of
extensions.
...And 6 more matches
Manifest Files - Archive of obsolete content
extensions will make the most use of overlays, since they merge their ui with the browser ui.
...this flag was added to prevent this problem and should always be used for newer
extensions, but is left out for older
extensions that might not be compatible with the change.
...for
extensions, you will need to create an install file install.rdf which describes what will be installed, the author of the extension and which versions of the browser or other applications it is compatible with.
...And 6 more matches
XUL Structure - Archive of obsolete content
this chrome package registration is the way firefox
extensions are able to add features to the browser.
... the
extensions are small packages of xul files, javascript, style sheets and images packed together into a single file.
...of course, the browser is much larger and more sophisticated than most
extensions.
...And 6 more matches
Index
found 689 pages: # page tags and summary 1 add-ons add-ons, extension,
extensions, landing, mozilla add-ons allow developers to extend and modify the functionality of firefox.
... 676 index add-ons, glossary, guide, index found 689 pages: 677 signing and distributing your add-on add-ons,
extensions, web
extensions, distribution, publication, reviews, signing add-ons need to be signed before they can be installed into release and beta versions of firefox.
... 678 make money from browser
extensions guide, monetization, web
extensions, distribution while users can download browser
extensions for firefox free of cost from addons.mozilla.org (amo), this doesn’t mean you can’t make money from browser
extensions, and to a more limited extent themes.
...And 6 more matches
Chrome registration
mozilla locates and reads the root chrome.manifest file for
extensions and themes.
... application
extensions may install into multiple applications.
...browser.xul chrome://myaddon/content/ffoverlay.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} overlay chrome://messenger/content/mailwindowoverlay.xul chrome://myaddon/content/tboverlay.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6} overlay chrome://songbird/content/xul/layoutbaseoverlay.xul chrome://myaddon/content/sboverlay.xul application=songbird@songbirdnest.com appversion
extensions may install into multiple versions of an application.
...And 6 more matches
XPCOM changes in Gecko 2.0
for
extensions, this is the same chrome.manifest currently used to register chrome.
...also note that
extensions using binary components must now use the unpack property in the install manifest.
...category registration prior to gecko 2,
extensions could listen for the xpcom-startup and app-startup notifications during startup, and perform actions during those.
...And 6 more matches
PublicKeyCredential.getClientExtensionResults() - Web APIs
getclientextensionresults() is a method of the publickeycredential interface that returns an arraybuffer which contains a map between the
extensions identifiers and their results after having being processed by the client.
... during the creation or fetching of a publickeycredential (respectively via navigator.credentials.create() and navigator.credentials.get()), it is possible to have "custom" processing by the client for different
extensions which are respectively given by publickeycredentialcreationoptions.
extensions and publickeycredentialrequestoptions.
extensions.
... note:
extensions are optional and different browsers may recognize different
extensions.
...And 6 more matches
Writing WebSocket servers - Web APIs
the client will send a pretty standard http request with headers that looks like this (the http version must be 1.1 or greater, and the method must be get): get /chat http/1.1 host: example.com:8000 upgrade: websocket connection: upgrade sec-websocket-key: dghlihnhbxbszsbub25jzq== sec-websocket-version: 13 the client can solicit
extensions and/or subprotocols here; see miscellaneous for details.
...rsv1-3 can be ignored, they are for
extensions.
... miscellaneous websocket codes,
extensions, subprotocols, etc.
...And 6 more matches
Extension Packaging - Archive of obsolete content
extensions are packaged in a form of installable bundle which can be downloaded and installed by a user, or provided pre-packaged with an application or by an external program.
...
extensions use a directory structure which can provide chrome, components, and other files to extend the functionality of an xul program.
... note: starting in gecko 2.0, xpi files are no longer unpacked when
extensions are installed.
...And 5 more matches
Inline options - Archive of obsolete content
firefox 7 supports a new syntax for defining
extensions' preferences for both bootstrapped and traditional
extensions.
...here is an example of an options.xul file: <?xml version="1.0"?> <!doctype mydialog system "chrome://myaddon/locale/mydialog.dtd"> <vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <setting type="bool" pref="
extensions.myaddon.bool" title="boolean" desc="stored as a boolean preference" /> </vbox> note that it's limited to <setting> tags.
... some examples: <!-- boolean examples --> <setting pref="
extensions.myaddon.bool1" type="bool" title="boolean 1"/> <setting pref="
extensions.myaddon.bool2" type="bool" title="boolean 2"> description of boolean 2 </setting> <!-- boolean stored as an integer --> <setting pref="
extensions.myaddon.boolint" type="boolint" title="boolean 3" on="1" off="2"/> <!-- integer example --> <setting pref="
extensions.myaddon.int" type="integer" title="integer"/> <!-- string...
...And 5 more matches
Handling Preferences - Archive of obsolete content
adding preferences to an extension
extensions can read and write firefox preferences and, most importantly, create and manage their own.
...it makes it easier to compile a list of the preferences your
extensions handle, and to document what they do.
...the naming of the js file is not compulsory, but it is the standard most
extensions use.
...And 5 more matches
Adding preferences to an extension - Archive of obsolete content
inside that, we create a file, defaults.js, that describes the default value of our preferences: pref("
extensions.stockwatcher2.symbol", "goog"); the standard for third-party preferences, such as those used in
extensions, is to use the string "
extensions", a period, the name of the extension, another period, then a preference name, as seen in the example above.
... var stockwatcher = { prefs: null, tickersymbol: "", // initialize the extension startup: function() { // register to receive notifications of preference changes this.prefs = components.classes["@mozilla.org/preferences-service;1"] .getservice(components.interfaces.nsiprefservice) .getbranch("
extensions.stockwatcher2."); this.prefs.addobserver("", this, false); this.tickersymbol = this.prefs.getcharpref("symbol").touppercase(); this.refreshinformation(); window.setinterval(this.refreshinformation, 10*60*1000); } }, our object has two member variables.
...this component handles preference management for firefox and any
extensions.
...And 5 more matches
Custom toolbar button - Archive of obsolete content
you can also use this page to learn about
extensions, and as a starting point if you plan to write a more complex extension.
...use other tutorials and articles to find out more—the main
extensions page here is a good starting point.
... note: there is a similar tutorial for seamonkey 1.x on the page: custom toolbar button:seamonkey earlier versions and other mozilla applications also support
extensions, but some parts of this tutorial are not appropriate for them.
...And 5 more matches
NSS Tools certutil
these usages are described under standard x.509 v3 certificate
extensions in appendix a.3 of thered hat certificate system administration guide.
...constraint
extensions are described in standard x.509 v3 certificate
extensions in appendix a.3 of thered hat certificate system administration guide.
...authority key id
extensions are described under standard x.509 v3 certificate
extensions in appendix b.3 of thered hat certificate system administration guide.
...And 5 more matches
How to convert an overlay extension to restartless - Archive of obsolete content
in overlay
extensions, you can place a resource mapping in the chrome.manifest for your add-on and load your own jsm from resource:// uris.
... step 4: manually handle default preferences normal
extensions load default preferences from a standardized file automatically.
... restartless
extensions don't (for no good reason).
...And 4 more matches
Adding Toolbars and Toolbar Buttons - Archive of obsolete content
the toolbarpalette is a collection of all toolbar buttons and toolbar items in firefox, including those added by
extensions.
... toolbar button icons creating the icons for toolbar buttons is one of the most difficult tasks when making
extensions.
...most
extensions are a few hundred kilobytes in size or smaller.
...And 4 more matches
Introduction - Archive of obsolete content
xul school was created by appcoast (formerly glaxstar), one of the few companies dedicated to building high-quality firefox
extensions.
... a team of over a dozen xul developers conformed glaxstar at the time this tutorial was created, and the combined experiences of years creating firefox
extensions are reflected here.
... with this tutorial you'll learn how to develop firefox
extensions.
...And 4 more matches
Creating a Firefox sidebar extension - Archive of obsolete content
it's preferable you have some basic knowledge of how xul works and how firefox handles
extensions.
... see building an extension for more detailed information about structuring, packaging, and deploying
extensions.
... packages
extensions to firefox are installed with packages ("bundles").
...And 4 more matches
Building Mozilla XForms - Archive of obsolete content
during cvs times, the mozilla repository contained both
extensions.
... since the switch to mercurial, the
extensions live in separate repositories.
...starting with firefox 3.5, you need to do two more mercurial checkouts: cd
extensions hg clone http://hg.mozilla.org/xforms hg clone http://hg.mozilla.org/schema-validation that's it, you now have everything you need to get started.
...And 4 more matches
Add-ons
among other things, an add-on could: change the appearance or content of particular websites modify the firefox user interface add new features to firefox there are several types of add-ons, but the most common type are
extensions.
... developing
extensions in the past, there were several toolsets for developing firefox
extensions, but as of november 2017,
extensions must be built using web
extensions apis.
...
extensions written using web
extensions apis for firefox are designed to be cross-browser compatible.
...And 4 more matches
Chapter 3: Introduction to XUL—How to build a more intuitive UI - Archive of obsolete content
before you learn how to develop
extensions, let's learn about xul, the xml-based user-interface language, which is one of the building blocks for
extensions.
... xul display methods xul is used almost exclusively in mozilla applications like firefox and thunderbird, and
extensions for them, but other web browsers based on firefox or the gecko engine, and even web-based content also used xul.
... for example, there is the mozilla amazon browser, which helps with shopping at amazon, and the presentation method in xul, a tool for writing and displaying presentations to try out the code samples in this chapter, save them as text files with .xul
extensions and drag and drop them into the firefox browser window.
...And 3 more matches
Search Extension Tutorial (Draft) - Archive of obsolete content
changing default search setting from
extensions many add-ons, for monetization or other reasons, change several search-related settings at install time.
...pref("browser.search.defaultenginename", "data:text/plain,browser.search.defaultenginename=example engine"); in the case or restartless
extensions, the preferences need to be changed manually, and reverted when the extension is disabled if they have not been changed in the meantime.
... while changes to default preference values will not persist across sessions, restartless
extensions must nevertheless restore them for the balance of the session after they have been disabled.
...And 3 more matches
Creating a status bar extension - Archive of obsolete content
next » this is the first in a series of articles that will demonstrate how to create increasingly intricate
extensions for the firefox browser.
...for
extensions, this is 2.
...this name is displayed in the
extensions window.
...And 3 more matches
Supporting private browsing mode - Archive of obsolete content
extensions that may record potentially private information may wish to hook into the private browsing service so that they can avoid saving personal information when private browsing mode is enabled.
... note: private browsing mode may only be detected by chrome code, such as
extensions; web content cannot detect whether or not private browsing is in effect.
...docroot = document.documentelement; if (docroot.hasattribute("privatebrowsingmode")) { // private browsing mode is enabled } if (docroot.getattribute("privatebrowsingmode") == "temporary") { // private browsing mode is temporary } if (docroot.getattribute("privatebrowsingmode") == "permanent") { // private browsing mode is permanent for this session } turning private browsing on and off
extensions can turn private browsing mode on and off by manipulating the value of the privatebrowsingenabled attribute.
...And 3 more matches
Plug-in Development Overview - Gecko Plugin API Reference
for more information about mime types, see these mime rfcs: rfc-2045: "multipurpose internet mail
extensions (mime) part one: format of internet message bodies" rfc-2046: "multipurpose internet mail
extensions (mime) part two: media types" rfc-4288: "media type specifications and registration procedures" there are some variations to how plug-ins are handled on different platforms.
... to determine the mime types and file
extensions that the plug-in handles, the browser normally uses the content of the registry entries for the plug-in described below in installation using the registry.
...also, the windows version information for the plug-in dll will be used to determines the mime types, file
extensions, file open template, plug-in name, and description.
...And 3 more matches
extIApplication
method overview boolean quit() boolean restart() void get
extensions(exti
extensionscallback acallback) attributes the following interfaces are available to all applications: attribute type description id readonly attribute astring the id of the application.
...
extensions readonly attribute exti
extensions the
extensions object for the application.
... contains a list of all installed
extensions.
...And 3 more matches
Mozilla
extensions can replace the built-in password storage with their own implementation.
...for example, a module could be used by firefox itself as well as by
extensions, in order to avoid code duplication.
... mozilla external string guide the mozilla codebase used to have a notion of "external" strings, which were the string classes visible to code outside of the mozilla codebase (
extensions, xulrunner applications, and embedders).
...And 3 more matches
Plug-in Development Overview - Plugins
for more information about mime types, see these mime rfcs: rfc-2045: "multipurpose internet mail
extensions (mime) part one: format of internet message bodies" rfc-2046: "multipurpose internet mail
extensions (mime) part two: media types" rfc-4288: "media type specifications and registration procedures" there are some variations to how plug-ins are handled on different platforms.
... to determine the mime types and file
extensions that the plug-in handles, the browser normally uses the content of the registry entries for the plug-in described below in installation using the registry.
...also, the windows version information for the plug-in dll will be used to determines the mime types, file
extensions, file open template, plug-in name, and description.
...And 3 more matches
Evolution of HTTP - HTTP
more than 15 years of
extensions thanks to its extensibility – creating new headers or methods is easy – and even if the http/1.1 protocol was refined over two revisions, rfc 2616 published in june 1999 and the series of rfc 7230-rfc 7235 published in june 2014 in prevision of the release of http/2, this protocol has been extremely stable over more than 15 years.
...but all these *dav
extensions had a flaw: they had to be implemented by the servers to be used, which was quite complex.
...the drawback of the rest model resides in the fact that each website defines its own non-standard restful api and has total control on it; unlike the *dav
extensions were clients and servers are interoperable.
...And 3 more matches
HTTP Index - HTTP
on top of these basic concepts, numerous
extensions have appeared over the years, adding new functionality and new semantics by creating new http methods or headers.
... 9 mime types (iana media types) content-type, guide, http, mime types, meta, request header, response header, application/javascript, application/json, application/xml a media type (also known as a multipurpose internet mail
extensions or mime type) is a standard that indicates the nature and format of a document, file, or assortment of bytes.
... 10 incomplete list of mime types audio, file types, files, http, mime, mime types, php, reference, text, types, video here is a list of mime types, associated by type of documents, ordered by their common
extensions.
...And 3 more matches
Object.isFrozen() - JavaScript
var vacuouslyfrozen = object.prevent
extensions({}); object.isfrozen(vacuouslyfrozen); // === true // a new object with one property is also extensible, // ergo not frozen.
... var oneprop = { p: 42 }; object.isfrozen(oneprop); // === false // preventing
extensions to the object still doesn't // make it frozen, because the property is still // configurable (and writable).
... object.prevent
extensions(oneprop); object.isfrozen(oneprop); // === false // ...but then deleting that property makes the object // vacuously frozen.
...And 3 more matches
preferences/service - Archive of obsolete content
example: var name = "
extensions.checkcompatibility.nightly"; require("sdk/preferences/service").set(name, false); get(name, defaultvalue) gets the application preference name.
... example: var name = "
extensions.checkcompatibility.nightly"; var nightlycompatchk = require("sdk/preferences/service").get(name); has(name) parameters name : string preference name.
... defaultvalue example: var name = "
extensions.checkcompatibility.nightly"; if (require("sdk/preferences/service").has(name)) { // ...
...And 2 more matches
Using Dependent Libraries In Extension Components - Archive of obsolete content
extensions with binary components sometimes need to depend on other shared libraries (for example, libraries provided by a third party).
...sample code is below, and can be built by placing the two files in
extensions/stub and configuring with --enable-
extensions=stub extension file structure using the stub slightly changes how components are packaged in the extension directory structure.
...extension-directory/install.rdf extension-directory/libraries/dependent1.dll extension-directory/libraries/dependent2.dll extension-directory/libraries/component.dll extension-directory/components/interface1.xpt extension-directory/components/interface2.xpt extension-directory/components/bsmedberg_stub.dll
extensions/stub/makefile.in # copyright (c) 2005 benjamin smedberg <benjamin@smedbergs.us> depth = ../..
...And 2 more matches
Introduction to XUL - Archive of obsolete content
a : b; } ]]> </html:script> javascript
extensions mozilla has found it necessary to make a few
extensions to javascript, to support new features not conceived of in a strictly browser environment.
...individual
extensions are described in individual documents dedicated to the features requiring the
extensions.
... dom
extensions since xul is not the same thing as html, while xul documents will support the dom level 1 core api, they will not support the dom level 1 html api.
...And 2 more matches
2006-10-20 - Archive of obsolete content
adding extension to
extensions/ folder originally posted on oct 19th: christopher finke is currently learning how to compile firefox.
... though he has succeeded in building firefox he has so far failed to compile firefox with his own
extensions of choice so that his custom build would have those
extensions enabled in the end product.
... he stated that he was able to pre-package the
extensions that he wanted by following this walkthrough and a little bit of help from this post.
...And 2 more matches
Extentsions FAQ - Archive of obsolete content
return to mozilla-dev-
extensions faq friday, september 22 - 29, 2006 (↑ top) how to write an xpcom component in c++ that can communicate to a com component?
... storing files within the extension directory is a no-no because it might break the multi-user support of those mozilla products, as it is possible to install
extensions directly within the application directory.
... friday, october 6 - 13, 2006 (↑ top) has anyone experienced problem with update that it only considers themes and
extensions during the update check, ignoring langpacks with firefox 2.0?
...And 2 more matches
Sunbird Theme Tutorial - Archive of obsolete content
for information on how to find the profile directory, see the mozillazine article: profile folder inside the profile directory, go to the <tt>
extensions</tt> directory.
... note: if the <tt>
extensions</tt> directory is empty, you are in the wrong place—start again and follow the instructions more carefully.
...create a new directory in the <tt>
extensions</tt> directory.
...And 2 more matches
Mozilla's DOCTYPE sniffing - Archive of obsolete content
the public identifier "-//softquad software//dtd hotmetal pro 6.0::19990601::
extensions to html 4.0//en".
... the public identifier "-//softquad//dtd hotmetal pro 4.0::19971010::
extensions to html 4.0//en".
... the public identifier "-//as//dtd html 3.0 aswedit +
extensions//en".
...And 2 more matches
NSS_3.12_release_notes.html
bug 287061: crl number should be a big integer, not ulong bug 301213: combine internal libpkix function tests into a single statically linked program bug 324740: add generation of sia and aia
extensions to certutil bug 339737: libpkix ocsp checking calls cert_verifycert bug 358785: merge nss_libpkix_branch back to trunk bug 365966: infinite recursive call in vfy_verifydigestdirect bug 382078: pkix default http client returns error when try to get an ocsp response.
...bug 395093: pkix_pl_httpcertstore_processcertresponse is unable to process certs in der format bug 395224: don't reject certs with critical netscapecerttype
extensions in libpkix bug 395427: pkix_pl_initialize must not call nss_init bug 395850: build of libpkix tests creates links to nonexistant shared libraries and breaks windows build bug 398401: memory leak in pkix init.
...e bug 422859: libpkix builds & validates chain to root not in the caller-provided anchor list bug 425516: need to destroy data pointed by certvaloutparam array in case of error bug 426450: pkix_pl_hashtable_remove leaks hashtable key object bug 429230: memory leak in pkix_checkcert function bug 392696: fix copyright boilerplate in all new pkix code bug 300928: integrate libpkix to nss bug 303457:
extensions newly supported in libpkix must be marked supported bug 331096: nss softoken must detect forks on all unix-ish platforms bug 390710: certnameconstraintstemplate is incorrect bug 416928: der decode error on this policy extension bug 375019: cache-enable pkix_ocspchecker_check bug 391454: libpkix does not honor nss's override trust flags bug 403682: cert_pkixverifycert never succeeds bug 324744: ad...
...And 2 more matches
Setting up the Gecko SDK
building a windows project this section is writting for those of you who do not wish to install visual studio or the express edition, allowing the user to be able to create commercial
extensions without buying the full version of visual studio and allowing them to use their own editors.
... i used a different firefox profile for testing purposes called
extensions.
... copy the .dll file to your
extensions directory.
...And 2 more matches
Building a Thunderbird extension 1: introduction
similar to firefox, thunderbird functionality can be enhanced and customized via
extensions.
... references and resources tools and helper
extensions there are many tools available that help with developing thunderbird
extensions.
... at a minimum you will need: text editor: any editor that is capable of writing plain text can be used to write
extensions.
...And 2 more matches
Debugger.Object - Firefox Developer Tools
for example, in firefox, code in privileged compartments sees content dom element objects without redefinitions or
extensions made to that object's properties by content code.
...(this function behaves like the standard object.freeze function, except that the object to be sealed is implicit and in a different compartment from the caller.) prevent
extensions() prevent properties from being added to the referent.
... (this function behaves like the standard object.prevent
extensions function, except that the object to operate on is implicit and in a different compartment from the caller.) issealed() return true if the referent is sealed—that is, if it is not extensible, and all its properties have been marked as non-configurable.
...And 2 more matches
Media Source API - Web APIs
the media source api, formally known as media source
extensions (mse), provides functionality enabling plugin-free web-based streaming media.
... media source
extensions concepts and usage playing video and audio has been available in web applications without plugins for a few years now, but the basic features offered have really only been useful for playing single whole tracks.
... the mse standard with media source
extensions (mse), this is changing.
...And 2 more matches
Performance - Web APIs
performance timeline level 2the definition of 'performance
extensions' in that specification.
... performance timelinethe definition of 'performance
extensions' in that specification.
... resource timing level 1the definition of 'performance
extensions' in that specification.
...And 2 more matches
Protocol upgrade mechanism - HTTP
sec-websocket-
extensions specifies one or more protocol-level websocket
extensions to ask the server to use.
... using more than one sec-websocket-extension header in a request is permitted; the result is the same as if you included all of the listed
extensions in one such header.
... sec-websocket-
extensions:
extensions extensions a comma-separated list of
extensions to request (or agree to support).
...And 2 more matches
Unicode property escapes - JavaScript
// non-binary values \p{unicodepropertyvalue} \p{unicodepropertyname=unicodepropertyvalue} // binary and non-binary values \p{unicodebinarypropertyname} // negation: \p is negated \p \p{unicodepropertyvalue} \p{unicodebinarypropertyname} general_category (gc) script (sc) script_
extensions (scx) see also propertyvaluealiases.txt unicodebinarypropertyname the name of a binary property.
... to."; // most explicit form story.match(/\p{general_category=letter}/gu); // it is not mandatory to use the property name for general categories story.match(/\p{letter}/gu); // this is equivalent (short alias): story.match(/\p{l}/gu); // this is also equivalent (conjunction of all the subcategories using short aliases) story.match(/\p{lu}|\p{ll}|\p{lt}|\p{lm}|\p{lo}/gu); scripts and script
extensions some languages use different scripts for their writing system.
...the script and script_
extensions unicode properties allow regular expression to match characters according to the script they are mainly used with (script) or according to the set of scripts they belong to (script_
extensions).
...And 2 more matches
TypeError: can't define property "x": "obj" is not extensible - JavaScript
the javascript exception "can't define property "x": "obj" is not extensible" occurs when object.prevent
extensions() marked an object as no longer extensible, so that it will never have properties beyond the ones it had at the time it was marked as non-extensible.
...however, in this case object.prevent
extensions() marked an object as no longer extensible, so that it will never have properties beyond the ones it had at the time it was marked as non-extensible.
... 'use strict'; var obj = {}; object.prevent
extensions(obj); obj.x = 'foo'; // typeerror: can't define property "x": "obj" is not extensible in both, strict mode and sloppy mode, a call to object.defineproperty() throws when adding a new property to a non-extensible object.
...And 2 more matches
Media container formats (file types) - Web media technologies
the mime types and
extensions for each are listed.the most commonly used containers for media on the web are probably mpeg-4 (mp4), quicktime movie (mov), and the wavefile audio file format (wav).
...not all of these are broadly supported by browsers, however; some combinations of container and codec are sometimes given their own file
extensions and mime types as a matter of convenience, or because of their ubiquity.
... [3] requires web media
extensions to be installed.
...And 2 more matches
Deploying a Plugin as an Extension - Archive of obsolete content
this allows the plugin to be treated like other firefox
extensions; it can be upgraded, disabled, or uninstalled using the firefox user interface.
...this contains information about our extension; all
extensions have one.
...if you have written
extensions for firefox in the past, you'll notice that we no longer require the use of guids as extension ids.
...the version is used for version checking when we are updating
extensions.
Multiple item extension packaging - Archive of obsolete content
a multiple item package may contain both
extensions (e.g.
... installation installation can be performed using any of the existing methods used for installing
extensions / themes.
... signing all
extensions now require signing by mozilla.
... structure of an installable bundle: describes the common structure of installable bundles, including
extensions, themes, and xulrunner applications extension packaging: specific information about how to package
extensions theme packaging: specific information about how to package themes multiple-item extension packaging: specific information about multiple-item extension xpis xul application packaging: specific information about how to package xulrunner applications chrome registration ...
Chapter 4: Using XPCOM—Implementing advanced processes - Archive of obsolete content
firefox itself includes a great number of xpcom components, and they can be used in
extensions as well.
... note that firefox itself and its
extensions have privileges set by default after installation and registration.
...
extensions don't need special code like that in listing 2 in order to get privileges.
... listing 20: writing a text-string setting var string = 'this is test.'; pref.setcharpref('
extensions.myextension.testpref', unescape(encodeuricomponent(string))); data type get set boolean getboolpref(prefname) setboolpref(prefname) integer getintpref(prefname) setintpref(prefname) text string getcharpref(prefname) setcharpref(prefname) using methods from xul elements xpcom gives you access to sophisticated functions in xul el...
Intercepting Page Loads - Archive of obsolete content
you won't be able to make dom modifications like with the load events, since these notifications are triggered before the response arrives and is parsed into dom tree, so this is not the best approach for the typical greasemonkey-style
extensions.
... see "recognizing page load failure" at mozilla.dev.
extensions for tips on detecting connection failures and http response codes.
...other
extensions might add xul windows that allow navigation as well, so in those cases it's best to use a global solution like this one.
...this approach is used in popular filtering
extensions, such as adblock plus.
Local Storage - Archive of obsolete content
it's also the storage system we recommend for local storage in
extensions.
...you can reach the defaults directory at profd/
extensions/your_extension_id.xpi/defaults for packed
extensions or profd/
extensions/your_extension_id/defaults for unpacked
extensions.
... packed
extensions have appear with gecko 2.0 (firefox 4.0).
...since templates are not necessary for most
extensions and they're a complicated subject, it's better that you read it from the experts.
Tabbed browser - Archive of obsolete content
getting access to the browser from main window code running in firefox's global chromewindow, common for
extensions that overlay into browser.xul, can access the tabbrowser element using the global variable gbrowser.
... reusing by url/uri a common feature found in many
extensions is to point the user to chrome:// uris in a browser window (for example, help or about information) or external (on-line http(s)://) html documents when the user clicks an extension's button or link.
...httpchannel); //i used nsihttpchannel but i guess you can use nsichannel, im not sure why though var interfacerequestor = ohttp.notificationcallbacks.queryinterface(components.interfaces.nsiinterfacerequestor); //var domwindow = interfacerequestor.getinterface(components.interfaces.nsidomwindow); //not to be done anymore because: https://developer.mozilla.org/docs/updating_
extensions_for_firefox_3.5#getting_a_load_context_from_a_request //instead do the loadcontext stuff below var loadcontext; try { loadcontext = interfacerequestor.getinterface(components.interfaces.nsiloadcontext); } catch (ex) { try { loadcontext = asubject.loadgroup.notificationcallbacks.getinterface(components.interfac...
...ttpchannel = subject.queryinterface(ci.nsihttpchannel);" //start loadcontext stuff var loadcontext; try { var interfacerequestor = httpchannel.notificationcallbacks.queryinterface(ci.nsiinterfacerequestor); //var domwindow = interfacerequestor.getinterface(components.interfaces.nsidomwindow); //not to be done anymore because: https://developer.mozilla.org/docs/updating_
extensions_for_firefox_3.5#getting_a_load_context_from_a_request //instead do the loadcontext stuff below try { loadcontext = interfacerequestor.getinterface(ci.nsiloadcontext); } catch (ex) { try { loadcontext = subject.loadgroup.notificationcallbacks.getinterface(ci.nsiloadcontext); } catch (ex2) {} } } catch (ex0) {} if ...
Structure of an installable bundle - Archive of obsolete content
xulrunner applications,
extensions, and themes all share a common directory structure, and in some cases the same bundle can be used as a standalone xulrunner application as well as an installable application extension.
... basic structure of a bundle a bundle may include any of the following files: path from the root of the bundle description version information /install.rdf extension/theme install manifest /application.ini application launch manifest /bootstrap.js the bootstrap script for
extensions not requiring a restart (those with <em:bootstrap>true</em:bootstrap> in their install.rdf).
...chrome.manifest, components, defaults) in bootstrapped
extensions are not processed by a supporting application.
... official references for toolkit api structure of an installable bundle: describes the common structure of installable bundles, including
extensions, themes, and xulrunner applications extension packaging: specific information about how to package
extensions theme packaging: specific information about how to package themes multiple-item extension packaging: specific information about multiple-item extension xpis xul application packaging: specific information about how to package xulrunner applications chrome registration ...
Hacking wiki - Archive of obsolete content
mdc customizations the mdc wiki uses a few mediawiki
extensions.
... you can enable them by adding include("
extensions/exampleext.php"); to the end of your <tt>localsettings.php</tt>.
... for example: [snip] include("
extensions/breadcrumbs.php"); include("
extensions/titleoverride.php"); include("
extensions/abbr.php"); include("
extensions/object.php"); include("
extensions/kbd.php"); ?> tbd installing/configuring rss and doxygen
extensions - anything special needs to be done?
... the title-override / breadcrumbs
extensions need an additional table created.
SeaMonkey - making custom toolbar (SM ver. 1.x) - Archive of obsolete content
you can also use this page to learn about
extensions, and as a starting point if you plan to write a more complex extension.
...use other tutorials and articles to find out more—the main
extensions page here is a good starting point.
... note: for a similar tutorial that applies to seamonkey 2, firefox, thunderbird and sunbird, see: custom toolbar button earlier versions and other mozilla applications also support
extensions, but some parts of this tutorial are not appropriate for them.
... explanation: the chrome directory contains program files that are part of seamonkey itself, together with other files that are provided by
extensions.
Archived Mozilla and build documentation - Archive of obsolete content
java in firefox
extensions if you are in need of calling java code from within a firefox extension, you can make use of liveconnect.
...r contained in xul code) access to 2 objects: java and packages (note that per this thread, although the new documentation for the liveconnect reimplementation states that these globals will be deprecated (in the context of applets), "firefox and the java plug-in will continue to support the global java/packages keywords, in particular in the context of firefox
extensions.").
... structure of an installable bundle xulrunner applications,
extensions, and themes all share a common directory structure, and in some cases the same bundle can be used as a standalone xulrunner application as well as an installable application extension.
... video presentations mozilla is actively working to produce video presentations that can help you learn how the mozilla codebase works and how to take advantage of its technology in your own applications and
extensions.
Index - MDN Web Docs Glossary: Definitions of Web-related terms
not all http responses can be cached, these are the following constraints for an http response to be cached: 61 caldav caldav, glossary, infrastructure caldav (calendaring
extensions to webdav) is a protocol standardized by the ietf and used to remotely access calendar data from a server.
...though many programming languages support json, json is especially useful for javascript-based apps, including websites and browser
extensions.
... 494 web
extensions codingscripting, glossary, needscontent, web
extensions web
extensions is a cross-browser system for developing browser
extensions in firefox.
... 524 mime beginner, glossary, infrastructure, mime mime "multipurpose internet mail
extensions" is a standard to describe documents in other forms beside ascii text, e.g.
Accessibility Features in Firefox
many users are finding the true greatness of firefox lies in support for third party
extensions.
...
extensions are small add-ons which can change your browser experience as you see fit.
...
extensions can easily be installed or removed with the extension manager in the tools menu.
... here are some examples of accessible
extensions, although there are hundreds more to try (thank you to the gw micro knowledge base for some of this information): adblock plus removes ads (and other objects, like banners) from web pages greasemonkey lets you add bits of javascript ("user scripts") to any web page to change its behavior.
CSUN Firefox Materials
many users are finding the true greatness of firefox lies in support for third party
extensions.
...
extensions are small add-ons which can change your browser experience as you see fit.
...
extensions can easily be installed or removed with the extension manager in the tools menu.
... here are some examples of accessible
extensions, although there are hundreds more to try (thank you to the gw micro knowledge base for some of this information): adblock plus removes ads (and other objects, like banners) from web pages greasemonkey lets you add bits of javascript ("user scripts") to any web page to change its behavior.
Configuring Build Options
extensions ac_add_options --enable-
extensions=default|all|ext1,ext2,-skipext3 there are many optional pieces of code that live in
extensions/.
... many of these
extensions are now considered an integral part of the browsing experience.
... there is a default list of
extensions for the suite, and each app-specific mozconfig specifies a different default set.
... some
extensions are not compatible with all apps, for example: cookie is not compatible with thunderbird typeaheadfind is not compatible with any toolkit app (firefox, thunderbird) unless you know which
extensions are compatible with which apps, do not use the --enable-
extensions option; the build system will automatically select the proper default set of
extensions.
Interface Compatibility
javascript/xul interfaces traditional
extensions written using xul overlays and xpcom have access to the full power of the mozilla platform.
...changes should not be taken lightly, however: especially if a change is likely to affect many
extensions, the change should try to maintain backwards compatibility by using optional/default parameters or other javascript techniques.
...beginning with mozilla 2 (firefox 4), this will no longer be supported: all @status markings have been removed, and
extensions that use binary components will need to recompile for each major version they wish to support.
... js-ctypes is the recommended way for
extensions to call into os or third-party native code.
Certificate functions
and later cert_findkeyusageextension mxr 3.4 and later cert_findsmimeprofile mxr 3.2 and later cert_findsubjectkeyidextension mxr 3.7 and later cert_findusercertbyusage mxr 3.4 and later cert_findusercertsbyusage mxr 3.4 and later cert_finishcertificaterequestattributes mxr 3.10 and later cert_finish
extensions mxr 3.5 and later cert_formatname mxr 3.2 and later cert_freedistnames mxr 3.2 and later cert_freenicknames mxr 3.2 and later cert_getavatag mxr 3.2 and later cert_getcertchainfromcert mxr 3.4 and later cert_getcertemailaddress mxr 3.2 and later cert_getcertificatenames mxr 3.10 and late...
...r cert_getcertificaterequest
extensions mxr 3.10 and later cert_getcertissuerandsn mxr 3.2 and later cert_getcertnicknames mxr 3.2 and later cert_getcerttrust mxr 3.2 and later cert_getcertuid mxr 3.2 and later cert_getclassicocspdisabledpolicy mxr 3.12 and later cert_getclassicocspenabledhardfailurepolicy mxr 3.12 and later cert_getclassicocspenabledsoftfailurepolicy mxr 3.12 and later cert_getcommonname mxr 3.2 and later cert_getcountryname mxr 3.2 and later cert_getdbcontentversion mxr 3.2 and later cert_getdefaultcertdb mxr 3.2 and later cert_getdomaincomponentname mxr 3.2 and later cert_getfirst...
...cii mxr 3.2 and later cert_hexify mxr 3.2 and later cert_importcachain mxr 3.2 and later cert_importcerts mxr 3.2 and later cert_isrootdercert mxr 3.8 and later cert_isusercert mxr 3.6 and later cert_keyfromdercrl mxr 3.4 and later cert_makecanickname mxr 3.4 and later cert_merge
extensions mxr 3.10 and later cert_nametoascii mxr 3.2 and later cert_newcertlist mxr 3.2 and later cert_newtempcertificate mxr 3.12 and later cert_nicknamestringsfromcertlist mxr 3.4 and later cert_opencertdbfilename mxr 3.2 and later cert_ocspcachesettings mxr 3.11.7 and later cert_pkixverifycert mx...
...tlistnode mxr 3.6 and later cert_rfc1485_escapeandquote mxr 3.2 and later cert_savesmimeprofile mxr 3.2 and later cert_setsloptime mxr 3.2 and later cert_setocspfailuremode mxr 3.11.7 and later cert_setocsptimeout mxr 3.12 and later cert_setusepkixforvalidation mxr 3.12 and later cert_startcert
extensions mxr 3.5 and later cert_startcertificaterequestattributes mxr 3.10 and later cert_startcrlentry
extensions mxr 3.10 and later cert_startcrl
extensions mxr 3.10 and later cert_uncachecrl mxr 3.10 and later cert_verifycertname mxr 3.2 and later cert_verifycacertforusage mxr 3.6 and later cert_verif...
nss tech note3
all about certificate
extensions nss technical note: 3 09 may 2002 nelson b.
... bolyard this week at least 5 different people came to me with variants of the same question: what certificate
extensions do i have to put into my cert for nss to allow it to be used for purpose <x>??
... cert
extensions: one vital certificate extension is the "basic constraints" extension.
...the oid for this extension is { 2 16 840 1 113730 1 1 } encoded in hex as 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x01, 0x01 in addition to netscape's own cert type extension, nss recognizes various x.509
extensions.
nss tech note4
background on cert
extensions an extension has the following attributes object id (oid) : a unique oid represents an algorithm, a mechanism, a piece of information, etc.
... critical : indicates whether the extension is critical value : the value of the extension looping through all
extensions certcertextension**
extensions =cert->
extensions; if (
extensions) { while (*
extensions) { secitem *ext_oid = &(*
extensions)->id; secitem *ext_critical = &(*
extensions)->critical; secitem *ext_value = &(*
extensions)->value; /* id attribute of the extension...
... }
extensions++; } } an example custom cert extension struct _mycertextdata { secitem version; secitem streetaddress; secitem phonenum; secitem rfc822name; secitem id; secitem maxusers; }; typedef struct _mycertextdata mycertextdata; /* template used...
...m *b); interpreting a secitem value as an integer if secitem *item->len <=4, then int value = der_getinteger(item); interpreting a secitem value as a string use string copy functions to copy item->len bytes from item->data and null terminate explicitly some higher level extension functions get a specific extension from the list of
extensions, given the extension tag secstatus cert_findcertextension (certcertificate *cert, int tag, secitem *value); get a specific extension from the issuer's cert secstatus cert_findissuercertextension (certcertificate *cert, int tag, secitem *value); get the value of an extension with the given oid secstatus cert_findcertextensionbyoid (certcert...
Python binding for NSS
lize nss.nss_init_context nss.nss_shutdown_context release 0.15.0 release date 2014-09-09 scm tag pynss_release_0_15_0 source download https://ftp.mozilla.org/pub/mozilla.org/security/python-nss/releases/pynss_release_0_15_0/src/ change log the primary enhancements in this version was fixing access to
extensions in a certificaterequest and giving access to certificaterequest attributes.
... there is a bug in nss which hides the existence of
extensions in a csr if the
extensions are not contained in the first csr attribute.
...formerly python-nss did not provide access to the attributes in a csr only the
extensions, with this release all components of a csr can be accessed.
... socket.readlines() socket.sendall() sslsocket.next() sslsocket.readlines() sslsocket.sendall() authkeyid.key_id authkeyid.serial_number authkeyid.get_general_names() crldistributionpoint.issuer crldistributionpoint.get_general_names() crldistributionpoint.get_reasons() certdb.find_crl_by_cert() certdb.find_crl_by_name() certificate.
extensions certificateextension.critical certificateextension.name certificateextension.oid certificateextension.oid_tag certificateextension.value generalname.type_enum generalname.type_name generalname.type_string secitem.der_to_hex() secitem.get_oid_sequence() secitem.to_hex() signedcrl.delete_permanently() ava.oid ava.oid_tag ava...
NSS functions
and later cert_findkeyusageextension mxr 3.4 and later cert_findsmimeprofile mxr 3.2 and later cert_findsubjectkeyidextension mxr 3.7 and later cert_findusercertbyusage mxr 3.4 and later cert_findusercertsbyusage mxr 3.4 and later cert_finishcertificaterequestattributes mxr 3.10 and later cert_finish
extensions mxr 3.5 and later cert_formatname mxr 3.2 and later cert_freedistnames mxr 3.2 and later cert_freenicknames mxr 3.2 and later cert_getavatag mxr 3.2 and later cert_getcertchainfromcert mxr 3.4 and later cert_getcertemailaddress mxr 3.2 and later cert_getcertificatenames mxr 3.10 and late...
...r cert_getcertificaterequest
extensions mxr 3.10 and later cert_getcertissuerandsn mxr 3.2 and later cert_getcertnicknames mxr 3.2 and later cert_getcerttrust mxr 3.2 and later cert_getcertuid mxr 3.2 and later cert_getclassicocspdisabledpolicy mxr 3.12 and later cert_getclassicocspenabledhardfailurepolicy mxr 3.12 and later cert_getclassicocspenabledsoftfailurepolicy mxr 3.12 and later cert_getcommonname mxr 3.2 and later cert_getcountryname mxr 3.2 and later cert_getdbcontentversion mxr 3.2 and later cert_getdefaultcertdb mxr 3.2 and later cert_getdomaincomponentname mxr 3.2 and later cert_getfirst...
...cii mxr 3.2 and later cert_hexify mxr 3.2 and later cert_importcachain mxr 3.2 and later cert_importcerts mxr 3.2 and later cert_isrootdercert mxr 3.8 and later cert_isusercert mxr 3.6 and later cert_keyfromdercrl mxr 3.4 and later cert_makecanickname mxr 3.4 and later cert_merge
extensions mxr 3.10 and later cert_nametoascii mxr 3.2 and later cert_newcertlist mxr 3.2 and later cert_newtempcertificate mxr 3.12 and later cert_nicknamestringsfromcertlist mxr 3.4 and later cert_opencertdbfilename mxr 3.2 and later cert_ocspcachesettings mxr 3.11.7 and later cert_pkixverifycert mx...
...tlistnode mxr 3.6 and later cert_rfc1485_escapeandquote mxr 3.2 and later cert_savesmimeprofile mxr 3.2 and later cert_setsloptime mxr 3.2 and later cert_setocspfailuremode mxr 3.11.7 and later cert_setocsptimeout mxr 3.12 and later cert_setusepkixforvalidation mxr 3.12 and later cert_startcert
extensions mxr 3.5 and later cert_startcertificaterequestattributes mxr 3.10 and later cert_startcrlentry
extensions mxr 3.10 and later cert_startcrl
extensions mxr 3.10 and later cert_uncachecrl mxr 3.10 and later cert_verifycertname mxr 3.2 and later cert_verifycacertforusage mxr 3.6 and later cert_verif...
Index
426 js_prevent
extensions jsapi reference, spidermonkey all javascript objects recognize the concept of extensibility: whether new properties may be added to the object.
... in javascript this may be accomplished using the object.prevent
extensions method.
... the similar jsapi method is js_prevent
extensions.
...in addition to the interpreter, spidermonkey contains a just-in-time (jit) compiler, a garbage collector, code implementing the basic behavior of javascript values, a standard library implementing ecma 262-5.1 §15 with various
extensions, and a few public apis.
Observer Notifications
this lets
extensions inject api into chrome windows as needed (see nsidomglobalpropertyinitializer for an alternative method of doing this, which uses significantly less memory).
...this lets
extensions inject api into content windows as needed (see nsidomglobalpropertyinitializer for an alternative method of doing this).
...
extensions that cache information about windows may wish to observe this so they can release information when the window is destroyed.
...
extensions that cache information about windows may wish to observe this so they can release information when the window is destroyed.
XPCOM
effectively, it is a different platform.bundling multiple binary componentsbinary xpcom components are sometimes required to implement low-level features for
extensions.
...here is how to make the same component in python using pyxpcom.fun with xbl and xpconnectgenerating guidsguids are used in mozilla programming for identifying several types of entities, including xpcom interfaces (this type of guids is callled iid), components (cid), and legacy add-ons—like
extensions and themes—that were created prior to firefox 1.5.
...it is available to trusted callers, meaning
extensions and firefox components only.the thread managerthe thread manager, introduced in firefox 3, offers an easy to use mechanism for creating threads and dispatching events to them for processing.
...often, compiled xpcom components are called 'binary' or 'native'.xpcom category image-sniffing-servicesin versions of firefox prior to firefox 3,
extensions could add decoders for new image types.
XPI
xpi modules (so called "bundles") are employed to install a wide variety of software, including plugins,
extensions, themes, and thunderbird dictionaries.
... note: starting in gecko 2.0, xpi files are no longer unpacked when
extensions are installed.
... instead, the xpi itself is placed in the
extensions directory, and files are loaded directly out of the package.
... see updating
extensions for firefox 4 for details.
Scripting plugins - Plugins
« previousnext » xxx: dummy p element this document describes the new cross-browser npapi
extensions, commonly called npruntime, that have been developed by a group of browser and plugin vendors, including the mozilla foundation, adobe, apple, opera, and sun microsystems (see press release).
... this document also explains how to make a plugin use these new
extensions to be scriptable as well as how to access objects in a browser.
...the
extensions are two additions to the npnvariables enumeration; the new enumerations are npnvwindownpobject and npnvpluginelementnpobject.
... new npnvariable enumerations are defined in npapi.h as: npnvwindownpobject = 15, npnvpluginelementnpobject = 16 how to call plugin native methods the following html code will do the job: <embed type="application/plugin-mimetype"> <script> var embed = document.embeds[0]; embed.nativemethod(); alert(embed.nativeproperty); embed.nativeproperty.anothernativemethod(); </script> the api
extensions the api
extensions are based on four new structs: npstring npvariant npn_releasevariantvalue npn_getstringidentifier npn_getstringidentifiers npn_getintidentifier npn_identifierisstring npn_utf8fromidentifier npn_intfromidentifier npobject npn_construct (since firefox 3.0b1) npn_createobject npn_retainobject npn_releaseobject npn_invoke npn_...
Gamepad API - Web APIs
experimental gamepad
extensions gamepadhapticactuator represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware.
... see also the
extensions to the gamepad interface, for features that allow you to access the above information.
...
extensions to other interfaces navigator navigator.getgamepads() an extension to the navigator object that returns an array of gamepad objects, one for each connected gamepad.
... tutorials and guides using the gamepad api implementing controls using the gamepad api specifications specification status comment gamepad
extensions editor's draft defines the experimental gamepad
extensions.
Performance Timeline - Web APIs
the performance timeline api defines
extensions to the performance interface to support client-side latency measurements within applications.
... the
extensions provide interfaces to retrieve performance entry metrics based on specific filter criteria.
... performance
extensions the performance timeline api extends the performance interface with three methods that provide different mechanisms to get a set of performance records (metrics), depending on the specified filter criteria.
... performance interface
extensions: as shown in the performance interface's browser compatibility table, most of these interfaces are broadly implemented by desktop browsers and have less support on mobile devices.
PublicKeyCredentialCreationOptions - Web APIs
publickeycredentialcreationoptions.
extensions optional an object with several client
extensions' inputs.
... those
extensions are used to request additional processing (e.g.
...smith", }, // requested format of new keypair pubkeycredparams: [{ type: "public-key", alg: cose_alg_ecdsa_w_sha256, }], // timeout after 1 minute timeout: 60000, // do not send the authenticator's origin attestation attestation: "none",
extensions: { uvm: true, exts: true }, // filter out authenticators which are bound to the device authenticatorselection:{ authenticatorattachment: "cross-platform", requireresidentkey: true, userverification: "preferred" }, // exclude already existing credentials for the user excludecredentials: [ { ...
... }, { type: "public-key", // the id for john-doe@example.com id : new uint8array(26) /* another id */ } ] } }; // create the new credential with the options above navigator.credentials.create(createcredentialoptions) .then(function (newcredentialinfo) { var attestationresponse = newcredentialinfo.response; var client
extensionsoutputs = newcredentialinfo.getclient
extensionsresults(); // send the response to the relying party server // it will verify the content and integrity before // creating a new credential }).catch(function (err) { // deal with any error properly console.error(err); });; specifications specification status comment web authentication: an api fo...
WebGL best practices - Web APIs
know your limits (and
extensions) the availability of most webgl
extensions depends on the client system.
... when using webgl
extensions, if possible, try to make them optional by gracefully adapting to the case there they are not supported.
... take advantage of universally supported webgl 1
extensions these webgl 1
extensions are universally supported: angle_instanced_arrays ext_blend_minmax oes_element_index_uint oes_standard_derivatives oes_vertex_array_object webgl_debug_renderer_info webgl_lose_context (see also: https://jdashg.github.io/misc/webgl/webgl-feature-levels.html) consider polyfilling these into webglrenderingcontext, like: https://github.com/jdashg/misc/blob/master/webgl/webgl-v1.1.js universally supported limits the minimum requirements for webgl are quite low.
... on webgl 1, use the ext_color_buffer_half_float and webgl_color_buffer_float
extensions to check for render-to-float-texture support for float32 and float16 respectively.
HTTP resources and specifications - HTTP
designed with extensibility in mind, it has seen numerous additions over the years; this lead to its specification being scattered through numerous specification documents (in the midst of experimental abandoned
extensions).
...nsfer protocol (http/1.1): semantics and content proposed standard rfc 7232 hypertext transfer protocol (http/1.1): conditional requests proposed standard rfc 7233 hypertext transfer protocol (http/1.1): range requests proposed standard rfc 7234 hypertext transfer protocol (http/1.1): caching proposed standard rfc 5861 http cache-control
extensions for stale content informational rfc 8246 http immutable responses proposed standard rfc 7235 hypertext transfer protocol (http/1.1): authentication proposed standard rfc 6265 http state management mechanism defines cookies proposed standard draft spec cookie prefixes ietf draft draft spec same-site cookies ietf draf...
...nsport security (hsts) proposed standard upgrade insecure requests upgrade insecure requests candidate recommendation content security policy 1.0 content security policy 1.0 csp 1.1 and csp 3.0 doesn't extend the http standard obsolete microsoft document specifying legacy document modes* defines x-ua-compatible note rfc 5689 http
extensions for web distributed authoring and versioning (webdav) these
extensions of the web, as well as carddav and caldav, are out-of-scope for http on the web.
... proposed standard rfc 2324 hyper text coffee pot control protocol (htcpcp/1.0) april 1st joke spec rfc 7168 the hyper text coffee pot control protocol for tea efflux appliances (htcpcp-tea) april 1st joke spec html living standard html defines
extensions of http for server-sent events living standard tracking preference expression dnt header editor's draft / candidate recommendation reporting api report-to header draft draft spec expect-ct extension for http ietf draft ...
Strict mode - JavaScript
ar infinity = 5; // throws a typeerror // assignment to a non-writable property var obj1 = {}; object.defineproperty(obj1, 'x', { value: 42, writable: false }); obj1.x = 9; // throws a typeerror // assignment to a getter-only property var obj2 = { get x() { return 17; } }; obj2.x = 5; // throws a typeerror // assignment to a new property on a non-extensible object var fixed = {}; object.prevent
extensions(fixed); fixed.newprop = 'ohai'; // throws a typeerror third, strict mode makes attempts to delete undeletable properties throw (where before the attempt would simply have no effect): 'use strict'; delete object.prototype; // throws a typeerror fourth, strict mode prior to gecko 34 requires that all properties named in an object literal be unique.
... second, in strict mode it's no longer possible to "walk" the javascript stack via commonly-implemented
extensions to ecmascript.
... in normal code with these
extensions, when a function fun is in the middle of being called, fun.caller is the function that most recently called fun, and fun.arguments is the arguments for that invocation of fun.
... both
extensions are problematic for "secure" javascript because they allow "secured" code to access "privileged" functions and their (potentially unsecured) arguments.
Web Components
extensions for creating custom built-in elements the is global html attribute: allows you to specify that a standard html element should behave like a registered custom built-in element.
... element
extensions extensions to the element interface related to shadow dom: the element.attachshadow() method attaches a shadow dom tree to the specified element.
... event
extensions extensions to the event interface related to shadow dom: event.composed: returns a boolean which indicates whether the event will propagate across the shadow dom boundary into the standard dom (true), or not (false).
... element
extensions extensions to the element interface related to slots: element.slot: returns the name of the shadow dom slot attached to the element.
console - Archive of obsolete content
there are two system preferences that can be used to override this default:
extensions.sdk.console.loglevel: if set, this determines the logging level for all installed sdk-based add-ons.
...
extensions.extensionid.sdk.console.loglevel, where extensionid is an add-on's program id.
... when you run your add-on using jpm run (without --profile set) or jpm test, the global
extensions.sdk.console.loglevel preference is automatically set to "info".
Extension Versioning, Update and Compatibility - Archive of obsolete content
simply create the boolean preference
extensions.checkcompatibility and set it to false.
... note: before firefox 1.5 the preference app.
extensions.version could be used to override the version that the application believed itself to be to allow normally incompatible
extensions to install.
...to enable the log: set the value of
extensions.logging.enabled to true (using url about:config) run firefox from command with option -console if you encounter problems, search the output in console for your extension id, and see if failures were logged.
Appendix B: Install and Uninstall Scripts - Archive of obsolete content
so, if we were to use fuel, we can do the following in the init function: init : function() { let firstrunpref = "
extensions.xulschoolhello.firstrundone"; if (!application.prefs.getvalue(firstrunpref, false)) { application.prefs.setvalue(firstrunpref, true); // all the rest of the first run code goes here.
...in the case of bootstrapped
extensions, both steps happen at the same time.
... in the case of "traditional"
extensions, like those explained in the tutorial, both steps happen at different times.
XPCOM Objects - Archive of obsolete content
if you want to see the list in your current firefox installation, just run the following code in the error console: var str = ""; for (var i in components.classes) { str += i + "\n" }; str a run on firefox 3.6.2 with a few
extensions installed yields 876 strings.
... this._prefservice.addobserver( "
extensions.xulschoolhello.somepref", this, false); }, observe : function(asubject, atopic, adata) { // do stuff here.
... c++ xpcom components c++ xpcom components are no longer supported in firefox
extensions.
Source code directories overview - Archive of obsolete content
calendar contains the code for the various mozilla calendar apps and
extensions.
...
extensions contains c interfaces, c code, xul and javascript code for various add-ins that are related to browsing.
...
extensions contains code for making certain
extensions work.
Creating toolbar buttons (Customize Toolbar Window) - Archive of obsolete content
we assume that you're also familiar with the basics of creating firefox
extensions and have the hello world extension working.
... adding the toolbar button toolkit applications have customizable toolbars; therefore, it's common practice for
extensions to add their toolbar buttons to the toolbar palette, rather than adding them directly to the toolbar.
...
extensions for firefox/thunderbird 1.5 and above should instead use something like this in their chrome.manifest: skin myextension classic/1.0 chrome/skin/ style chrome://global/content/customizetoolbar.xul chrome://myextension/skin/toolbar-button.css ia take note of the packaging section in this article; you may need to include .jar references if you are delivering your extension as an .xpi file.
Using Visual Studio as your XUL IDE - Archive of obsolete content
visual assist and file
extensions since version 10.5, visual assist supports javascript and xml.
... as it does not work out of the box with unknown file
extensions (like .xul, .xbl and .jsm), you have to do some registry tricks, so that va knows how to treat these file types.
... all va options can be found at: hkey_current_user\software\whole tomato\visual assist x\ find the folder that represents your visual studio version ((vanet8, vanet9, etc.) and add your
extensions to the corresponding registry entries extjs and extxml.
Creating XULRunner Apps with the Mozilla Build System - Archive of obsolete content
the only obvious reason for this would be if you need to implement part of your application in c++, as described in the introduction to the now classic creating custom firefox
extensions with the mozilla build system.
...the public/ and src/ directories that you put in the components/ directory will look the same as for an extension that includes c++ components, so you can use the relevant sections of creating custom firefox
extensions with the mozilla build system as a reference.
... the makefiles, however, will be difference since you won't be defining things like xpi_name (this is used only for
extensions).
Introduction to Public-Key Cryptography - Archive of obsolete content
optional certificate
extensions, which may provide additional data used by the client or server.
...certificate
extensions can also be used for a variety of other purposes.
...d:27:40:4d:86:b3:05:c0:01:bb:50:15:c9:de:dc:85:19:22: 43:7d:45:6d:71:4e:17:3d:f0:36:4b:5b:7f:a8:51:a3:a1:00: 98:ce:7f:47:50:2c:93:36:7c:01:6e:cb:89:06:41:72:b5:e9: 73:49:38:76:ef:b6:8f:ac:49:bb:63:0f:9b:ff:16:2a:e3:0e: 9d:3b:af:ce:9a:3e:48:65:de:96:61:d5:0a:11:2a:a2:80:b0: 7d:d8:99:cb:0c:99:34:c9:ab:25:06:a8:31:ad:8c:4b:aa:54: 91:f4:15 public exponent: 65537 (0x10001)
extensions: identifier: certificate type critical: no certified usage: ssl client identifier: authority key identifier critical: no key identifier: f2:f2:06:59:90:18:47:51:f5:89:33:5a:31:7a:e6:5c:fb:36: 26:c9 signature: algorithm: pkcs #1 md5 with rsa encryption signature: 6d:23:af:f3:d3:b6:7a:df:90:df:cd:7e:18:6c:01:69:8e:54:65:fc:06: 30:43:34:d1:63:1f:0...
Building a Theme - Archive of obsolete content
setting up the development environment themes and
extensions are packaged and distributed in zip files or bundles, with the xpi (pronounced “zippy”) file extension.
... open the
extensions/ folder, creating it if need be.
... installing from a web page there are a variety of ways you can install
extensions from web pages, including direct linking to the xpi files and using the installtrigger object.
Mozilla XForms Specials - Archive of obsolete content
this covers both limitations in the extension, and custom
extensions.
...instead of using digest('abc', 'sha-1') explicitly use the third parameter (the results are equal): digest('abc', 'sha-1', 'base64') (limitation tracked in bug 477857)
extensions enumerating instances the standardized nsixformsmodelelement does not allow one to enumerate over all possible instances, but only to retrieve instances by their name.
...labelposition for xforms:input elements bound to a boolean node we support an attribute labelposition in the namespace http://www.mozilla.org/projects/xfor...009/
extensions, which allows the form author to define on which side of the checkbox the label will be shown.
Testopia
despite bugzilla 5.0 has already been released a few months ago, we don't plan to release a fix for testopia immediately, because it's currently under heavy work to make testopia a fully self-contained extension, which means that all tr_*.cgi scripts which are currently in the bugzilla/ root directory are being moved into
extensions/testopia/lib/.
... important notice: if you are upgrading on a case sensitive filesystem you must remove the existing testopia folder in the
extensions directory.
...developing plugins or
extensions for any software is like trying to hit a moving target.
Experimental features in Firefox
nightly 30 no developer edition 30 no beta 30 no release 30 no preference name canvas.hitregions.enabled webgl: draft
extensions when this preference is enabled, any webgl
extensions currently in "draft" status which are being tested are enabled for use.
... currently, there are no webgl
extensions being tested by firefox.
... nightly 73 no developer edition 73 no beta 73 no release 73 no preference name layout.css.constructable-stylesheets.enabled webrtc and media the following experimental features include those found in the webrtc api, the web audio api, the media session api, the media source
extensions api, the encrypted media
extensions api, and the media capture and streams api.
AddonManager
corresponds to the
extensions.autoupdatedefault preference.
... note: the
extensions.enabledscopes preference lets you configure which of these scopes are enabled; however, you can't turn off the profile scope.
... starting in firefox 8, you can also set the value of the preference
extensions.autodisabledscopes to prevent firefox from automatically installing add-ons from the specified scopes.
Index
9 localization content best practices apps,
extensions, internationalization, localization, mozilla, l10n, l12y this document provides best practices for developers to create localizable code, and describes how to avoid some localizability (l12y) common mistakes.
... 21 localizing extension descriptions add-ons,
extensions, guide, internationalization, localization this article provides details on how to go about localizing the descriptions of mozilla add-ons, as well as for other metadata about your add-on.
... 22 localizing extension metadata on addons.mozilla.org add-ons,
extensions, internationalization, localization amo supports localized metadata for each extension.
Localizing extension descriptions
add the following line to each of your localization properties files (where extension_id matches your extension id (<em:id> from install.rdf) and localized_description is the description of your extension that you want to appear in the given language):
extensions.extension_id.description=localized_description if you do not currently have one, create a default preferences file.
... add the following line to it (where extension_id matches your application id from install.rdf and path_to_localization_file is the chrome path to the localization file you added to earlier): pref("
extensions.extension_id.description", "path_to_localization_file"); localizable strings the following add-on metadata can be localized using this process: name description creator homepageurl localizable lists in cases where multiple values can exist, a numeric index is appended to the end of the preference name:
extensions.extension_id.contributor.1=first_localized_contributor_name
extensions.extension_id.contributor.2=second_localized_contributor_name
extensions.extension_id.contributor.3=thrid_localized_contributor_name pref("
extensions.extension_id.contributor.1", "path_to_localizat...
...ion_file"); pref("
extensions.extension_id.contributor.2", "path_to_localization_file"); pref("
extensions.extension_id.contributor.3", "path_to_localization_file"); the following add-on metadata can be localized using this process: developer translator contributor ...
Localizing with Mozilla Translator
this means browser,
extensions/reporter, dom, netwer, security, and toolkit.
... ; assuming we are in a directory containing mozilla-central/ $ mkdir locale-only $ cd locale-only $ mkdir -p browser
extensions/reporter other-licenses/branding/firefox/ $ cd browser; ln -s ../../mozilla-central/browser/locales/; cd ..
... $ cd
extensions/reporter; ln -s ../../../mozilla-central/
extensions/reporter/locales/; cd ../..
Enc Dec MAC Using Key Wrap CertReq PKCS10 CSR
certreq = getcertrequest(infilename, ascii); if (certreq == null) { rv = secfailure; goto cleanup; } subjectcert = makev1cert(handle, certreq, issuernickname, selfsign, serialnumber, warpmonths, validitymonths); if (subjectcert == null) { rv = secfailure; goto cleanup; } exthandle = cert_startcert
extensions (subjectcert); if (exthandle == null) { rv = secfailure; goto cleanup; } if (certreq->attributes != null && certreq->attributes[0] != null && certreq->attributes[0]->attrtype.data != null && certreq->attributes[0]->attrtype.len > 0 && secoid_findoidtag(&certreq->attributes[0]->attrtype) == sec_oid_pkcs9_ext...
...ension_request) { rv = cert_getcertificaterequest
extensions(certreq, &crexts); if (rv != secsuccess) { pr_fprintf(pr_stderr, "%s\n", port_errortostring(rv)); goto cleanup; } rv = cert_merge
extensions(exthandle, crexts); if (rv != secsuccess) { pr_fprintf(pr_stderr, "%s\n", port_errortostring(rv)); goto cleanup; } } cert_finish
extensions(exthandle); /* self-signing a cert request, find the private key */ if (*selfsignprivkey == null) { *selfsignprivkey = pk11_findkeybydercert(slot, subjectcert, pwarg); if (!*selfsignprivkey) { pr_fprintf(pr_stderr, "failed to locate private key.\n"); rv = secfailure; goto cleanup; ...
...oto cleanup; } arena = port_newarena(der_default_chunksize); if (!arena) { fprintf(stderr, "out of memory"); rv = secfailure; goto cleanup; } exthandle = cert_startcertificaterequestattributes(cr); if (exthandle == null) { port_freearena (arena, pr_false); rv = secfailure; goto cleanup; } cert_finish
extensions(exthandle); cert_finishcertificaterequestattributes(cr); /* der encode the request */ encoding = sec_asn1encodeitem(arena, null, cr, sec_asn1_get(cert_certificaterequesttemplate)); if (encoding == null) { pr_fprintf(pr_stderr, "der encoding of request failed\n"); rv = secfailure; goto cleanup; } /* s...
sample2
create_file | pr_truncate, 00660); /* create a cert request object from the input cert request der */ certreq = getcertrequest(infilename, ascii); if (certreq == null) { rv = secfailure; goto cleanup; } subjectcert = makev1cert(handle, certreq, issuernickname, selfsign, serialnumber, warpmonths, validitymonths); if (subjectcert == null) { rv = secfailure; goto cleanup; } exthandle = cert_startcert
extensions (subjectcert); if (exthandle == null) { rv = secfailure; goto cleanup; } if (certreq->attributes != null && certreq->attributes[0] != null && certreq->attributes[0]->attrtype.data != null && certreq->attributes[0]->attrtype.len > 0 && secoid_findoidtag(&certreq->attributes[0]->attrtype) == sec_oid_pkcs9_extension_request) { rv = cert_getcertificaterequest
extensions(certreq, &crexts); if (rv != se...
...csuccess) { pr_fprintf(pr_stderr, "%s\n", port_errortostring(rv)); goto cleanup; } rv = cert_merge
extensions(exthandle, crexts); if (rv != secsuccess) { pr_fprintf(pr_stderr, "%s\n", port_errortostring(rv)); goto cleanup; } } cert_finish
extensions(exthandle); /* self-signing a cert request, find the private key */ if (*selfsignprivkey == null) { *selfsignprivkey = pk11_findkeybydercert(slot, subjectcert, pwarg); if (!*selfsignprivkey) { pr_fprintf(pr_stderr, "failed to locate private key.\n"); rv = secfailure; goto cleanup; } } certder = signcert(handle, subjectcert, selfsign, hashalgtag, *selfsignprivkey, issuernickname,pwarg); if (certder) { if (ascii) { pr_fprintf(outfile, "%s\n%s\n%s\n", ns_cert_header, btoa_datatoascii(certder->data, certder->len), ns_cert_trailer); } else { pr_write(outfile, c...
...null); if (!cr) { pr_fprintf(pr_stderr, "unable to make certificate request\n"); rv = secfailure; goto cleanup; } arena = port_newarena(der_default_chunksize); if (!arena) { fprintf(stderr, "out of memory"); rv = secfailure; goto cleanup; } exthandle = cert_startcertificaterequestattributes(cr); if (exthandle == null) { port_freearena (arena, pr_false); rv = secfailure; goto cleanup; } cert_finish
extensions(exthandle); cert_finishcertificaterequestattributes(cr); /* der encode the request */ encoding = sec_asn1encodeitem(arena, null, cr, sec_asn1_get(cert_certificaterequesttemplate)); if (encoding == null) { pr_fprintf(pr_stderr, "der encoding of request failed\n"); rv = secfailure; goto cleanup; } /* sign the request */ signalgtag = sec_getsignaturealgorithmoidtag(keytype, hashalgtag); if (signalgt...
NSS tools : crlutil
for example: 20050204153000z * add an extension to a crl or a crl certificate entry: addext extension-name critical/non-critical [arg1[arg2 ...]] where: extension-name: string value of a name of known
extensions.
... implemented
extensions the
extensions defined for crl provide methods for associating additional attributes with crls of theirs entries.
... see "implemented
extensions" for more information regarding
extensions and their parameters.
NSS Tools crlutil
for example: 20050204153000z add an extension to a crl or a crl certificate entry: addext extension-name critical/non-critical [arg1[arg2 ...]] where: extension-name: string value of a name of known
extensions.
... see "implemented
extensions" for more information regarding
extensions and theirs parameters.
... implemented
extensions the
extensions defined for crl provide methods for associating additional attributes with crls of theirs entries.
NSS tools : crlutil
for example: 20050204153000z * add an extension to a crl or a crl certificate entry: addext extension-name critical/non-critical [arg1[arg2 ...]] where: extension-name: string value of a name of known
extensions.
... implemented
extensions the
extensions defined for crl provide methods for associating additional attributes with crls of theirs entries.
... see "implemented
extensions" for more information regarding
extensions and their parameters.
Places Developer Guide
elopers can take advantage of several helper apis that are browser-specific: fuel - a collection of wrapper apis for easing access to a number of firefox utilities and services nsiplacestransactionsservice - a firefox service for modifying bookmarks in a transactional manner, providing facilities for undo/redo places utilities for javascript - accessors and helper functions for firefox and
extensions creating bookmarks, folders and other items creating a bookmark // create an nsiuri for the url to be bookmarked.
...this is mainly for use by
extensions that sync bookmark data between different profiles.
...this is mainly for use by
extensions that sync bookmark data between different profiles.
extIExtension
defaults to the "
extensions.<extensionid>." branch.
...a preference "install-event-fired" under your
extensions preferences branch (e.g.
...
extensions.your_extension_id.install-event-fired) will be set to false after your extension has been installed.
XML Extras
other test cases for each of the implemented components listed above exist in
extensions/xmlextras/tests/.
...file bugs for new test you have, and/or check them into
extensions/xmlextras/tests/.
...there are some in
extensions/xmlextras/tests/.
Packaging WebLock
note: the emphasis of this tutorial is on the component development itself, so this section on packaging and installing
extensions to gecko is necessarily brief.
...using xpinstall, you can create web-based installations for gecko-based applications, mozilla
extensions, or individual components.
... like the windows registry, the chrome registry is a database of information about applications, skins, and other
extensions that have been installed in a gecko application.
nsIMsgCustomColumnHandler
it can be used in the thunderbird threadpane for
extensions to overlay their own columns.
... last changed in gecko 1.9 (firefox 3) inherits from: nsitreeview this interface is meant to be implemented by
extensions, as shown in the tutorial.
...see also
extensions:thunderbird:creating_a_custom_column ...
nsISessionStore
browser/components/sessionstore/nsisessionstore.idlscriptable provides a means for
extensions and other code to store data in association with browser sessions, tabs, and windows.
... note: this function is intended for use only by the browser;
extensions shouldn't call it.
... for many
extensions, those that overlay browser.xul, the appropriate window object for nsisessionstore is the global object 'window'.
Debugger.Object - Firefox Developer Tools
for example, in firefox, code in privileged compartments sees content dom element objects without redefinitions or
extensions made to that object’s properties by content code.
...(this function behaves like the standard object.freeze function, except that the object to be sealed is implicit and in a different compartment from the caller.) prevent
extensions() prevent properties from being added to the referent.
... (this function behaves like the standard object.prevent
extensions function, except that the object to operate on is implicit and in a different compartment from the caller.) issealed() return true if the referent is sealed—that is, if it is not extensible, and all its properties have been marked as non-configurable.
AuthenticatorAssertionResponse.authenticatorData - Web APIs
the authenticatordata property of the authenticatorassertionresponse interface returns an arraybuffer containing information from the authenticator such as the relying party id hash (rpidhash), a signature counter, test of user presence, user verification flags, and any
extensions processed by the authenticator.
...
extensions (variable length) - an optional cbor map of
extensions.
...s var options = { challenge: new uint8array(26), // will be another value, provided by the relying party server timeout: 60000 }; navigator.credentials.get({ publickey: options }) .then(function (assertionpkcred) { var authenticatordata = assertionpkcred.response.authenticatordata; // maybe try to convert the authenticatordata to see what's inside // send response and client
extensions to the server so that it can // go on with the authentication }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'authenticatordata' in that specification.
EXT_color_buffer_float - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
... for webgl 1, see the ext_color_buffer_half_float and webgl_color_buffer_float
extensions.
EXT_float_blend - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
... examples const gl = canvas.getcontext('webgl2'); // enable necessary
extensions gl.getextension('ext_color_buffer_float'); gl.getextension('ext_float_blend'); const tex = gl.createtexture(); gl.bindtexture(gl.texture_2d, tex); // use floating point format gl.teximage2d(gl.texture_2d, 0, gl.rgba32f, 1, 1, 0, gl.rgba, gl.float, null); const fb = gl.createframebuffer(); gl.bindframebuffer(gl.framebuffer, fb); gl.framebuffertexture2d(gl.framebuffer, gl.color_attachment0, gl.t...
EXT_shader_texture_lod - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
... float lod) vec4 texturecubelodext(samplercube sampler, vec3 coord, float lod) vec4 texture2dgradext(sampler2d sampler, vec2 p, vec2 dpdx, vec2 dpdy) vec4 texture2dprojgradext(sampler2d sampler, vec3 p, vec2 dpdx, vec2 dpdy) vec4 texture2dprojgradext(sampler2d sampler, vec4 p, vec2 dpdx, vec2 dpdy) vec4 texturecubegradext(samplercube sampler, vec3 p, vec3 dpdx, vec3 dpdy) examples enabling the
extensions: gl.getextension('ext_shader_texture_lod'); shader code that avoids artifacts when wrapping texture coordinates: <script type="x-shader/x-fragment"> #extension gl_ext_shader_texture_lod : enable #extension gl_oes_standard_derivatives : enable uniform sampler2d mytexture; varying vec2 texcoord; void main(){ gl_fragcolor = texture2dgradext(mytexture, mod(texcoord, vec2(0.1, 0.5)), ...
Gamepad - Web APIs
experimental
extensions to gamepad the following interfaces are defined in the gamepad
extensions specification, and provide access to experimental features like haptic feedback and webvr controller pose information.
... working draft initial definition gamepad
extensionsthe definition of 'gamepad
extensions' in that specification.
... editor's draft defines the experimental
extensions to gamepad ...
OES_standard_derivatives - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
... glsl built-in functions the following new functions can be used in glsl shader code, if this extension is enabled: gentype dfdx(gentype) gentype dfdy(gentype) gentype fwidth(gentype) examples enabling the
extensions: gl.getextension('oes_standard_derivatives'); gl.getextension('ext_shader_texture_lod'); shader code that avoids artifacts when wrapping texture coordinates: <script type="x-shader/x-fragment"> #extension gl_ext_shader_texture_lod : enable #extension gl_oes_standard_derivatives : enable uniform sampler2d mytexture; varying vec2 texcoord; void main(){ gl_fragcolor = texture2dgradext(mytextu...
Pointer events - Web APIs
however, since many devices support other types of pointing input devices, such as pen/stylus and touch surfaces,
extensions to the existing pointing device event models are needed.
... the standard also includes some
extensions to the element and navigator interfaces.
... element
extensions there are three
extensions to the element interface: setpointercapture() designates a specific element as the capture target of future pointer events.
PublicKeyCredential.response - Web APIs
in order to validate the creation of credentials, a relying party's server needs both: this response the
extensions of the client (given by publickeycredential.getclientextensionresults()) to validate the demand.
... note: when validating the fetching of existing credentials, the whole publickeycredential object and the client
extensions are necessary for the relying party's server.
... server */, name: "jdoe@example.com", displayname: "john doe" }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey: options }) .then(function (pubkeycredential) { var response = pubkeycredential.response; var clientextresults = pubkeycredential.getclientextensionresults(); // send response and client
extensions to the server so that it can validate // and create credentials }).catch(function (err) { // deal with any error }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'response' in that specification.
PublicKeyCredentialRequestOptions - Web APIs
publickeycredentialrequestoptions.
extensions optional an object with several client
extensions' inputs.
... those
extensions are used to request additional processing (e.g.
... something like foo.example.com */ userverification: "preferred", timeout: 60000, // wait for a minute allowcredentials: [ { transports: "usb", type: "public-key", id: new uint8array(26) // actually provided by the server }, { transports: "internal", type: "public-key", id: new uint8array(26) // actually provided by the server } ],
extensions: { uvm: true, // rp wants to know how the user was verified loc: false, txauthsimple: "could you please verify yourself?" } }; navigator.credentials.get({ "publickey": options }) .then(function (credentialinfoassertion) { // send assertion response back to the server // to proceed with the control of the credential }).catch(function (err) { console.error(err); });...
WEBGL_debug_renderer_info - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
...in firefox, if privacy.resistfingerprinting is set to true, this
extensions is disabled.
WebGLRenderingContext.getExtension() - Web APIs
return value a webgl extension object, or null if name does not match (case-insensitive) to one of the strings in webglrenderingcontext.getsupported
extensions.
... var canvas = document.getelementbyid('canvas'); gl = canvas.getcontext('webgl'); gl.getextension('webgl_lose_context').losecontext(); webgl
extensions extensions for the webgl api are registered in the webgl extension registry.
... the current
extensions are: angle_instanced_arrays ext_blend_minmax ext_color_buffer_float ext_color_buffer_half_float ext_disjoint_timer_query ext_float_blend ext_frag_depth ext_srgb ext_shader_texture_lod ext_texture_compression_bptc ext_texture_compression_rgtc ext_texture_filter_anisotropic khr_parallel_shader_compile oes_element_index_uint oes_fbo_render_mipmap oes_standard_derivatives oes_texture_float oes_texture_float_linear oes_texture_half_float oes_texture_half_float_linear oes_vertex_array_object ovr_multiview2 webgl_color_buffer_float webgl_compressed_texture_astc webgl_compressed_texture_atc webgl_compressed_texture_etc webgl_compressed_texture_etc1 webgl_compressed_texture_pvrtc webgl_compressed_texture_s3tc webgl_compressed_texture_s3tc_srgb webgl...
WebGL: 2D and 3D graphics for the web - Web APIs
reference standard interfaces webglrenderingcontext webgl2renderingcontext webglactiveinfo webglbuffer webglcontextevent webglframebuffer webglprogram webglquery webglrenderbuffer webglsampler webglshader webglshaderprecisionformat webglsync webgltexture webgltransformfeedback webgluniformlocation webglvertexarrayobject
extensions angle_instanced_arrays ext_blend_minmax ext_color_buffer_float ext_color_buffer_half_float ext_disjoint_timer_query ext_float_blend ext_frag_depth ext_srgb ext_shader_texture_lod ext_texture_compression_bptc ext_texture_compression_rgtc ext_texture_filter_anisotropic khr_parallel_shader_compile oes_element_index_uint oes_fbo_render_mipmap oes_standard_derivatives oes_texture...
...it is based on opengl es 3.0 and new features include: 3d textures, sampler objects, uniform buffer objects, sync objects, query objects, transform feedback objects, promoted
extensions that are now core to webgl 2: vertex array objects, instancing, multiple render targets, fragment depth.
... using
extensions a guide to using webgl
extensions.
Web Animations API - Web APIs
extensions to other interfaces the web animations api adds some new features to document and element.
...
extensions to the document interface document.timeline the documenttimeline object representing the default document timeline.
...
extensions to the element interface element.animate() a shortcut method for creating and playing an animation on an element.
Window.open() - Web APIs
some advanced
extensions also give mozilla and firefox a lot of power over how referenced resources are loaded.
... users can be using browser-built-in feature or
extensions include opening a link in a new window or not, in the same window, in a new tab or not, in "background" or not.
...middle-click on links, ctrl+click on links, tab-browsing features in
extensions, etc.
Live streaming web audio and video - Developer guides
for example: <video src="rtsp://myhost.com/mymedia.format"> <!-- fallback here --> </video> media source
extensions (mse) media source
extensions is a w3c working draft that plans to extend htmlmediaelement to allow javascript to generate media streams for playback.
...it is supported via media source
extensions which are used by javascript libraries such as dash.js.
... also http live streaming hls browser support http live streaming javascript player the basics of http live streaming dash adaptive streaming for html 5 video dynamic adaptive streaming over http (mpeg-dash) mpeg-dash media source demo dash reference client dynamic streaming over http the state of mpeg-dash deployment look, no plugins: live streaming to the browser using media source
extensions and mpeg-dash media source
extensions (w3c) icecast shoutcast gstreamer streaming gstreamer pipelines via http streaming media using gstreamer on the web gstreamer and raspberry pi acceptance of media source
extensions as w3c candidate recommendation will accelerate adoption of dash.js comparison of streaming media systems mozilla hacks - streaming media on demand with media source exte...
SVG documentation index - SVG: Scalable Vector Graphics
369 <switch> element, needsexample, svg, svg container the <switch> svg element evaluates any requiredfeatures, required
extensions and systemlanguage attributes on its direct child elements in order, and then renders the first child where these attributes evaluate to true.
...this page lists those deviations/
extensions and our reasoning for them.
... 383 mimetypes.rdf corruption svg this page explains a problem that can cause svg to stop working in mozilla due to the way mozilla maps filename
extensions to media types.
simple-prefs - Archive of obsolete content
by default, simple preferences are stored in a preference like:
extensions.<addon-id>.<preference-name> for example, if you had a simple-pref named "somepreference" then you could get its value like so: require('sdk/preferences/service').get(['
extensions', require('sdk/self').id, 'somepreference'].join('.')) this would give you the same value as: require('sdk/simple-prefs').prefs['somepreference'] the ability to change the default preferences branch is new in add-...
...you can change the sub-branch of
extensions using the preferences-branch key in your add-on's package.json file.
Code snippets - Archive of obsolete content
this is a quick list of useful code snippets (small code samples) available for developers of
extensions for the various mozilla applications.
...er-oriented code tabbed browser code (firefox/seamonkey) basic operations, such as page loading, with the tabbed browser, which is the heart of mozilla's browser applications cookies reading, writing, modifying, and removing cookies page loading code used to load pages, reload pages, and listen for page loads interaction between privileged and non-privileged code how to communicate from
extensions to websites and vice-versa.
Extension Theming Guidelines - Archive of obsolete content
branding certain items of your
extensions style, in particular logos and icons can be kept in the chrome content package such that they are not replaceable by custom themes stylesheets guidelines include stylesheets for every new window that your extension adds and for every window that your extension overlays content into be sure to add a stylesheet from your chrome skin package.
...if you are not then you run a risk of conflicting with content that other
extensions add to the window.
Firefox addons developer guide - Archive of obsolete content
the firefox add-ons developer guide was contributed by the mozilla japan community; it covers how to go about building firefox
extensions using xpcom and xul.
... next » introduction to
extensions technologies used in developing
extensions introduction to xul—how to build a more intuitive ui using xpcom—implementing advanced processes let's build a firefox extension firefox
extensions and xul applications license and authors next » ...
Appendix E: DOM Building and Insertion (HTML & XUL) - Archive of obsolete content
'sub div with textcontent and siblings', ['html:br', {}], ['html:input', {type:'checkbox', id:'mycheck'}], ['html:label', {for:'mycheck'}, 'here is text of label, click this text will check the box' ] ] ] ]; document.body.appendchild(jsontodom(json, document, {})); jquery templating for
extensions which already use jquery, it is possible to use its builtin dom building functions for templating, though care must be taken when passing non-static strings to methods such as .append() and .html().
... for web
extensions the most simple way is sanitize the output about javascript inline declaration and other wrong content.
JavaScript Object Management - Archive of obsolete content
the first step to good javascript object management is having a namespace, or a javascript object that contains our code and data, that you know will not conflict with firefox code or other
extensions.
...however, most
extensions are small projects by individuals, so these examples follow a more practical approach of having just one namespace with the project name.
Useful Mozilla Community Sites - Archive of obsolete content
amo has a review process that prevents malicious, insecure or low quality
extensions to make it to the public site.
...developers submit their
extensions using the web translation system (wts) and volunteers around the world translate them to different languages.
User Notifications and Alerts - Archive of obsolete content
« previousnext » it is often the case that
extensions need to notify users about important events, often requiring some response.
...imagine having multiple
extensions notifying you in their own custom way, probably even at the same time!
Install.js - Archive of obsolete content
this version has been developed as part of the effort to port firefox
extensions to seamonkey from the xsidebar project.
... xpi file structure you can use the code below (taken from pike's
extensions ).
List of Mozilla-Based Applications - Archive of obsolete content
dogtag certificate system uses nss dojo javascript toolkit uses mozilla rhino in shrinksafe eclipse platform open development platform the ajax toolkit framework, standard widget toolkit and eclipsemozilla projects make use of mozilla elixon wcms/xul web content management system fully remote xul wcms (no need to install
extensions).
...ation to manage tomtom gps devices review article from gps magazine; over 2.4m users topstyle html, xhtml and css editor seems to have optional gecko embedding but doesn't use it by default toxtox media browser for tv 5000 downloads trixul gui toolkit uses mozilla spidermonkey trustedbird email client thunderbird bundled with a set of
extensions (formerly known as milimail) tuneup music collection organizer listed on xulrunner hall of fame but haven't seen information elsewhere tuxguitar tabulature editor uses xulrunner twitfactory standalone twitter/identi.ca client uis university information system intranet application, 1000 users, thin client based on ff3 unison des...
Building TransforMiiX standalone - Archive of obsolete content
this will pull the necessary subtree with mozilla/client.mk mozilla/build/unix/modules.mk mozilla/build mozilla/config mozilla/expat mozilla/
extensions/transformiix mozilla/include mozilla/allmakefiles.sh mozilla/client.mk mozilla/aclocal.m4 mozilla/configure mozilla/configure.in mozilla/makefile.in plus nspr and xpcom from the cvs repository.
... the binary transformiix(.exe) will be in
extensions/transformiix/source and dist/bin/ (symbolic link).
Making it into a static overlay - Archive of obsolete content
most
extensions are distributed as installer packages, and that's how we'll distribute our extension.
... integrating
extensions into the mozilla codebase is beyond the scope of this tutorial, but for more information see mozilla.org's hacking documentation.
Download Manager improvements in Firefox 3 - Archive of obsolete content
download manager interfaces nsidownloadmanager gives applications and
extensions access to the download manager, allowing them to add and remove files to the download list, retrieve information about past and present downloads, and request notifications as to the progress of downloads.
... nsidownloadprogresslistener applications and
extensions implement this interface to be made aware of changes in the status of downloads.
Error Console - Archive of obsolete content
see setting up extension development environment#development preferences for the preferences you should set if you want to see errors from firefox and
extensions in the error console.
...
extensions can write to the error console from javascript using components.utils.reporterror, or if you're fine with logging to the os-provided console, dump().
XPInstall - Archive of obsolete content
ding="utf-8"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description about="urn:mozilla:install-manifest"> <!-- properties --> </description> </rdf> cross-platform install (xpinstall) is a technology used by mozilla application suite, mozilla firefox, mozilla thunderbird and other xul-based applications for installing
extensions.
... mailing list newsgroup rss feed tools xpinstall trigger page related topics
extensions, xul, xpi ...
Popup Guide - Archive of obsolete content
using popups in
extensions extensions may add additional menuitems either to a menu on the menu bar or to the context menu.
...see using menus and popups in
extensions for details.
Introduction - Archive of obsolete content
extensions may also be applied to other mozilla based products such as thunderbird.
...for
extensions, the xul files and associated scripts and images used by an application would be packaged into a single file and downloaded and installed by the user.
Building XULRunner with Python - Archive of obsolete content
or, if you are interested in working with xulrunner with python on linux, see mark lise's post with the python
extensions enabled xulrunner provides python script access to the dom and xpcom in addition to the usual java script.
... mk_add_options moz_objdir=@topsrcdir@/../obj-xulrunner mk_add_options moz_co_project=xulrunner ac_add_options --enable-application=xulrunner ac_add_options --enable-
extensions=python,default ac_add_options --disable-javaxpcom ac_add_options --disable-activex ac_add_options --disable-activex-scripting ac_add_options --disable-tests ac_add_options --enable-optimize to check out all the required source code and build it the first time with no local client.mk file, execute cd /c/projects cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk cd m...
Using LDAP XPCOM with XULRunner - Archive of obsolete content
create a subdirectory
extensions/ldapstub in the mozilla source code directory, containing two files, makefile.in and ldapstubloader.cpp: makefile.in: # copyright (c) 2005 benjamin smedberg <benjamin@smedbergs.us> depth = ../..
...al_cstring(krealcomponent)); prlibrary *lib; rv = library->load(&lib); if (ns_failed(rv)) return rv; nsgetmoduleproc getmoduleproc = (nsgetmoduleproc) pr_findfunctionsymbol(lib, ns_get_module_symbol); if (!getmoduleproc) return ns_error_failure; return getmoduleproc(acompmgr, alocation, aresult); } then change your .mozconfig to add this line: ac_add_options --enable-
extensions=ldapstub rebuild xulrunner.
2006-10-06 - Archive of obsolete content
extension compatibility for firefox 2 chris hofmann reminds about the push to have
extensions work with ff2.
... also invites people to file bugs about
extensions that don't work.
External resources for plugin creation - Archive of obsolete content
project: juce project home page description (from the home page): juce (jules' utility class
extensions) is an all-encompassing c++ class library for developing cross-platform applications.
... firefox plugin - part one: discusses the difference between npapi and npruntime and summarizes the basic apis needed to create a plugin building a firefox plugin - part two: discusses the basic lifecycle of a npapi plugin building a firefox plugin - part three: discusses npobjects and how to use them memory management in npapi: discusses how memory is managed in a npapi plugin browser plugins vs
extensions (add-ons) -- the difference: discusses the oft-misunderstood difference between a plugin and an extension wikipedia npapi: history and general information about npapi plugins and
extensions: the general difference between them boom swagger boom writing an npapi plugin for mac os x ...
Plugins - Archive of obsolete content
plugins are different from
extensions, which modify or enhance the functionality of the browser itself.
... scripting plugins (npruntime) this reference describes the new cross-browser npapi
extensions that let plugins be scriptable and also let them access the script objects in the browser.
Object.observe() - Archive of obsolete content
if omitted, the array ["add", "update", "delete", "reconfigure", "setprototype", "prevent
extensions"] will be used.
... object.defineproperty(obj, 'foo', {writable: false}); // [{name: 'foo', object: <obj>, type: 'reconfigure'}] object.setprototypeof(obj, {}); // [{name: '__proto__', object: <obj>, type: 'setprototype', oldvalue: <prototype>}] object.seal(obj); // [ // {name: 'foo', object: <obj>, type: 'reconfigure'}, // {name: 'bar', object: <obj>, type: 'reconfigure'}, // {object: <obj>, type: 'prevent
extensions'} // ] data binding // a user model var user = { id: 0, name: 'brendan eich', title: 'mr.' }; // create a greeting for the user function updategreeting() { user.greeting = 'hello, ' + user.title + ' ' + user.name + '!'; } updategreeting(); object.observe(user, function(changes) { changes.foreach(function(change) { // any time name or title change, update the greeting if (ch...
LiveConnect - Archive of obsolete content
java in firefox
extensions community view mozilla.dev.tech.java forums...
...ng list newsgroup rss feed related topics javascript, plugins older notes (please update or remove as needed.) while the bloated liveconnect code in the mozilla source was removed in version 1.9.2 of the platform (see bug 442399), its former api has been restored (see also the specification and this thread) (building on npapi?), and as of java 6 update 12,
extensions as well as applets can make use of this restored api.
XForms Custom Controls - Archive of obsolete content
as always, please refer directly to the source code to be sure that you are using the latest, up-to-date version:
extensions/xforms/nsixformsuiwidget.idl.
...nsixformsaccessors the nsixformsaccessors interface allows access to the value and the state of the instance node that the control is bound to (see
extensions/xforms/nsixformsaccessors.idl).
XForms Input Element - Archive of obsolete content
mozilla
extensions labelposition - only for boolean types: show the label before or after the checkbox (see below) type restrictions the input element can be bound to a node containing simple content of any data type except xsd:base64binary, xsd:hexbinray or any data type derived from these.
...labelposition - a mozilla xforms extension in the namespace http://www.mozilla.org/projects/xfor...009/
extensions.
XForms - Archive of obsolete content
documentation implementation status implementation status of the mozilla xforms extension building get started with building your own xforms
extensions from source.
... tools xforms validator xforms buddy related topics
extensions, html, xhtml, xml, xpath ...
XQuery - Archive of obsolete content
while xquery is currently not supported in firefox (whether through javascript to developers or to browser users), at least one extension has been developed to give a preliminary support for xquery for browser users (and serving as a simple model for how xquery can be implemented within
extensions).
... notes for developers wishing to access xquery in their own
extensions at present, the extension works simply by using liveconnect to work with berkeley db xml's java api (and via a java wrapper class which circumvents liveconnect's current inability to handle some types of java exceptions properly).
Archive of obsolete content
starting with firefox 2, a sax parser is available to xul applications and
extensions.
...due to a limitation of the present implementation of nspr io on nt, programs must follow the following guideline: using ssh to connect to cvs using web standards in your web pages using workers in
extensions this article shows you how to use worker threads in
extensions to perform tasks in the background without blocking the user interface.
CalDAV - MDN Web Docs Glossary: Definitions of Web-related terms
caldav (calendaring
extensions to webdav) is a protocol standardized by the ietf and used to remotely access calendar data from a server.
... learn more general knowledge caldav on wikipedia technical reference rfc 4791: calendaring
extensions to webdav (caldav) rfc 6638: scheduling
extensions to caldav ...
CSS FAQ - Learn web development
these properties, called prefixed properties, are
extensions to the css standard.
... note: see the mozilla css
extensions page for more information on the mozilla-prefixed css properties.
Dealing with files - Learn web development
note: on windows computers, you might have trouble seeing the file names, because windows has an option called hide
extensions for known file types turned on by default.
...option, unchecking the hide
extensions for known file types check box, then clicking ok.
TypeScript support in Svelte - Learn web development
you'll also have to update any corresponding import statements (don't include the .ts in your import statements; typescript chose to omit the
extensions).
...vs code will tell you that there are recommended
extensions to install.
Getting started with Svelte - Learn web development
svelte sticks closely to the classic web development model of html, css, and js, just adding a few
extensions to html and javascript.
...
extensions to the javascript language are minimal and carefully picked in order to not break javascript syntax nor alienate developers.
Client-side tooling overview - Learn web development
if you are looking for a plugin to integrate tool functionality into your code editor, look at the code editor’s plugins/
extensions page — see atom packages and vscode
extensions, for example.
... have a look at the featured
extensions on the front page, and again, try searching for the kind of extension you want (or the tool name, for example search for "eslint" on the vscode
extensions page).
A bird's-eye view of the Mozilla framework
thehelp viewer files referenced in the article are located in /seamonkey/
extensions/help/ this article also assumes you are familiar with the javascript and c++ programming languages, object-oriented programming (oop) terminology and design concepts, the microsoft® component object model (com), and the corba omg interface definition language (idl).
...chrome and
extensions are examples of packages.
Creating a Login Manager storage module
extensions can replace the built-in password storage with their own implementation.
... if you just want to use the login manager in your
extensions, refer to the article using nsiloginmanager.
Debugging JavaScript
in
extensions you can print the callstack using components.stack like this: function getstackdump() { var lines = []; for (var frame = components.stack; frame; frame = frame.caller) { lines.push(frame.filename + " (" + frame.linenumber + ")"); } return lines.join("\n"); } see also debugging mozilla with gdb setting up an extension development environment (particularly development preferences...
... and development
extensions) original document information author(s): ben bucksch created date: september 12, 2005, last updated date: november 10, 2009 copyright information: portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Limitations of chrome scripts
for example: whenever
extensions try to access web content from the chrome process, the browser will return a cross process object wrapper that gives the chrome code synchronous access to the content.
... however, these shims are not a substitute for migrating
extensions: they are only a temporary measure, and will be removed eventually they can have a bad effect on responsiveness there are likely to be edge cases in which they don't work properly you can see all the places where your add-on uses compatibility shims by setting the dom.ipc.shims.enabledwarnings preference and watching the browser console as you use the add-on.
Using the Browser API
api
extensions: the api includes several new methods and events to manipulate and listen for changes to the embedded content's state, interited by the htmliframeelement interface.
... it is implied for web
extensions, which always run in a separate content process from web content.
How Mozilla determines MIME Types
externalhelperappservice (located at uriloader/exthandler/nsexternalhelperappservice.cpp) the file->mime type mapping works like this: on beos, the operating system is asked for the type of the file (not quite yet, bug 217723) on macos, the type and creator code will be used to lookup the type of the file from the os a hardcoded list of
extensions is checked (containing currently 13 entries, nsexternalhelperappservice.cpp line 463 (this is done for speed – it is faster to find data in the hardcoded list than asking the os or looking in preferences) if the extension is not listed there, it becomes interesting.
...this allows
extensions to register additional mappings.
Integrated Authentication
the mozilla implementation of spnego can be found under
extensions/auth/.
... it used to live in
extensions/negotiateauth.
Interfacing with the Add-on Repository
to make the service work for the time being, you can use code like this when your extension starts up: var prefsservice = components.classes["@mozilla.org/preferences-service;1"] .getservice(components.interfaces.nsiprefservice); var prefbranch = prefsservice.getbranch("
extensions."); var recurl = ""; try { recurl = prefbranch.getcharpref("getaddons.recommended.url"); } catch(e) { recurl = ""; } if (recurl == "") { prefbranch.setcharpref("getaddons.recommended.url", "https://services.addons.mozilla.org/%locale%/%app%/api/%api_version%/list/recommended/all/%max_results%/%os%/%version%?src=firefox"); prefsservice.savepreffile(null); } this fe...
...tches the value of the
extensions.getaddons.recommended.url preference, and, if the preference doesn't exist or has no value, sets the value of the preference to the correct one for the amo site.
Using JavaScript code modules
<alias> must be unique to your add-on, as the application and other
extensions share the same namespace for all aliases.
... using chrome.manifest the easiest way for
extensions and xul applications to add custom aliases is by registering an alias in the chrome manifest using a line like this: resource aliasname uri/to/files/ for example, if the xpi for your foo extension includes a top-level modules/directory containing the bar.js module (that is, the modules/directory is a sibling to chrome.manifest and install.rdf), you could create an alias to that directory via the instruction: resource foo modules/ (don't forget the trailing slash!) you could then import the module into your javascript code via the statement: components.utils.import("resource://foo/bar.js"); programmatically adding aliases custom aliases to paths that can be represented as an nsilocalfile can be programmatically added as well.
Localization and Plurals
if you're here to make your code (e.g.,
extensions) localizable for plural forms, you can jump straight to developing with pluralform.
...the latter ability of specifying a plural rule is useful for
extensions because the extension doesn't necessarily have to be localized to the browser's locale.
Localizing extension metadata on addons.mozilla.org
amo doesn't directly provide translation assistance to extension authors, but there are a couple services that can help: babelzilla.org babelzilla.org is a community dedicated to the localization of
extensions for moz family apps.
... they are volunteer translators from all over the world and are maintaining translations for more than 400
extensions with an online translation system.
Extras
1)"/> <g transform="translate(150,125)"> <g> <animatetransform attributename="transform" attributetype="xml" type="rotate" from="0" to="360" dur="6s" repeatcount="indefinite"/> <g transform="translate(-50,-35)"> <rect width="100" height="70" fill="url(#grad2)"/> <switch> <foreignobject width="100" height="70" required
extensions="http://www.w3.org/1998/math/mathml"> <math display="block"> <mrow> <mo>(</mo> <mtable> <mtr> <mtd><mi>cos</mi><mi>θ</mi></mtd> <mtd><mo>−</mo><mi>sin</mi><mi>θ</mi></mtd> </mtr> <mtr> <mtd><mi>sin</mi><mi>θ</mi></mtd> <mtd><mi>cos</mi><mi>θ</mi></mtd> </mtr> </mtable> <mo>)</mo> </mrow> </math> </foreignobject> <text>rotation matrix</text> </switch> </g></g></g> <g> <animatemotion path="m ...
..." begin="0s" dur="20s" repeatcount="indefinite"/> <animatetransform attributename="transform" attributetype="xml" type="scale" values="1;2;.5;1" keytimes="0;.25;.75;1" dur="20s" repeatcount="indefinite"/> <circle fill="url(#grad3)" r="30"/> <g transform="translate(-30,-30)"> <switch> <foreignobject width="60" height="60" required
extensions="http://www.w3.org/1998/math/mathml"> <math display="block"> <mrow> <munderover> <mo>∑</mo> <mrow> <mi>n</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mo>+</mo> <mi>∞</mi> </mrow> </munderover> <mfrac> <msup> <mi>α</mi> <mi>n</mi> </msup> <mrow> <mi>n</mi> <mo>!</mo> </mrow> </mfrac> </mrow> </math> </foreignobject> <text>exp(α)</text> </switch> </g> </g> </svg> </div> inline javascript ...
about:memory
├───40,214,384 b (04.17%) -- add-ons │ ├──21,184,320 b (02.20%) ++ {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}/js-non-window/zones/zone(0x100496800)/compartment([system principal], jar:file:///users/njn/library/application%20support/firefox/profiles/puna0zr8.new/
extensions/%7bd10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d%7d.xpi!/bootstrap.js (from: resource://gre/modules/addons/xpiprovider.jsm:4307)) │ ├──11,583,312 b (01.20%) ++ jid1-xufzosoflzsoxg@jetpack/js-non-window/zones/zone(0x100496800) │ ├───5,574,608 b (00.58%) -- {59c81df5-4b7a-477b-912d-4e0fdf64e5f2} │ │ ├──5,529,280 b (00.57%) -- window-objects │ │ │ ├──4,175...
...,584 b (00.43%) ++ top(chrome://chatzilla/content/chatzilla.xul, id=4293) │ │ │ └──1,353,696 b (00.14%) ++ top(chrome://chatzilla/content/output-window.html, id=4298) │ │ └─────45,328 b (00.00%) ++ js-non-window/zones/zone(0x100496800)/compartment([system principal], file:///users/njn/library/application%20support/firefox/profiles/puna0zr8.new/
extensions/%7b59c81df5-4b7a-477b-912d-4e0fdf64e5f2%7d/components/chatzilla-service.js) │ └───1,872,144 b (00.19%) ++ treestyletab@piro.sakura.ne.jp/js-non-window/zones/zone(0x100496800) more things worth pointing out are as follows.
Performance
performance best practices in
extensions a performance "best practices" guide for extension developers.
... related topics javascript, xpcom, developing mozilla,
extensions, addons ...
An overview of NSS Internals
the trust assigned by the third party might be restricted to certain uses, which are listed in certificate
extensions that are contained in the certificate.
...for example: certificates were valid at the time the signature was made, name in certificates matches the expected signer (check subject name, common name, email, based on application), the trust restrictions recorded inside the certificate (
extensions) permit the use (e.g., encryption might be allowed, but not signing), and based on environment/application policy it might be required to perform a revocation check (ocsp or crl), that asks the issuer(s) of the certificates whether there have been events that made it necessary to revoke the trust (revoke the validity of the cert).
NSS 3.16.2 release notes
the certutil commands supports additionals types of subject alt name
extensions: --extsan type:name[,type:name]...
... the certutil commands supports generic certificate
extensions, by loading binary data from files, which have been prepared using external tools, or which have been extracted and dumped to file from other existing certificates: --dump-ext-val oid --extgeneric oid:critical-flag:filename[,oid:critical-flag:filename]...
NSS 3.19 release notes
new functions in cert.h cert_getimposednameconstraints - check if any imposed constraints exist for the given certificate, and if found, return the constraints as encoded certificate
extensions.
... nss now more strictly validates tls
extensions and will fail a handshake that contains malformed
extensions (bug 753136).
NSS 3.35 release notes
users of tls are now able to provide implementations of tls
extensions, through an experimental custom extension api.
... experimental: ssl_get
extensionsupport - query nss support for a tls extension.
PKCS11 module installation
extensions can programmatically manage pkcs #11 modules using the nsipkcs11 programming interface.
... provisioning pkcs #11 modules using the pkcs11 api starting with firefox 58,
extensions can use the pkcs11 browser extension api to enumerate pkcs #11 modules and make them accessible to the browser as sources of keys and certificates.
NSS Tools certutil-tasks
(bugfix) some certificate
extensions cause certutil to crash.
... (bugfix) listing certificate
extensions has typos and does not provide much information.
SpiderMonkey 38
(see bug 1063962.) js_prevent
extensions now indicates its success or failure in two ways: via return value (as with most jsapi methods), and via outparam (indicating whether the attempt took effect or not, independent of jsapi failure).
... this change better aligns with ecmascript's [[prevent
extensions]] hook, which generally returns true or false to indicate whether subsequent attempts to add a new property will fail, yet also itself may throw in some cases.
TPS Tests
the python test runner will read a test file (in javascript format), setup one or more firefox profiles with the necessary
extensions and preferences, then launch firefox and pass the test file to the extension.
... comment out the goquitapplication() calls in services/sync/tps/
extensions/tps/modules/tps.jsm (remember to undo this later!).
Web Replay
time travel features this section describes
extensions to the developer tools that use time travel to help debug a recording/replaying tab.
... recording/replaying process
extensions during initialization the child process spawns a thread that does not participate in the recording — any ipc or other system calls it performs are live, even when replaying.
Animated PNG graphics
1 apng_blend_op_over the frame should be composited onto the output buffer based on its alpha, using a simple over operation as described in the alpha channel processing section of the
extensions to the png specification, version 1.2.0.
... an application (open source) using the mozilla encoder to assemble apngs available here: http://littlesvr.ca/apng/apngedit.html see also portable network graphics (png) specification (second edition)
extensions to the png specification, version 1.2.0 graphics interchange format 89a ...
AT APIs Support
open komodo - platform for building developer environments miro - a free, open source internet tv and video player any xulrunner application (songbird media player, etc.)
extensions to other xul apps (e.g.
... firefox
extensions) gecko version for firefox and all other gecko-based products: this documentation applies to up-to-date product builds based on gecko 1.9.2 -- currently not available on official releases.
FUEL
consider using the add-ons sdk instead fuel is a javascript library designed to help developers build
extensions using terminology and interfaces that are familiar to them.
... objects extiapplication objects extiapplication exticonsole extieventitem extieventlistener extievents extiextension exti
extensions extipreference extipreferencebranch extisessionstorage fueliapplication objects fueliannotations fueliapplication fuelibookmark fuelibookmarkfolder fuelibookmarkroots fuelibrowsertab fueliwindow xpcom although the fuel application object is preloaded into xul scripts, it is not preloaded into javascript xpcom code.
SMILE
this article covers features introduced in seamonkey 2 smile is a javascript library designed to help developers build
extensions using terminology and interfaces that are familiar to them.
... objects extiapplication objects exticonsole extieventitem extieventlistener extievents extiextension exti
extensions extipreference extipreferencebranch extisessionstorage smileiapplication objects smileibookmarkroots smileiwindow smileibrowsertab smileiapplication xpcom although the extiapplication object is preloaded into xul scripts, it is not preloaded into javascript xpcom code.
extIPreferenceBranch
for example, an extension's preferences has a root of "
extensions.extensionid.", while the application-level preferences have an empty root.
... see bug 481044 void reset() parameters return value examples var myext = application.
extensions.get('myapplicationid'); function myfunc (event) { application.console.log('change!'); }; myext.prefs.get("myprefname").events.addlistener("change", myfunc); see also fuel (firefox), steel (thunderbird) and smile (seamonkey) known issues bug 488587 - function registered as fuel preference listener not always called ...
Toolkit API
these services include: profile management chrome registration browsing history extension and theme management application update service safe mode printing official references structure of an installable bundle: describes the common structure of installable bundles, including
extensions, themes, and xulrunner applications extension packaging: specific information about how to package
extensions theme packaging: specific information about how to package themes multiple-item extension packaging: specific information about multiple-item extension xpis xul application packaging: specific information about how to package xulrunner applications chrome registration ...
... printing in xul apps see also the following developer pages contain examples and discussions of particular topics: xul xul overlays developing
extensions xulrunner developing themes dom rdf storage ...
Receiving startup notifications
this gets enough of xpcom and the application loaded and running that the extension manager can then be loaded and handle installing, uninstalling, and updating any installed
extensions.
... once that process is completed,
extensions can then be loaded by simply reading their manifests, loading their components, and continuing with application startup, all without having to restart the browser.
Components.utils.unload
this can be particularly handy with restartless (boostrapped)
extensions, so that you can unload an old version of a code module when a new version of your add-on is installed.
...you should not unload modules that are part of the application (anything under resource://gre/ or resource:/// or resource://app/) as these may be in use by other
extensions and the application.
mozISpellCheckingEngine
extensions/spellcheck/idl/mozispellcheckingengine.idlscriptable this interface represents a spelling checker.
...
extensions can use this interface to check spelling or provide its own spell checker to editors.
nsIInstallLocation
toolkit/mozapps/
extensions/public/nsiextensionmanager.idlscriptable interface representing a location where
extensions, themes and so on are installed.
...you can get the install location of a particular add-on using nsiextensionmanager interface: var il = components.classes["@mozilla.org/
extensions/manager;1"] .getservice(components.interfaces.nsiextensionmanager) .getinstalllocation("add-on id") method overview astring getidforlocation(in nsifile file); nsifile getitemfile(in astring id, in astring path); nsifile getitemlocation(in astring id); nsifile getstagefile(in astring id); boolean itemismanagedindependently(in astring id); void r...
nsIMsgAccountManagerExtension
you have to register any new account manager
extensions via the the category manager at start up.
... simply add a new entry with the contact id of the component to the "mailnews-accountmanager-
extensions" category.
nsIWebSocketChannel
nterfaces.nsiwebsocketchannel); method overview void asyncopen(in nsiuri auri, in acstring aorigin, in nsiwebsocketlistener alistener, in nsisupports acontext); void close(in unsigned short acode, in autf8string areason); void sendbinarymsg(in acstring amsg); void sendmsg(in autf8string amsg); attributes attribute type description
extensions acstring sec-websocket-
extensions response header value.
... 2000-2999 reserved for use by websocket
extensions.
nsIXFormsNSInstanceElement
nsixformsnsinstanceelement is implemented by all xforms <instance/> elements, defining mozilla
extensions.
...
extensions/xforms/nsixformsnsinstanceelement.idlscriptable please add a summary to this article.
nsIXFormsNSModelElement
it defines mozilla
extensions to the nsixformsmodelelement interface.
...
extensions/xforms/nsixformsnsmodelelement.idlscriptable please add a summary to this article.
nsIZipReader
change "portabletester@jetpack.xpi" to the name of a xpi file in your
extensions folder.
... var zr = cc["@mozilla.org/libjar/zip-reader;1"].createinstance(ci.nsizipreader); cu.import('resource://gre/modules/osfile.jsm'); cu.import('resource://gre/modules/fileutils.jsm'); var reusablestreaminstance = cc['@mozilla.org/scriptableinputstream;1'].createinstance(ci.nsiscriptableinputstream); var pathtoxpitoread = os.path.join(os.constants.path.profiledir, '
extensions', 'portabletester@jetpack.xpi'); var nsifilexpi = new fileutils.file(pathtoxpitoread); //services.ww.activewindow.alert(pathtoxpitoread); try { zr.open(nsifilexpi); //if file dne it throws here var entries = zr.findentries('*'); //we use asterik because we want everything listed out while (entries.hasmore()) { var entrypointer = entries.getnext(); /...
Storage
it is available to trusted callers, meaning
extensions and firefox components only.
... note: storage is not the same as the dom:storage feature which can be used by web pages to store persistent data or the session store api (an xpcom storage utility for use by
extensions).
XUL Overlays
when plug-ins, browser
extensions, or other applications provide new ui elements to the browser, these elements should be defined in overlay files.
...if you are developing a mozilla extension, note that the id namespace is shared by all the
extensions.
Creating a gloda message query
from https://developer.mozilla.org/docs/mozilla/thunderbird/thunderbird_
extensions/demo_addon, demo3, it seems that the attributename given in these files is the constraintname to be used (e.g.
...however, many attributes are dynamically contributed by built-in logic (fundattr.js and explattr.js) as well as other
extensions.
Thunderbird Configuration Files
before you can create the file, you must make sure that you can see the file type
extensions in windows.
...click the view tab and uncheck the hide
extensions for known file types option.
Adding items to the Folder Pane
listening for folder pane rebuilds every time the folder pane rebuilds, it fires a "maprebuild" event, which is the ideal opportunity for
extensions to step in and modify the display data.
...thus,
extensions may need to do manual insertions when this load event fires, if they want to add items to the initial display.
Building a Thunderbird extension 5: XUL
this shows how the thunderbird architecture allows
extensions to modify the user experience without modifying the installation files.
... this also enables version independence between thunderbird and thunderbird
extensions.
Tips and Tricks from the newsgroups
the following discussions on mozilla.dev.apps.thunderbird and mozilla.dev.
extensions include useful tips for thunderbird add-on developers.
...
extensions load an extension in its own tab run shell scripts from an extension (for example, to create a symlink) get extension metadata call java from thunderbird
extensions (also an example here, written for firefox but compatible with thunderbird 3.x) define a custom protocol handler to call an external program save attachment and send it repeat image display using css sprites messages use reminderfox to open a message in the default thunderbird message window (when messageuri, folderuri and gdbview are unknown) determine whether a message has been flagged as junk imap: getting mes...
Working with windows in chrome code
this article describes working with multiple windows in mozilla chrome code (xul applications and
extensions).
... example: var prefs = components.classes["@mozilla.org/preferences-service;1"] .getservice(components.interfaces.nsiprefservice); var branch = prefs.getbranch("
extensions.myext."); var var1 = branch.getboolpref("var1"); // get a pref see also code snippets:dialogs ...
ctypes.open
rome-registry;1'].getservice(components.interfaces.nsichromeregistry); var chromeuri_mylib = services.io.newuri('chrome://youraddon/content/mysubfolder/mycfunctionsforunix.so', 'utf-8', null); var localfile_mylib = cr.convertchromeurl(chromeuri_mylib); var jarpath_mylib = localfile_mylib.spec; // "jar:file:///c:/users/vayeate/appdata/roaming/mozilla/firefox/profiles/aecgxse.unnamed%20profile%201/
extensions/youraddon@jetpack.xpi!/mysubfolder/mycfunctionsforunix.so" var filepath_mylib = localfilemylib.path; // "file:///c:/users/vayeate/appdata/roaming/mozilla/firefox/profiles/aecgxse.unnamed%20profile%201/
extensions/youraddon@jetpack.xpi!/mysubfolder/mycfunctionsforunix.so" if your add-on is a bootstrap add-on, then you don't need to use this method to convert a chrome:// path; instead, on startup ...
...don is packed, this will be addon xpi } this can then be joined with your file name to obtain it's path like this: function startup(adata, areason) { var jarpath_folder = 'jar:' + os.path.tofileuri(adata.installpath.path) + '!/'; // if unpacked is false in install.rdf this will look like: "jar:file:///c:/users/vayeate/appdata/roaming/mozilla/firefox/profiles/aksozfjt.unnamed%20profile%2010/
extensions/asynczip@jetpack!/" var filepath_folder = adata.installpath.path; // if unpacked is set to false in install.rdf this will look like: "c:\users\vayeate\appdata\roaming\mozilla\firefox\profiles\aksozfjt.unnamed profile 10\
extensions\asynczip@jetpack" var filepath_mylib = os.path.join(filepath_folder, 'mysubfolder', 'mycfunctionsforunix.so'); var jarpath_mylib = jarpath_folder + 'mysubf...
Source map errors - Firefox Developer Tools
the message looks a little different in this case: in this case, the error will also be displayed in the source tab in the debugger: networkerror when attempting to fetch resource a bug in firefox prevents it from loading source maps for web
extensions.
... see bug 1437937: web
extensions doesn't find source maps for details.
Deprecated tools - Firefox Developer Tools
although these panels have been removed, you still have access to the old code, and there are alternative web
extensions that you can try to get similar functionality.
... more details about the web audio editor alternatives alternatives include audion and https://github.com/spite/webaudioextension web
extensions.
Index - Firefox Developer Tools
6 dom inspector dom, dom:tools, dom_inspector,
extensions,
extensions:tools, themes, themes:tools, tools, web development, web development:tools, xul, xul:tools the dom inspector (also known as domi) is a developer tool used to inspect, browse, and edit the document object model of documents - usually web pages or xul windows.
...the cookies table has the following columns: 108 extension storage dev tools, extension storage, firefox, guide, storage, storage inspector, tools, l10n:priority this storage type is only shown when debugging
extensions.
Migrating from Firebug - Firefox Developer Tools
server logs firebug
extensions like firephp allow to log server-side messages to the firebug console.
... this functionality is already integrated into the devtools using the chromelogger protocol and doesn't require any
extensions to be installed.
about:debugging (before Firefox 68) - Firefox Developer Tools
add-ons the add-ons section in about:debugging only supports restartless add-ons, including basic bootstrapped
extensions, add-on sdk add-ons, and web
extensions.
...the temporary add-on will be displayed under the "temporary
extensions" header.
ANGLE_instanced_arrays - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
Clipboard - Web APIs
for web
extensions, you can request the clipboardread and clipboardwrite permissions to be able to use clipboard.readtext() and clipboard.writetext().
...see
extensions in firefox 63.
Document - Web APIs
extensions for htmldocument the document interface for html documents inherits from the htmldocument interface or, since html5, is extended for such documents.
... non-standard
extensions firefox notes mozilla defines a set of non-standard properties made only for xul content: document.currentscript returns the <script> element that is currently executing.
EXT_blend_minmax - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
EXT_color_buffer_half_float - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
EXT_disjoint_timer_query - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
EXT_frag_depth - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
EXT_sRGB - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
EXT_texture_compression_bptc - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
EXT_texture_compression_rgtc - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
HTML Drag and Drop API - Web APIs
for web sites,
extensions, and xul applications, you can customize which elements can become draggable, the type of feedback the draggable elements produce, and the droppable elements.
...(firefox supports some gecko-specific
extensions to the datatransfer object, but those
extensions will only work on firefox.) each datatransfer object contains an items property, which is a list of datatransferitem objects.
MediaKeyMessageEvent - Web APIs
the mediakeymessageevent interface of the encryptedmedia
extensions api contains the content and related data when the content decryption module generates a message for the session.
... examples // tbd specifications specification status comment encrypted media
extensionsthe definition of 'mediakeymessageevent' in that specification.
MediaKeySession - Web APIs
the mediakeysession interface of the encryptedmedia
extensions api represents a context for message exchange with a content decryption module (cdm).
... examples // tbd specifications specification status comment encrypted media
extensionsthe definition of 'mediakeysession' in that specification.
MediaKeyStatusMap - Web APIs
the mediakeystatusmap interface of the encryptedmedia
extensions api is a read-only map of media key statuses by key ids.
... specifications specification status comment encrypted media
extensionsthe definition of 'mediakeystatusmap' in that specification.
MediaKeySystemAccess - Web APIs
the mediakeysystemaccess interface of the encryptedmedia
extensions api provides access to a key system for decryption and/or a content protection provider.
... specifications specification status comment encrypted media
extensionsthe definition of 'mediakeysystemaccess' in that specification.
MediaKeys - Web APIs
the mediakeys interface of encryptedmedia
extensions api represents a set of keys that an associated htmlmediaelement can use for decryption of media data during playback.
... examples //tbd specifications specification status comment encrypted media
extensionsthe definition of 'mediakeys' in that specification.
MediaSource - Web APIs
the mediasource interface of the media source
extensions api represents a source of media data for an htmlmediaelement object.
... //console.log(mediasource.readystate); // ended }); sourcebuffer.appendbuffer(buf); }); }; function fetchab (url, cb) { console.log(url); var xhr = new xmlhttprequest; xhr.open('get', url); xhr.responsetype = 'arraybuffer'; xhr.onload = function () { cb(xhr.response); }; xhr.send(); }; specifications specification status comment media source
extensionsthe definition of 'mediasource' in that specification.
MimeType - Web APIs
mimetype.suffixes a string containing valid file
extensions for the data displayed by the plugin, or an empty string if an extension is not valid for the particular module.
... for example, a browser's content decryption module may appear in the plugin list but support more file
extensions than can be anticipated.
Navigator.requestMediaKeySystemAccess() - Web APIs
this method is part of the encrypted media
extensions api, which brings support for encrypted media and drm-protected video to the web.
... specifications specification status comment encrypted media
extensionsthe definition of 'requestmediakeysystemaccess()' in that specification.
OES_element_index_uint - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
OES_fbo_render_mipmap - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
OES_texture_float - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
OES_texture_float_linear - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
OES_texture_half_float - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
OES_texture_half_float_linear - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
OES_vertex_array_object - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
OVR_multiview2 - Web APIs
for more information, see also: multiview on webxr three.js multiview demo multiview in babylon.js optimizing virtual reality: understanding multiview multiview webgl rendering for oculus browser 6.0+ webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
Using Performance Timeline - Web APIs
the performance timeline standard defines
extensions to the performance interface to support client-side latency measurements within applications.
... performance
extensions performance timeline extends the performance object with three methods that provide different mechanisms to get a set of performance records (metrics), depending on the specified filter criteria.
Pointer Lock API - Web APIs
(from https://w3c.github.io/pointerlock/#
extensions-to-the-element-interface) pointerlockelement and exitpointerlock() the pointer lock api also extends the document interface, adding both a new property and a new method.
...
extensions to mouse events the pointer lock api extends the normal mouseevent interface with movement attributes.
PublicKeyCredential - Web APIs
methods publickeycredential.getclientextensionresults()secure context if any
extensions were requested, this method will return the results of processing those
extensions.
...*/, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(16), name: "jdoe@example.com", displayname: "john doe" }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { var response = newcredentialinfo.response; var client
extensionsresults = newcredentialinfo.getclientextensionresults(); }).catch(function (err) { console.error(err); }); getting an existing instance of publickeycredential here, we fetch an existing credential from an authenticator, using navigator.credentials.get().
RTCRtpCapabilities - Web APIs
an rtcrtpcapabilities object contains an array of objects conforming to rtcrtpcodeccapability (each describing the capabilities of one codec) and an array of the supported rtp header
extensions for that codec.
... header
extensions an array of objects conforming to the rtcrtpheaderextensioncapability dictionary.
RTCRtpParameters - Web APIs
header
extensions an array of zero or more rtp header
extensions, each identifying an extension supported by the sender or receiver.
... header
extensions are described in rfc 3550: 5.3.1.
Range - Web APIs
dom parsing and serializationthe definition of '
extensions to range' in that specification.
... css object model (cssom) view modulethe definition of '
extensions to range' in that specification.
WEBGL_color_buffer_float - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
WEBGL_compressed_texture_astc - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
WEBGL_compressed_texture_atc - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
WEBGL_compressed_texture_etc - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
WEBGL_compressed_texture_etc1 - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
WEBGL_compressed_texture_s3tc - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
WEBGL_debug_shaders - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
WEBGL_depth_texture - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
WEBGL_draw_buffers - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
WEBGL_lose_context - Web APIs
webgl
extensions are available using the webglrenderingcontext.getextension() method.
... for more information, see also using
extensions in the webgl tutorial.
WebGL constants - Web APIs
standard webgl constants are installed on the webglrenderingcontext and webgl2renderingcontext objects, so that you use them as gl.constant_name: var canvas = document.getelementbyid('mycanvas'); var gl = canvas.getcontext('webgl'); gl.getparameter(gl.line_width); some constants are also provided by webgl
extensions.
... static_read 0x88e5 static_copy 0x88e6 dynamic_read 0x88e9 dynamic_copy 0x88ea depth_component32f 0x8cac depth32f_stencil8 0x8cad invalid_index 0xffffffff timeout_ignored -1 max_client_wait_timeout_webgl 0x9247 constants defined in webgl
extensions angle_instanced_arrays constant name value description vertex_attrib_array_divisor_angle 0x88fe describes the frequency divisor used for instanced rendering.
Using Web Workers - Web APIs
performing web i/o in the background you can find an example of this in the article using workers in
extensions .
... chrome workers are a firefox-only type of worker that you can use if you are developing add-ons and want to use workers in
extensions and have access to js-ctypes in your worker.
Implementing a Microsoft Active Accessibility (MSAA) Server - Accessibility
msaa provides information in several different ways: a com interface (iaccessible) that allows applications to expose the tree of data nodes that make up each window in the user interface currently being interacted with and custom interface
extensions via interfaces via queryinterface and queryservice.
...this information may be in the form of
extensions to msaa, like mozilla has done with isimpledomnode (you can qi to it from iaccessible).
:-moz-locale-dir(ltr) - CSS: Cascading Style Sheets
note: this selector is mainly used by
extensions and themes to adapt the user interface based on the user's locale.
... (this can vary from window to window, and even from tab to tab.) it also allows
extensions to work even when they don't support the user's default locale, since they can support both left-to-right and right-to-left layouts regardless of locale specifics.
:-moz-locale-dir(rtl) - CSS: Cascading Style Sheets
note: this selector is mainly used by
extensions and themes to adapt the user interface based on the user's locale.
... (this can vary from window to window, and even from tab to tab.) it also allows
extensions to work even when they don't support the user's default locale, since they can support both left-to-right and right-to-left layouts regardless of locale specifics.
<color> - CSS: Cascading Style Sheets
mozilla system color
extensions -moz-buttondefault the border color that goes around buttons that represent the default action for a dialog box.
... mozilla color preference
extensions -moz-activehyperlinktext user's preference for text color of active links.
Audio and Video Delivery - Developer guides
media source
extensions (mse) media source
extensions is a w3c working draft that plans to extend htmlmediaelement to allow javascript to generate media streams for playback.
... encrypted media
extensions (eme) encrypted media
extensions is a w3c proposal to extend htmlmediaelement, providing apis to control playback of protected content.
HTML5 - Developer guides
online and offline events firefox 3 supports whatwg online and offline events, which let applications and
extensions detect whether or not there's an active internet connection, as well as to detect when the connection goes up and down.
...this also provides a simpler api for use by
extensions and mozilla-based applications.
HTML documentation index - HTML: Hypertext Markup Language
34 x-ms-acceleratorkey attribute, html, html:microsoft
extensions, non-standard, reference, x-ms-acceleratorkey the x-ms-acceleratorkey attribute accessibly declares that an accelerator key has been assigned to an element: the element is activated via javascript when the key(s) are pressed on a keyboard.
... 35 x-ms-format-detection attribute, html, html:microsoft
extensions, non-standard, reference, x-ms-format-detection the x-ms-format-detection attribute determines whether data formats within the element’s text, like phone numbers, are automatically converted to followable links.
Resource URLs - HTTP
resource urls, urls prefixed with the resource: scheme, are used by firefox and firefox browser
extensions to load resources internally, but some of the information is available to sites the browser connects to as well.
... in the past, web content was able to access whatever resource: uris were desired — not only firefox’s internal resources, but also
extensions’ assets.
Basics of HTTP - HTTP
on top of these basic concepts, numerous
extensions have been developed over the years that add updated functionality and semantics with new http methods or headers.
... resource urls resource urls, those prefixed with the resource scheme are used by firefox and firefox browser
extensions to load resources internally, but is also available to some sites the browser connects to as well.
Feature-Policy: encrypted-media - HTTP
the http feature-policy header encrypted-media directive controls whether the current document is allowed to use the encrypted media
extensions api (eme).
... encrypted media
extensionsthe definition of 'feature policy integration' in that specification.
Firefox user agent string reference - HTTP
ws mozilla/5.0 (windows nt 5.2; rv:10.0.1) gecko/20100101 firefox/10.0.1 seamonkey/2.7.1 seamonkey on mac mozilla/5.0 (macintosh; intel mac os x 10.5; rv:10.0.1) gecko/20100101 firefox/10.0.1 seamonkey/2.7.1 seamonkey on linux mozilla/5.0 (x11; linux i686; rv:10.0.1) gecko/20100101 firefox/10.0.1 seamonkey/2.7.1 implementation notes for applications, vendors, and
extensions prior to firefox 4 and gecko 2.0, it was possible for
extensions to add user agent parts through the general.useragent.extra.identifier preferences, (see the obsolete user agent strings reference).
... in the past, specific plug-ins, add-ons or
extensions added user agent parts to notify sites they were installed.
Introduction - JavaScript
for example, client-side
extensions allow an application to place elements on an html form and respond to user events such as mouse clicks, form input, and page navigation.
...for example, server-side
extensions allow an application to communicate with a database, provide continuity of information from one invocation to another of the application, or perform file manipulations on a server.
JavaScript modules - JavaScript
aside — .mjs versus .js throughout this article, we've used .js
extensions for our module files, but in other resources you may see the .mjs extension used instead.
...once we turned off automatically hiding file
extensions, and trained it to accept .mjs, it was ok.
Intl - JavaScript
bcp 47 also allows for
extensions, each consisting of a single digit or letter (other than "x") and one or more two- to eight-letter or digit tags, all separated by hyphens.
... locale negotiation the list of locales specified by the locales argument, after unicode
extensions have been removed from them, is interpreted as a prioritized request from the application.
Object.isExtensible() - JavaScript
an object can be marked as non-extensible using object.prevent
extensions(), object.seal(), or object.freeze().
...object.prevent
extensions(empty); object.isextensible(empty); // === false // sealed objects are by definition non-extensible.
Object.isSealed() - JavaScript
object.prevent
extensions(empty); object.issealed(empty); // === true // the same is not true of a non-empty object, // unless its properties are all non-configurable.
... var hasprop = { fee: 'fie foe fum' }; object.prevent
extensions(hasprop); object.issealed(hasprop); // === false // but make them all non-configurable // and the object becomes sealed.
Comparing Reflect and Object methods - JavaScript
prevent
extensions() object.prevent
extensions() returns the object that is being made non-extensible.
... reflect.prevent
extensions() returns true if the object has been made non-extensible, and false if it has not.
eval() - JavaScript
see also downloading json and javascript in
extensions.
...this advice applies mainly to
extensions and xul applications, which can use components.utils.evalinsandbox for this.
Web video codec guide - Web media technologies
[2] edge supports theora with the optional web media
extensions add-on.
... container support 3gp, ogg, webm rtp / webrtc compatible yes; vp8 is one of the spec-required codecs for webrtc supporting/maintaining organization google specification rfc 6386 licensing open and free of royalties and any other licensing requirements [1] edge support for vp8 requires the use of media source
extensions.
SVG Conditional Processing Attributes - SVG: Scalable Vector Graphics
externalresourcesrequired required
extensions requiredfeatures systemlanguage attributes externalresourcesrequired deprecated since svg 2 if set to true, it indicates that the browser must wait for all the external resources necessary to render that element to be loaded before processing the associated element.
... value: false|true; animatable: no required
extensions list all the browser specific capabilities that must be supported by the borwser to be allowed to render the associated element.
SVG Attribute reference - SVG: Scalable Vector Graphics
order orient orientation origin overflow overline-position overline-thickness p panose-1 paint-order path pathlength patterncontentunits patterntransform patternunits ping pointer-events points pointsatx pointsaty pointsatz preservealpha preserveaspectratio primitiveunits r r radius referrerpolicy refx refy rel rendering-intent repeatcount repeatdur required
extensions requiredfeatures restart result rotate rx ry s scale seed shape-rendering slope spacing specularconstant specularexponent speed spreadmethod startoffset stddeviation stemh stemv stitchtiles stop-color stop-opacity strikethrough-position strikethrough-thickness string stroke stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stro...
... xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xml:lang xml:space y y y1 y2 ychannelselector z z zoomandpan svg attributes by category generic attributes core attributes id, lang, tabindex, xml:base, xml:lang, xml:space style attributes class, style conditional processing attributes externalresourcesrequired, required
extensions, requiredfeatures, systemlanguage.
Example - SVG: Scalable Vector Graphics
this is done completely in w3c standards–xhtml, svg, and javascript–no flash or any vendor-specific
extensions.
... </p> <p> this is done completely in w3c standards–xhtml, svg and javascript–no flash or any vendor specific
extensions. currently, this will work in mozilla firefox version 1.5 and above.
Introduction to using XPath in JavaScript - XPath
this document describes the interface for using xpath in javascript internally, in
extensions, and from websites.
...="10 downing street" city="london" country="uk"/> <phonenumber>020 7925 0918</phonenumber> </person> </people> to make the contents of the xml document available within the extension, we create an xmlhttprequest object to load the document synchronously, the variable xmldoc will contain the document as an xmldocument object against which we can use the evaluate method javascript used in the
extensions xul/js documents.
context-menu - Archive of obsolete content
if the total number of menu items in the main context menu from all add-ons exceeds a certain number (normally 10 but configurable with the
extensions.addon-sdk.context-menu.overflowthreshold preference) all of the menu items will instead appear in an overflow menu to avoid making the context menu too large.
tabs - Archive of obsolete content
this may come from http headers or other sources of mime information, and might be affected by automatic type conversions performed by either the browser or
extensions.
preferences/event-target - Archive of obsolete content
example var { prefstarget } = require("sdk/preferences/event-target"); // listen to the same branch which reqire("sdk/simple-prefs") does var target = prefstarget({ branchname: "
extensions." + require("sdk/self").preferencesbranch + "." }); target.once("test", function(prefname) { console.log(prefname) // logs "test" console.log(target.prefs[name]) // logs true }); target.once("", function() { console.log(prefname) // logs "test" console.log(target.prefs[name]) // logs true }) // changing a pref which our target listens to require("sdk/simple-prefs").prefs.test = true; ...
system/child_process - Archive of obsolete content
const { emit } = require('sdk/event/core'); const { spawn } = require('sdk/system/child_process'); var proc = spawn("/bin/cat"); emit(proc.stdin, 'data', "hello from add-on code"); emit(proc.stdin, 'end'); using child_process in non-jpm
extensions // import sdk stuff const commonjs_uri = 'resource://gre/modules/commonjs'; const { require } = cu.import(commonjs_uri + '/toolkit/require.js', {}); var child_process = require('sdk/system/child_process'); // use it in the same way as in the example above ...
Canvas code snippets - Archive of obsolete content
context(canvas) .strokestyle('rgb(30, 110, 210)') .transform(10, 3, 4, 5, 1, 0) .strokerect(2, 10, 15, 20) .context; // use property name as a function (but without arguments) to get the value var strokestyle = canvas2dcontext(canvas) .strokestyle('rgb(50, 110, 210)') .strokestyle(); code usable only from privileged code these snippets are only useful from privileged code, such as
extensions or privileged apps.
File I/O - Archive of obsolete content
write path to prefs var prefs = services.prefs.getbranch("
extensions.myext."); prefs.setcomplexvalue("filename", components.interfaces.nsifile, file); // 2.
Page Loading - Archive of obsolete content
page loading on page load how to execute code each time a new page is loaded in browser/mail progress listeners progress listeners allow
extensions to be notified of events associated with documents loading in the browser and with tab switching events.
Sidebar - Archive of obsolete content
users have been known to complain about this "feature", and if two or more
extensions try to open their sidebars on startup, the user will see a flurry of sidebars opening and closing with which ever extension going last "winning".
Default Preferences - Archive of obsolete content
inside your file you set preferences using the pref() function: pref("name", "value") example: pref('
extensions.defaultprefs.example.int', 1); pref('
extensions.defaultprefs.example.float', 0.1); pref('
extensions.defaultprefs.example.string', 'fadf'); pref('
extensions.defaultprefs.example.bool', true); notice that unlike when you're reading preferences, writing default preferences uses the same function no matter the data type of the preference.
Legacy Add-ons - Archive of obsolete content
this section contains links to documentation for legacy technology for add-on development, including: add-on sdk legacy
extensions for firefox for android earlier technology bootstrapped
extensions overlay
extensions ...
Observer Notifications - Archive of obsolete content
getservice(components.interfaces.nsiobserverservice); observerservice.addobserver(testobserver, "xulschoolhello-test-topic", false); you should come up with a notification topic that is unique so you know it will not conflict with firefox or other
extensions topics.
XUL School Tutorial - Archive of obsolete content
introduction introduction getting started with firefox
extensions the essentials of an extension setting up a development environment javascript object management basic functionality adding menus and submenus adding toolbars and toolbar buttons adding events and commands adding windows and dialogs adding sidebars user notifications and alerts intermediate functionality intercepting page loads connecting to remote content handling preferences local storage advanced topics the box ...
Localizing an extension - Archive of obsolete content
« previousnext » see also how to localize html pages, xul files, and js/jsm files from bootstrapped add-ons: bootstrapped
extensions :: localization (l10n) xul school localization tutorial: dtd/entities method and properties method ...
Making a Mozilla installation modifiable - Archive of obsolete content
although mozilla stores the ui files in jar archives, it can also access them in their original, unarchived form, which is useful for the
extensions developer because it makes it unnecessary to extract the files from the archive before changing the code and then re-add them to the archive afterwards.
Repackaging Firefox - Archive of obsolete content
however, it's still recommended that you look through this tutorial, as it contains tips specific for creating
extensions of this type, and there are a few options that you will need to set to ensure a smooth upgrade path for users.
Firefox Sync - Archive of obsolete content
related info javascript client api (useful for interacting with sync from mozilla applications, including developing
extensions against sync) syncing custom preferences (useful for extension developers) code snippets (demonstrates common actions with the javascript api) ...
Message Summary Database - Archive of obsolete content
there are a set of generic property methods so that core code and
extensions can set attributes on msg headers without changing nsimsghdr.idl.msg threads we store thread information persistently in the database and expose these object through the [nsimsgthread interface.
Mozilla Application Framework in Detail - Archive of obsolete content
the technology that makes this possible, xpinstall, allows application developers to write javascript installations that manage special cross-platform installation archives (called xpis, or "zippies"), in which packages such as new skins for the browser, patches, browser
extensions, new gecko-based applications, and third party standalone applications are stored.
Plug-n-Hack Phase1 - Archive of obsolete content
security tool commands manifest an example commands manifest (for owasp zap) is: https://code.google.com/p/zap-
extensions/source/browse/branches/beta/src/org/zaproxy/zap/extension/plugnhack/resource/service.json firefox ui in firefox the tool commands will be made available via the developer toolbar (gcli) https://developer.mozilla.org/docs/tools/gcli a example of how the zap commands are currently displayed is: note that user specified parameters can be specified for commands, which can either be free text, a stat...
Plug-n-Hack - Archive of obsolete content
security researchers commonly use security tools in conjunction with browsers, but until now direct integration has required writing platform and browser specific
extensions.
Video presentations - Archive of obsolete content
mozilla is actively working to produce video presentations that can help you learn how the mozilla codebase works and how to take advantage of its technology in your own applications and
extensions.
enumKeys - Archive of obsolete content
var winreg = getwinregistry(); winreg.setrootkey(winreg.hkey_local_machine); var index = 0; var basekey = "software\\mozilla"; while ( (mozillaversion = winreg.enumkeys(basekey,index)) != null ) { logcomment("mozillaversion = " + mozillaversion); subkey = basekey + "\\" + mozillaversion + "\\
extensions"; pluginsdir = winreg.getvaluestring ( subkey, "plugins" ); if ( pluginsdir ) logcomment("pluginsdir = " + pluginsdir); else logcomment("no plugins dir for " + basekey + "\\" + mozillaversion); index++; } ...
XTech 2006 Presentations - Archive of obsolete content
etna, a wysiwyg xml relax ng- and gecko-based editor - daniel glazman this presentation describes etna, a new wysiwyg xml editor based on gecko, the relax ng parser and validator disruptive innovations implemented for it and its query api, and relax ng
extensions that were necessary to solve very old and well known problems in markup languages.
findbar - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] in gecko 1.9, the findbar widget moved into toolkit, so it's available to any xul application, as well as
extensions.
Menus - Archive of obsolete content
for more information about how to use an overlay to modify a menu, see using menus and popups in
extensions the following tables list the ids of menus in firefox that are commonly overlaid upon.
Printing from a XUL App - Archive of obsolete content
structure of an installable bundle: describes the common structure of installable bundles, including
extensions, themes, and xulrunner applications extension packaging: specific information about how to package
extensions theme packaging: specific information about how to package themes multiple-item extension packaging: specific information about multiple-item extension xpis xul application packaging: specific information about how to package xulrunner applications chrome registration printing in xul apps ...
Introduction - Archive of obsolete content
<vbox datasources="rdf:bookmarks http://www.xulplanet.com/ds/sample.rdf"> in addition, when using the rdf type for chrome xul (such as in
extensions), the datasource rdf:local-store is always included in the composite.
Template Guide - Archive of obsolete content
ries to generate more results building trees with templates building trees building hierarchical trees template modifications template builder interface template and tree listeners rdf modifications additional topics sorting results additional template attributes template logging xml namespaces alternative approaches javascript templates xuljsdatasource: a component for
extensions, which bring a "javascript template syntax".
The Joy of XUL - Archive of obsolete content
see also http://www.mozilla.org/scriptable/
extensions documentation, including the building an extension introductory tutorial mozilla calendar project page original document information author: peter bojanic ...
Toolbars - Archive of obsolete content
customizable toolbars firefox or other toolkit applications have customizable toolbars; therefore, many
extensions add their toolbar buttons to the toolbar palette, rather than adding them directly to the toolbar.
Using multiple DTDs - Archive of obsolete content
assuming you have an entity called somebutton.label defined in mainwindow.dtd, you can access the entity like this: <button id="somebutton" label="&somebutton.label"> multiple dtds if you want to use multiple dtds with your xul file, you can simply list all of the dtds inside your dtd declaration: <!doctype window [ <!entity % commondtd system "chrome://my
extensions/locale/common.dtd"> %commondtd; <!entity % mainwindowdtd system "chrome://myextension/locale/mainwindow.dtd"> %mainwindowdtd; ]> you can now access the entities declared in the dtds as shown above.
XUL accessibility tool - Archive of obsolete content
add the tool into the addons.mozilla.org review process go through the most useful/popular
extensions with tool and fix a11y issues add checker to tinderbox so that bugs are caught at checkin time some or all of this work could be done through grants, and a likely person to oversee the grant deliverables and milestones would be mark finkle.
preferences - Archive of obsolete content
examples <preferences> <preference id="pref_one" name="
extensions.myextension.one" type="bool"/> <preference id="pref_two" name="
extensions.myextension.two" type="string"/> ...
prefpane - Archive of obsolete content
ge, label, onpaneload, selected, src properties image, label, preferenceelements, preferences, selected, src examples methods preferenceforelement <prefpane id="panegeneral" label="general" src="chrome://path/to/paneoverlay.xul"/> or <prefpane id="panegeneral" label="general" onpaneload="ongeneralpaneload(event);"> <preferences> <preference id="pref_one" name="
extensions.myextension.one" type="bool"/> ...
tabbrowser - Archive of obsolete content
note: starting in firefox 3 (xulrunner/gecko 1.9), this is only used in the main firefox window and cannot be used in other xul windows by third-party applications or
extensions.
toolbar - Archive of obsolete content
this introduces a potential compatibility problem for
extensions that depend on being able to identify all possible toolbar items by looking in the toolbarpalette.
XUL Application Packaging - Archive of obsolete content
optional - default value is any xulrunner less than xulrunner 2 example: maxversion=1.8.0.* the [xre] section the xre section specifies various features of xulrunner startup that can be enabled enableextensionmanager specifies whether to enable
extensions and extension management.
XUL Explorer - Archive of obsolete content
support attribute value checking where appropriate (boolean and enumerated values) - xul checker support “best practice” checks such as: using of commands and keys, strings in dtds and so on - xul checker multi-tabbed editor support support wizards to generate common projects -
extensions support extension testing using firefox extension test mode venkman support dom inspector support future: support more “best practice” checks such as: more a11y checks, strings in dtds and so on - xul checker allow users to add snippets on the fly add sidebars for more functionality - property sidebar and project sidebar support wizards to generate common projects - xul files, js x...
2006-11-10 - Archive of obsolete content
build problem firefox 2.0 on fc3 november 10th: vin downloaded the latest firefox 2 rc3 and tried to build it on fc3 with the following options: ./configure --enable-application=browser --prefix=$prefix --enable-
extensions=default,spatialnavigation then he tried running "make" and received the following error: /usr/bin/ld: testtarray.o(.text+0x2237): unresolvable relocation against symbol `nstarray_base::semptyhdr' /usr/bin/ld: final link failed: nonrepresentable section on output collect2: ld returned 1 exit status gmake[3]: *** [testtarray] error 1 gmake[3]: leaving directory `/usr/mozilla2/src/mozilla/xpcom/...
Common Firefox theme issues and solutions - Archive of obsolete content
to accomplish this copy the file chrome://mozapps/skin/
extensions/
extensions.svg from the default theme into the mozapps/
extensions/ folder of your theme and add the following style rule to the css file
extensions.css: .addon[active="false"] .icon { filter: url("chrome://mozapps/skin/
extensions/
extensions.svg#greyscale"); opacity:0.3; } about:memory about:memory nodes do not collapse the styling of about:memory is a little messed up in that nodes do not ...
ECMAScript 2015 support in Mozilla - Archive of obsolete content
otypeof() (firefox 31) object.assign() (firefox 34) object.getownpropertysymbols() (firefox 33) additions to the date object date.prototype is an ordinary object (firefox 41) generic date.prototype.tostring (firefox 41) date.prototype[@@toprimitive] (firefox 44) new promise object promise (firefox 24, enabled by default in firefox 29) new proxy object proxy (firefox 18) prevent
extensions() trap (firefox 22) isextensible() trap (firefox 31) getprototypeof() and setprototypeof() traps (firefox 49) new reflect object reflect (firefox 42) additions to the regexp object regexp sticky (y) flag (firefox 38) regexp unicode (u) flag (firefox 46) generic regexp.prototype.tostring (firefox 39) regexp.prototype[@@match]() (firefox 49) regexp.prototype[@@replace]() (firefox 49...
Archived JavaScript Reference - Archive of obsolete content
to make the function a legacy generator, the function body should contain at least one yield expression.microsoft javascript
extensionsmicrosoft browsers (internet explorer, and in a few cases, microsoft edge) support a number of special microsoft
extensions to the otherwise standard javascript apis.new in javascriptthis chapter contains information about javascript's version history and implementation status for mozilla/spidermonkey-based javascript applications, such as firefox.number.tointeger()the number.tointeger() method us...
Old Proxy API - Archive of obsolete content
object.freeze(proxy) object.seal(proxy) object.prevent
extensions(proxy) fix: function() -> propertydescriptor map (indexed on property names) | undefined should return an object that maps property names to property descriptors.
MDN Web Docs Glossary: Definitions of Web-related terms
urn usenet user agent utf-8 ux v validator value variable vendor prefix viewport visual viewport voip w w3c wai wcag web performance web server web standards webassembly webdav web
extensions webgl webidl webkit webm webp webrtc websockets webvtt whatwg whitespace world wide web wrapper x xforms xhr (xmlhttprequest) xhtml xinclude xlink xml xpath xquery xslt other ...
About Scriptable Interfaces - Interfaces
python there's an extension
extensions/python that bridges the gap between xpcom and python, allowing scriptable interfaces to be used/implemented from/in python scripts.
Introduction to events - Learn web development
also, it is important to understand that the different contexts in which javascript is used have different event models — from web apis to other areas such as browser web
extensions and node.js (server-side javascript).
Strategies for carrying out testing - Learn web development
when running tests, it can also be a good idea to: set up a separate browser profile where possible, with browser
extensions and other such things disabled, and run your tests in that profile (see use the profile manager to create and remove firefox profiles and share chrome with others or add personas, for example).
Command line crash course - Learn web development
although there's a great wealth of tools available from the command line, if you're using tools like visual studio code there's also a mass of
extensions that can be used as a proxy to using terminal commands without needing to use the terminal directly.
Introducing a complete toolchain - Learn web development
tools used in our toolchain in this article we're going to use the following tools and features: jsx, a react-related set of syntax
extensions that allow you to do things like defining component structures inside javascript.
Information for users
features include assistive technology support on windows (like window-eyes, jaws, etc.), firefox keyboard support, available accessibility
extensions like fire vox and other
extensions.
Theme concepts
themes developed using the web
extensions api in firefox enable you to change the look of the browser by adding images to the header area of the firefox browser; this is the area behind the menu bar, toolbars, address bar, search bar, and tab strip.
Themes
tools & resources browser theme manifest.json keys browser
extensions theme api discourse forum theme related blog posts archived resources ...
Adding a new word to the en-US dictionary
get into the dictionary sources directory using this command: cd
extensions/spellcheck/locales/hunspell/dictionary-sources there's a special script used for editing dictionaries.
Command line options
-safe-mode launches the application with all
extensions disabled, for that launch only (
extensions are not loaded, but are not permanently disabled in the extension manager data source).
Debugging update problems
useful preferences enabling the following preferences in about:config can help troubleshoot problems with updates: app.update.log - for application updates;
extensions.logging.enabled - for add-on updates.
Simple Instantbird build
building purplexpcom and libpurple first download the purplexpcom code: hg clone http://hg.mozilla.org/users/florian_queze.net/purple mozilla/
extensions/purple if you've set up your build environment as above, then all you need to do is: echo 'ac_add_options --enable-
extensions=purple' >> .mozconfig in the comm-central directory, or just add the ac_add_options --enable-
extensions=purple line to your .mozconfig with your favorite editor.
Creating Custom Events That Can Pass Data
(see bug 427537) requirements in order to do this you must be able to do all of the following: download mozilla source code build mozilla creating custom firefox
extensions with the mozilla build system.
Gecko Logging
we rotate four log files with .0, .1, .2, .3
extensions.
Multiple Firefox profiles
for example, you might want to have some
extensions installed for web development, but not for general-purpose web browsing.
Message manager overview
in multiprocess firefox there are (at least) two processes: the chrome process, also called the parent process, runs the browser ui (chrome) code and code inserted by
extensions one or more content processes, also called child processes.
Message manager overview
in the initial version of multiprocess firefox there are two processes: the chrome process, also called the parent process, runs the browser ui (chrome) code and code inserted by
extensions the content processes, also called the child processes, run all web content.
Browser API
api
extensions: the api includes several new methods and events to manipulate and listen for changes to the embedded content's state, interited by the htmliframeelement interface.
Overview of Mozilla embedding APIs
interface definition: nsiprofile the profile manager creates and manages user profiles; each profile is essentially a complete configuration of the application, including preferences, installed
extensions, and so forth.
Gecko SDK
once the sdk enters beta, it is suitable for building
extensions; your component should work with release builds of the sdk without any modifications.
How test harnesses work
gathers the tests (manifestdestiny) potentially sets up an http server for test data (mozhttpd) invokes the binary (mozrunner) it is the job of the shim extension to shut down the browser logging (mozlog, in theory) (run tests, accrue results) cleanup: shutdown the browser check for crashes (mozcrash) reporting (moztest) marionette tests list of testing
extensions pageloader (talos) mochitest: //github.com/realityripple/uxp/blob/master/testing/mochitest/install.rdf (mochitest) ...
JavaScript-DOM Prototypes in Mozilla
one of these interfaces is nsidomhtmlimageelement, others are nsidomnshtmlimageelement (netscape
extensions to the standard interface), nsidomeventtarget, nsidomeventlistener, nsidom3node, and so on.
PopupNotifications.jsm
note: this code module is imported by firefox chrome windows, so you don't have to do it yourself in most
extensions.
JavaScript code modules
for example, a module could be used by firefox itself as well as by
extensions, in order to avoid code duplication.
Application Translation with Mercurial
paste the following content into the file: [ui] username = firstname lastname <mynick@example.com> merge = internal:merge [alias] qexport = export -g -r qtip qexportall = diff -r qparent [defaults] commit = -v diff = -p -u 8 qdiff = -p -u 8 qnew = -u [diff] git = 1 showfunc = 1 unified = 8 [
extensions] hgext.mq = progress = [hooks] put in your name and email address which later will be public on the internet after your translation patch got accepted and uploaded.
Bootstrapping a new locale
mkdir -p ab-cd/browser/installer ab-cd/browser/profile/chrome ab-cd/browser/searchplugins ab-cd/browser/updater ab-cd/toolkit cp -r mozilla-1.9.x/browser/locales/ ab-cd/browser cp -r mozilla-1.9.x/dom/locales/ ab-cd/dom cp -r mozilla-1.9.x/editor/locales/ ab-cd/editor cp -r mozilla-1.9.x/
extensions/reporter/locales/chrome ab-cd/
extensions cp -r mozilla-1.9.x/netwerk/locales/ ab-cd/netwerk cp -r mozilla-1.9.x/other-licenses/branding/firefox/locales/ ab-cd/other-licenses cp -r mozilla-1.9.x/security/manager/locales/ ab-cd/security cp -r mozilla-1.9.x/toolkit/locales/ ab-cd/toolkit getting started change your directory to the new working directory so you are in the ~/[your working directory...
L10n Checks
"seamonkey" with its
extensions), e.g.: check-l10n-completeness -f suite/locales/l10n.ini ../l10n/ de test the reference locale in the source mode you can tell l10n checks to also check the reference locale, by setting the -e parameter (requires the -a parameter to be set too), e.g.: check-l10n-completeness -a 1 -e suite/locales/l10n.ini ../l10n/ de turbo mode in the source mode you can tell l10n checks to look only for missi...
Localizing with Mercurial
here's how to create a l10n patch with hg and the mq extension: enable mq by adding hg.ext = to your mercurial config file (~/.hgrc on unix-like systems or mercurial.ini on windows) under the [
extensions] section.
Localization formats
warning: this document pertains to the development of mozilla web sites and not to the development of gecko-based
extensions or applications.
gettext
warning: this document pertains to the development of mozilla web sites and not to the development of gecko-based
extensions or applications.
Mozilla external string guide
the mozilla codebase used to have a notion of "external" strings, which were the string classes visible to code outside of the mozilla codebase (
extensions, xulrunner applications, and embedders).
Preferences
related topics xul, javascript, xpcom,
extensions, developing mozilla ...
Patches and pushes
in list.txt, add the search plugin's xml filename (without
extensions) on a new line and save.
Profile Manager
future enhancements ability to install/uninstall/enable/disable
extensions in profiles.
McCoy
https://fireclipse.svn.sourceforge.net/svnroot/fireclipse/trunk/fireclipse
extensions/chromebug/mccoy/signontheline/ bug 396525 - patch to mccoy https://bugzilla.mozilla.org/show_bug.cgi?id=396525 signing update manifests before you release your add-on in order to verify the update manifests applications need to already have information from you for how to verify it.
NSS_3.11.10_release_notes.html
bug 398680: assertion botch in ssl3_registerserverhello
extensionsender doing second handshake with ssl_forcehandshake bug 403240: threads hanging in nss_initlock bug 403888: memory leak in trustdomain.c bug 416067: certutil -l -h token doesn't report token authentication failure bug 417637: tstclnt crashes if -p option is not specified bug 421634: don't send an sni client hello extension bearing an ipv6 address bug 422918: add verisign class 3 publi...
NSS 3.22 release notes
256 for pbkdf ckp_pkcs5_pbkd2_hmac_sha512_224 - prf based on hmac with sha-512 truncated to 224 bits for pbkdf (not supported) ckp_pkcs5_pbkd2_hmac_sha512_256 - prf based on hmac with sha-512 truncated to 256 bits for pbkdf (not supported) in secoidt.h nss_use_alg_in_ssl nss_use_policy_in_ssl in ssl.h ssl_enable_signed_cert_timestamps in sslt.h ssl_max_
extensions is updated to 13 notable changes in nss 3.22 nss c++ tests are built by default, requiring a c++11 compiler.
NSS 3.23 release notes
notable changes in nss 3.23 the copy of sqlite shipped with nss has been updated to version 3.10.2 (bug 1234698) the list of tls
extensions sent in the tls handshake has been reordered to increase compatibility of the extended master secret with servers (bug 1243641) the build time environment variable nss_enable_zlib has been renamed to nss_ssl_enable_zlib (bug 1243872).
NSS 3.31 release notes
corrected the encoding of domain name constraints
extensions created by certutil nss supports a clean seeding mechanism for *nix systems now using only /dev/urandom.
NSS 3.46 release notes
bugs fixed in nss 3.46 bug 1572164 - don't unnecessarily free session in nsc_wrapkey bug 1574220 - improve controls after errors in tstcln, selfserv and vfyserv cmds bug 1550636 - upgrade sqlite in nss to a 2019 version bug 1572593 - reset advertised
extensions in ssl_construct
extensions bug 1415118 - nss build with ./build.sh --enable-libpkix fails bug 1539788 - add length checks for cryptographic primitives (cve-2019-17006) bug 1542077 - mp_set_ulong and mp_set_int should return errors on bad values bug 1572791 - read out-of-bounds in der_decodetimechoice_util from sslexp_delegatecredential bug 1560593 - cleanup.sh script does not set error exit ...
NSS API Guidelines
it also provides general certificate-handling routines (create a certificate, verify, add/check certificate
extensions).
Enc Dec MAC Output Public Key as CSR
ilure; goto cleanup; } arena = port_newarena(der_default_chunksize); if (!arena) { fprintf(stderr, "out of memory"); rv = secfailure; goto cleanup; } exthandle = cert_startcertificaterequestattributes(cr); if (exthandle == null) { port_freearena (arena, pr_false); rv = secfailure; goto cleanup; } cert_finish
extensions(exthandle); cert_finishcertificaterequestattributes(cr); /* der encode the request */ encoding = sec_asn1encodeitem(arena, null, cr, sec_asn1_get(cert_certificaterequesttemplate)); if (encoding == null) { pr_fprintf(pr_stderr, "der encoding of request failed\n"); rv = secfailure; goto cleanup; } /* sign the reques...
NSS cryptographic module
the nss cryptographic module uses the industry standard pkcs #11 v2.20 as its api with some
extensions.
Rhino and BSF
see xalan-java
extensions for more information on adding javascript to xsl and the description of the optional script task in the apache ant manual for using scripting in ant build files.
Rhino overview
if other properties files with
extensions corresponding to the current locale exist, they will be used instead.
Creating JavaScript jstest reftests
non262 tests the directory js/src/tests/non262/ should contain all tests of the following type: regressions of spidermonkey non-standard spidermonkey
extensions to the javascript language test of "implementation-defined" details of the ecmascript standard for example, the exact definition of pi or some details of array sorting.
FOSS
python http://pypi.python.org/pypi/python-spidermonkey wxwidgets gluescript (formerly wxjavascript) code generators jsapigen - generates bindings for embedding spidermonkey in c applications
extensions http://code.google.com/p/jslibs/ - zlib, sqlite, nspr, ode, libpng, libjpeg, libffi, (...) libraries for spidermonkey http://www.jsdb.org/ - a js shell with native objects for files, networks, databases, compression, email, etc.
SpiderMonkey Internals
in addition to the interpreter, spidermonkey contains a just-in-time (jit) compiler, a garbage collector, code implementing the basic behavior of javascript values, a standard library implementing ecma 262-5.1 §15 with various
extensions, and a few public apis.
JSVersion
sversion_1_5obsolete since jsapi 24 150 javascript 1.5 "1.5" jsversion_1_6 160 javascript 1.6 "1.6" jsversion_1_7 170 javascript 1.7 "1.7" jsversion_1_8 180 javascript 1.8 "1.8" jsversion_ecma_5 185 ecma 262 edition 5 "ecmav5" jsversion_default 0 latest javascript version, but omitting web-incompatible
extensions "default" jsversion_unknown -1 unknown javascript version null jsversion_latest jsversion_ecma_5 latest javascript version null see also mxr id search for jsversion js_getversion js_setversion js_stringtoversion js_versiontostring bug 824312 ...
JS_IsExtensible
see also mxr id search for js_prevent
extensions js_prevent
extensions bug 492845 ...
JS_ParseJSON
various json
extensions like trailing commas, unquoted property names, more generous number parsing, and so on are not supported.
JSAPI reference
otype added in jsapi 17 js_getfunctionprototype added in spidermonkey 17 js_getarrayprototype added in spidermonkey 24 js_getconstructor js_getglobalforobject js_getinstanceprivate js_getprototype js_setprototype js_getprivate js_setprivate js_freezeobject added in spidermonkey 1.8.5 js_deepfreezeobject added in spidermonkey 1.8.5 js_isextensible added in spidermonkey 1.8.5 js_prevent
extensions added in spidermonkey 45 js_instanceof js_hasinstance js_isnative added in spidermonkey 17 js::toprimitiveadded in spidermonkey 45 js::newfunctionfromspecadded in spidermonkey 45 js_defaultvalueobsolete since jsapi 44 js_get_class obsolete since jsapi 13 js_sealobject obsolete since javascript 1.8.5 js_getparent obsolete since jsapi 39 js_setparent obsolete since jsapi 39 standard ...
Shell global objects
issimdavailable returns true if simd
extensions are supported on this platform.
XForms Accessibility
build it yourself if you would like to build firefox/seamonkey yourself then please ensure your .mozconfig file has the following option: ac_add_options --enable-
extensions=default,xforms,schema-validation how to test there are two approaches to test xforms accessibility.
History Service Design
this system provides additional performance, flexibility, and querying capabilities over the old one, for both end users and
extensions developers.
Places
displaying places information using views how to use places views to display places data in your own applications or
extensions.
STEEL
objects extiapplication objects extiapplication exticonsole extieventitem extieventlistener extievents extiextension exti
extensions extipreference extipreferencebranch extisessionstorage steeliapplication objects steeliapplication xpcom although the steel steeliapplication object is preloaded into xul scripts, it is not preloaded into javascript xpcom code.
Generating GUIDs
guids are used in mozilla programming for identifying several types of entities, including xpcom interfaces (this type of guids is callled iid), components (cid), and legacy add-ons—like
extensions and themes—that were created prior to firefox 1.5.
Using XPCOM Components
though not every api in mozilla is or should be "xpcomified", much if not all of the typical functionality that browsers provide is available in components that can be reused via browser
extensions and/or gecko embedders.
Development
source the latest source code is available on the mozilla trunk, in the
extensions/java/xpcom directory.
Examples
the test apps can be found at mozilla/
extensions/java/xpcom/tests.
appShellService
then again, there's a much easier way; one of the xpcshell
extensions is a quit function: quit(3) ...
XPCShell Reference
for instance, assume that you have a file called test.js with the following contents: for (prop in arguments) { print(prop + "=" + arguments[prop]); } entering the following at the command line should produce the following output: $ xpcshell test.js this is a test 0=this 1=is 2=a 3=test xpcshell
extensions once you execute xpcshell without a script you'll be at the js> command line.
Language bindings
this can be particularly handy with restartless (boostrapped)
extensions, so that you can unload an old version of a code module when a new version of your add-on is installed.components.utils.unwaivexraysundo a previous call to components.utils.waivexrays(), restoring xray vision for the caller.components.utils.waivexrayswaives xray vision for an object, giving the caller a transparent wrapper to the underlying object.javaxpcomjavaxpcom allows for communication betwe...
amIInstallCallback
toolkit/mozapps/
extensions/amiinstalltrigger.idlscriptable a callback function that web pages can implement to be notified when triggered installs complete.
amIInstallTrigger
toolkit/mozapps/
extensions/amiinstalltrigger.idlscriptable called when an install completes or fails.
amIWebInstallInfo
toolkit/mozapps/
extensions/amiwebinstalllistener.idlscriptable this interface is used by the default implementation of amiwebinstalllistener to communicate with the running application and allow it to warn the user about blocked installs and start the installs running.
amIWebInstallListener
toolkit/mozapps/
extensions/amiwebinstalllistener.idlscriptable starts all installs.
amIWebInstallPrompt
toolkit/mozapps/
extensions/amiwebinstalllistener.idlscriptable called when installation by websites is currently disabled.
amIWebInstaller
toolkit/mozapps/
extensions/amiwebinstaller.idlscriptable this interface is used to allow web pages to start installing add-ons.
mozIPersonalDictionary
extensions/spellcheck/idl/mozipersonaldictionary.idlscriptable this interface represents a personal dictionary.
mozIRegistry
in addition, it likely will have a couple of minor
extensions: support for specifying the .reg file name on initialize().
nsIAnnotationService
supported for use from trusted code, such as
extensions, but not from web content.
nsIBlocklistPrompt
xpcom/system/nsiblocklistservice.idlscriptable this interface is used, if available, by the default implementation of nsiblocklistservice to display a confirmation user interface to the user before blocking
extensions or plugins.
nsIChannel
note:
extensions should not call this method, because it tends to fail when a request is redirected, rather than redirecting transparentlynote: nsichannel implementations are not required to implement this method.
nsICommandLineHandler
example: category entry value command-line-handler b-jsdebug @mozilla.org/venkman/clh;1 command-line-handler c-
extensions @mozilla.org/extension-manager/clh;1 command-line-handler m-edit @mozilla.org/composer/clh;1 command-line-handler m-irc @mozilla.org/chatzilla/clh;1 command-line-handler y-final @mozilla.org/browser/clh-final;1 method overview void handle(in nsicommandline acommandline); attr...
nsIContentPrefService
provides a way for
extensions and browser code to save preferences for specific websites.
nsICookieAcceptDialog
extensions/cookie/nsicookieacceptdialog.idlscriptable this interface holds some constants for the cookie accept dialog.
nsICookiePromptService
extensions/cookie/nsicookiepromptservice.idlscriptable please add a summary to this article.
nsIDOMParser
(this section is only relevant to firefox
extensions--not to web content.) to create a document, the parser needs to specify a principal (see security check basics), a base uri (see document.baseuriobject), and a documenturi.
nsIDictionary
extensions/xml-rpc/idl/nsidictionary.idlscriptable a simple mutable table of objects, maintained as key/value pairs.
getFile
c constant string value notes ns_mac_desktop_dir ns_os_desktop_dir ns_mac_trash_dir "trsh" ns_mac_startup_dir "strt" ns_mac_shutdown_dir "shdwn" ns_mac_apple_menu_dir "applmenu" ns_mac_control_panels_dir "cntlpnl" ns_mac_
extensions_dir "exts" ns_mac_fonts_dir "fnts" ns_mac_prefs_dir "prfs" ns_mac_documents_dir "docs" ns_mac_internet_search_dir "isrch" ns_osx_home_dir ns_os_home_dir ns_mac_home_dir ns_os_home_dir ns_mac_default_download_dir "dfltdwnld" ns_mac_user_lib_dir "ulibdir" // ...
nsIDownloadManager
toolkit/components/downloads/public/nsidownloadmanager.idlscriptable this interface lets applications and
extensions communicate with the download manager, adding and removing files to be downloaded, fetching information about downloads, and being notified when downloads are completed.
nsIDownloadProgressListener
/toolkit/components/downloads/nsidownloadprogresslistener.idlscriptable this interface gives applications and
extensions a way to monitor the status of downloads being processed by the download manager.
ExtensionManager (Toolkit)
examples here is how to retrive all the
extensions installed: var em = cc['@mozilla.org/
extensions/manager;1'] .getservice(ci.nsiextensionmanager); const nsiupdateitem = ci.nsiupdateitem; var extension_type = nsiupdateitem.type_extension; items = em.getitemlist(extension_type, {}); items.foreach(function(item, index, array) { alert(item.name + " / " + item.id + " version: " + item.version); }); ...
nsIFeed
subtitle nsifeedtextconstruct returns a subtitle for the feed, based on its description, subtitle, and appropriate
extensions.
nsIFeedContainer
common atom and rss fields are normalized, including some namespaced
extensions such as "dc:subject" and "content:encoded".
nsIFeedEntry
this is generated automatically using the entry's description, subtitle, summary, content, and appropriate
extensions.
Using nsILoginManager
working with the login manager
extensions often need to securely store passwords to external sites, web applications, and so on.
nsILoginManagerStorage
note:
extensions that simply want to access/store logins should use the login manager service and nsiloginmanager interface instead.
nsIMicrosummaryGenerator
to ensure this, we recommend that such
extensions incorporate uuids created by nsiuuidgenerator into the urns of the generators they create.
Building an Account Manager Extension
devmoaccountmanagerextension.prototype.contractid = "@mozilla.org/accountmanager/extension;1?name=example@mozilla.org"; // add the component to the mailnews-accountmanager-
extensions category devmoaccountmanagerextension.prototype._xpcom_categories: [{ category: "mailnews-accountmanager-
extensions" }], // create entry point for the module if (xpcomutils.generatensgetfactory) var nsgetfactory = xpcomutils.generatensgetfactory([devmoaccountmanagerextension]); else var nsgetmodule = xpcomutils.generatensgetmodule([devmoaccountmanagerextension]); step3: create the new pane...
nsIParserUtils
parser/html/nsiparserutils.idlscriptable provides non-web html parsing functionality to firefox
extensions and xulrunner applications.
nsIPrivateBrowsingService
extensions that record potentially private information should use this interface to detect whether private browsing mode is enabled, and if it is, avoid saving that information.
nsIProtocolProxyService
it is recommended that any
extensions that choose to call this method make their position value configurable at runtime (perhaps via the preferences service).
nsIScriptableUnescapeHTML
1.0 66 introduced gecko 1.8 obsolete gecko 14.0 inherits from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) note: as of firefox 14, this interface is obsolete (but still available for compatibility with legacy
extensions) and all its functionality is available with more configuration options via the nsiparserutils interface.
nsISecurityCheckedComponent
extensions can define their own capabilities and use this interface to only allow access to code trusted with that capability.
nsIStringBundleService
the localizing js/jsm files uses the nsistringbundleservice: bootstrapped
extensions :: localization (l10n) nsistringbundle ...
nsIStyleSheetService
allows
extensions or embeddors to add to the built-in list of user or agent style sheets.
nsIThreadManager
the nsithreadmanager interface lets applications and
extensions create and manage threads, each of which is represented by an nsithread.
nsIUpdateItem
toolkit/mozapps/
extensions/public/nsiextensionmanager.idlscriptable describes an item managed by the extension system, providing metadata describing the item.
nsIXFormsModelElement
extensions/xforms/nsixformsmodelelement.idlscriptable defines scriptable methods for manipulating instance data and updating computed and displayed values.
nsIXULRuntime
xpcom/system/nsixulruntime.idlscriptable provides information about the xul runtime to allow
extensions and xul applications to determine information about the xul runtime.
nsIXmlRpcClient
extensions/xml-rpc/idl/nsixmlrpcclient.idlscriptable please add a summary to this article.
nsIXmlRpcFault
extensions/xml-rpc/idl/nsixmlrpcclient.idlscriptable an xml-rpc exception.
Setting HTTP request headers
by not advertising to all sites what
extensions are installed this improves both privacy (this makes it harder to track a user known by his set of plugins, addons and
extensions) and security (some plugins, addons and
extensions may be known to have flaws by attackers).
Using nsIPasswordManager
working with password manager
extensions often need to securely store passwords to external sites, web applications, and so on.
XPCOM ABI
a common point of compatibility check is during the installation of
extensions.
wrappedJSObject
nsixpcsecuritymanager allows access (see the source code comments for details; this is usually not an issue for mozilla
extensions and applications) this means that in order to access the js object implementing our component directly, we must modify the component.
Xptcall Porting Status
currently the code is dependent on the g++ name mangling convention and a few gnu
extensions so i'm not sure how useful it will be for the other systems.
XSLT 2.0
for users saxon-ce no
extensions are required, saxon-ce runs whenever a html page is loaded that links to the saxon-ce javascript library.
MailNews Filters
it would be really nice if we had a mechanism for
extensions to add their own filter actions.
FAQ
mozillazine's getting started tutorial might provide some useful general pointers regarding developing mozilla
extensions.
Finding the code for a feature
(for debug builds, you can make it appear by default using "ac_add_options --enable-
extensions=default,venkman,inspector" which is part of my standard configuration).
Activity Manager examples
adding a fully customized activity in complex scenarios,
extensions might implement their own version of the nsiactivityprocess, nsiactivitywarning and nsiactivityevent interfaces.
Theme Packaging
structure of an installable bundle: describes the common structure of installable bundles, including
extensions, themes, and xulrunner applications extension packaging: specific information about how to package
extensions theme packaging: specific information about how to package themes multiple-item extension packaging: specific information about multiple-item extension xpis xul application packaging: specific information about how to package xulrunner applications chrome registration ...
Thunderbird
thunderbird api documentation thunderbird api documentation extension documentation tutorials and tips for building thunderbird
extensions view all...
Toolkit version format
the following preferences: app.
extensions.version,
extensions.lastappversion versions returned by nsixulappinfo.
Virtualenv
here are a few such tools: carton: make a self-extracting virtualenv from directories or urls of packages; http://pypi.python.org/pypi/carton velcro: a script that sets up a python project for local installation; https://bitbucket.org/kumar303/velcro/ virtualenvwrapper: a set of
extensions to ian bicking’s virtualenv tool for creating isolated python development environments; http://www.doughellmann.com/projects...tualenvwrapper the mozilla-central virtualenv in order to make use of various python modules located throughout mozilla-central, a virtualenv is created as part of the build process: http://mxr.mozilla.org/mozilla-central/source/js/src/build/autoconf/python-virtual...
Plug-in Basics - Plugins
the installed plug-ins page lists each installed plug-in along with its mime type or types, description, file
extensions, and the current state (enabled or disabled) of the plug-in for each mime type assigned to it.
Gecko Plugin API Reference - Plugins
accessing browser objects from a plugin how to call plugin native methods the api
extensions npstring npvariant npn_releasevariantvalue npn_getstringidentifier npn_getstringidentifiers npn_getintidentifier npn_identifierisstring npn_utf8fromidentifier npn_intfromidentifier npobject npn_createobject npn_retainobject npn_releaseobject npn_invoke npn_invokedefault npn_evaluate npn_getpropert...
DOM Inspector internals - Firefox Developer Tools
its contents should resemble the following:
extensions/ … jsutil/ … prefs/ … res/ … tests/ … viewers/ … browseroverlay.xul commandoverlay.xul editingoverlay.xul flasher.js hooks.js inspector.css inspector.js inspectoroverlay.xul inspector.xml inspector.xul keysetoverlay.xul object.js object.xul popupoverlay.xul sidebar.js sidebar.xul statusbaroverlay.x...
DOM Inspector - Firefox Developer Tools
or, build thunderbird yourself with the following options: ac_add_options --enable-
extensions="default inspector" ac_add_options --enable-inspector-apis mozilla suite and seamonkey select tools > web development > dom inspector.
Inspecting web app manifests - Firefox Developer Tools
to get a manifest deployed successfully, you need to include a <link> element in the <head> of your document that points to your .webmanifest file: <link rel="manifest" href="/manifest.webmanifest"> the .webmanifest extension is recommended in the spec, and should be served with an application/manifest+json mime type, although browsers generally tend to support manifests with other appropriate
extensions like .json (mime type: application/json).
Validators - Firefox Developer Tools
firefox
extensions for validation quick reference sidebar tabs install devedge toolbox sidebars for quick access to web development references.
AuthenticatorAssertionResponse.signature - Web APIs
examples var options = { challenge: new uint8array(26), // will be another value, provided by the relying party server timeout: 60000 }; navigator.credentials.get({ publickey: options }) .then(function (assertionpkcred) { var signature = assertionpkcred.response.signature; // send response and client
extensions to the server so that it can // go on with the authentication }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'signature' in that specification.
AuthenticatorAssertionResponse.userHandle - Web APIs
username, e-mail, phone number, etc.) examples var options = { challenge: new uint8array(26), // will be another value, provided by the relying party server timeout: 60000 }; navigator.credentials.get({ publickey: options }) .then(function (assertionpkcred) { var userhandle = assertionpkcred.response.userhandle; // send response and client
extensions to the server so that it can // go on with the authentication }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'userhandle' in that specification.
AuthenticatorAssertionResponse - Web APIs
authenticatorassertionresponse.authenticatordata secure contextread only an arraybuffer containing information from the authenticator such as the relying party id hash (rpidhash), a signature counter, test of user presence and user verification flags, and any
extensions processed by the authenticator.
Background Tasks API - Web APIs
currently, timeremaining() has an upper limit of 50 milliseconds, but in reality you will often have less time than that, since the event loop may already be eating into that time on complex sites, with browser
extensions needing processor time, and so forth.
BatteryManager - Web APIs
additional methods in mozilla chrome codebase mozilla includes a couple of
extensions for use by js-implemented event targets to implement onevent properties.
Constraint validation API - Web APIs
extensions to other interfaces the constraint validation api extends the interfaces for the form-associated elements listed below with a number of new properties and methods (elements that can have a form attribute that indicates their form owner): htmlbuttonelement htmlfieldsetelement htmlinputelement htmlobjectelement htmloutputelement htmlselectelement htmltextareaelement properties validi...
Document.contentType - Web APIs
this may come from http headers or other sources of mime information, and might be affected by automatic type conversions performed by either the browser or
extensions.
Element.msZoomTo() - Web APIs
example /* zooming in on an element while still keeping it centered in the viewport */ var args = { contentx: target.offsetleft + target.offsetwidth/2; contenty: target.offsettop + target.offsetheight/2; scalefactor: 2.0; } zoomer.mszoomto(args); see also microsoft api
extensions ...
Event.msConvertURL() - Web APIs
evt.converturl(file, "specified", url); } else { evt.msconverturl(file, "specified", url); } console.log("local file: " + file.name + " (" + file.size + ")"); bloblist.push(file); } // for } // handlepaste see also microsoft api
extensions ...
EventTarget - Web APIs
additional methods in mozilla chrome codebase mozilla includes a couple of
extensions for use by js-implemented event targets to implement onevent properties.
Using Fetch - Web APIs
fetch also provides a single logical place to define other http-related concepts such as cors and
extensions to http.
FileReader.readAsDataURL() - Web APIs
taurl(file); } } live result example reading multiple files html <input id="browse" type="file" onchange="previewfiles()" multiple> <div id="preview"></div> javascript function previewfiles() { var preview = document.queryselector('#preview'); var files = document.queryselector('input[type=file]').files; function readandpreview(file) { // make sure `file.name` matches our
extensions criteria if ( /\.(jpe?g|png|gif)$/i.test(file.name) ) { var reader = new filereader(); reader.addeventlistener("load", function () { var image = new image(); image.height = 100; image.title = file.name; image.src = this.result; preview.appendchild( image ); }, false); reader.readasdataurl(file); } } if (files) { [...
Gamepad.hand - Web APIs
examples tbc specifications specification status comment gamepad
extensionsthe definition of 'hand' in that specification.
Geolocation API - Web APIs
web
extensions that wish to use the geolocation object must add the "geolocation" permission to their manifest.
HTMLImageElement - Web APIs
; img1.alt = 'alt'; document.body.appendchild(img1); var img2 = document.createelement('img'); // use dom htmlimageelement img2.src = 'image2.jpg'; img2.alt = 'alt text'; document.body.appendchild(img2); // using first image in the document alert(document.images[0].src); specifications specification status comment css object model (cssom) view modulethe definition of '
extensions to htmlimageelement' in that specification.
HTMLMediaElement - Web APIs
waiting fired when playback has stopped because of a temporary lack of data specifications specification status comment encrypted media
extensionsthe definition of 'encrypted media
extensions' in that specification.
HTMLVideoElement.msHorizontalMirror - Web APIs
example var myvideo = document.getelementbyid("videotag1"); myvideo.mshorizontalmirror = true; myvideo.play(); example #2: var flip = document.queryselector('#flip'); flip.addeventlistener('click', function() { video.mshorizontalmirror = true; }); see also htmlvideoelement microsoft api
extensions ...
HTMLVideoElement.msInsertVideoEffect() - Web APIs
example var ovideo1 = document.getelementbyid("video1"); ovideo1.msinsertvideoeffect("windows.media.videoeffects.videostabilization", true, null); see also htmlvideoelement microsoft api
extensions ...
msSetVideoRectangle - Web APIs
example htmlvideoelement.mssetvideorectangle(left: 2, top: 0, right: 4, bottom: 4); see also htmlvideoelement microsoft api
extensions ...
HTMLVideoElement.msZoom - Web APIs
var myvideo = document.getelementbyid("videotag1"); myvideo.mszoom = true; myvideo.play(); see also htmlvideoelement microsoft api
extensions ...
onMSVideoFormatChanged - Web APIs
syntax value description event property object.onmsvideoformatchanged = handler; attachevent method object.attachevent("onmsvideoformatchanged", handler) addeventlistener method object.addeventlistener("", handler, usecapture) event handler parameters val[in], type=function see also htmlvideoelement microsoft api
extensions ...
onMSVideoFrameStepCompleted - Web APIs
syntax value description event property object.onmsvideoframestepcompleted = handler; attachevent method object.attachevent("onmsvideoframestepcompleted", handler) addeventlistener method object.addeventlistener("", handler, usecapture) event handler parameters val[in], type=function see also htmlvideoelement microsoft api
extensions ...
onMSVideoOptimalLayoutChanged - Web APIs
roperty object.onmsvideooptimallayoutchanged = handler; attachevent method object.attachevent("onmsvideooptimallayoutchanged", handler) addeventlistener method object.addeventlistener("", handler, usecapture) synchronous no bubbles no cancelable no see also msislayoutoptimalforplayback htmlvideoelement microsoft api
extensions ...
HTMLVideoElement - Web APIs
microsoft
extensions htmlvideoelement.msframestep() steps the video by one frame forward or one frame backward.
History API - Web APIs
the dom window object provides access to the browser's session history (not to be confused for web
extensions history) through the history object.
MSManipulationEvent.initMSManipulationEvent() - Web APIs
tion_state_cancelled: number; readonly ms_manipulation_state_committed: number; readonly ms_manipulation_state_dragging: number; readonly ms_manipulation_state_inertia: number; readonly ms_manipulation_state_preselect: number; readonly ms_manipulation_state_selecting: number; readonly ms_manipulation_state_stopped: number; } see also msmanipulationevent microsoft api
extensions ...
MSManipulationEvent - Web APIs
d: number; readonly ms_manipulation_state_committed: number; readonly ms_manipulation_state_dragging: number; readonly ms_manipulation_state_inertia: number; readonly ms_manipulation_state_preselect: number; readonly ms_manipulation_state_selecting: number; readonly ms_manipulation_state_stopped: number; } see also touchevent msmanipulationstatechanged microsoft api
extensions ...
MSSiteModeEvent - Web APIs
example interface mssitemodeevent extends event { buttonid: number; actionurl: string; } declare var mssitemodeevent: { prototype: mssitemodeevent; new(): mssitemodeevent; } see also microsoft api
extensions ...
message - Web APIs
syntax var messagetype = mediakeymessageevent.messagetype; specifications specification status comment encrypted media
extensionsthe definition of 'message' in that specification.
MediaKeyMessageEvent.messageType - Web APIs
syntax var messagetype = mediakeymessageevent.messagetype; specifications specification status comment encrypted media
extensionsthe definition of 'messagetype' in that specification.
close() - Web APIs
specifications specification status comment encrypted media
extensionsthe definition of 'close()' in that specification.
expiration - Web APIs
syntax ​var expirationtime = mediakeysessionobj.expiration; specifications specification status comment encrypted media
extensionsthe definition of 'expiration' in that specification.
generateRequest() - Web APIs
}); specifications specification status comment encrypted media
extensionsthe definition of 'generaterequest()' in that specification.
keyStatuses - Web APIs
syntax var mediakeystatusmapobj = mediakeysessionobj.keystatuses; specifications specification status comment encrypted media
extensionsthe definition of 'keystatuses' in that specification.
load() - Web APIs
specifications specification status comment encrypted media
extensionsthe definition of 'load()' in that specification.
remove() - Web APIs
specifications specification status comment encrypted media
extensionsthe definition of 'remove()' in that specification.
sessionId - Web APIs
syntax ​var sessionid = mediakeysessionobj.sessionid; specifications specification status comment encrypted media
extensionsthe definition of 'sessionid' in that specification.
update() - Web APIs
specifications specification status comment encrypted media
extensionsthe definition of 'update()' in that specification.
createMediaKeys() - Web APIs
syntax var mediakeys = await mediakeysystemaccess.createmediakeys(); specifications specification status comment encrypted media
extensionsthe definition of 'createmediakeys()' in that specification.
getConfiguration() - Web APIs
syntax var mediakeysystemconfiguration = mediakeysystemaccess.getconfiguration(); specifications specification status comment encrypted media
extensionsthe definition of 'getconfiguration()' in that specification.
keySystem - Web APIs
syntax var keysystem = mediakeysystemaccess.keysystem; specifications specification status comment encrypted media
extensionsthe definition of 'keysystem' in that specification.
audioCapabilities - Web APIs
syntax var audiocapabilities[ {contenttype: 'contenttype', robustness:'robustness'}] = mediasystemconfiguration.audiocapabilities; specifications specification status comment encrypted media
extensionsthe definition of 'audiocapabilities' in that specification.
distinctiveIdentifier - Web APIs
syntax var distinctiveidentifier = mediasystemconfiguration.distinctiveidentifier; specifications specification status comment encrypted media
extensionsthe definition of 'distinctiveidentifier' in that specification.
initDataTypes - Web APIs
syntax var datatypes[] = mediasystemconfiguration.initdatatypes; specifications specification status comment encrypted media
extensionsthe definition of 'initdatatypes' in that specification.
persistentState - Web APIs
syntax var persistentstate = mediasystemconfiguration.persistentstate; specifications specification status comment encrypted media
extensionsthe definition of 'persistentstate' in that specification.
videoCapabilities - Web APIs
syntax var videocapabilities[{contenttype: 'contenttype', robustness:'robustness'}] = mediasystemconfiguration.videocapabilities; specifications specification status comment encrypted media
extensionsthe definition of 'videocapabilities' in that specification.
createSession() - Web APIs
syntax ​var mediakeysessionobject = mediakeys.createsession([mediakeysessiontype]); specifications specification status comment encrypted media
extensionsthe definition of 'createsession()' in that specification.
setServerCertificate() - Web APIs
}); specifications specification status comment encrypted media
extensionsthe definition of 'setservercertificate()' in that specification.
MediaSource.addSourceBuffer() - Web APIs
ar sourcebuffer = mediasource.addsourcebuffer(mimecodec); fetchab(asseturl, function (buf) { sourcebuffer.addeventlistener('updateend', function (_) { mediasource.endofstream(); video.play(); //console.log(mediasource.readystate); // ended }); sourcebuffer.appendbuffer(buf); }); }; specifications specification status comment media source
extensionsthe definition of 'addsourcebuffer()' in that specification.
MediaSource.endOfStream() - Web APIs
ar sourcebuffer = mediasource.addsourcebuffer(mimecodec); fetchab(asseturl, function (buf) { sourcebuffer.addeventlistener('updateend', function (_) { mediasource.endofstream(); video.play(); //console.log(mediasource.readystate); // ended }); sourcebuffer.appendbuffer(buf); }); }; specifications specification status comment media source
extensionsthe definition of 'endofstream()' in that specification.
MediaSource.isTypeSupported() - Web APIs
ar sourcebuffer = mediasource.addsourcebuffer(mimecodec); fetchab(asseturl, function (buf) { sourcebuffer.addeventlistener('updateend', function (_) { mediasource.endofstream(); video.play(); //console.log(mediasource.readystate); // ended }); sourcebuffer.appendbuffer(buf); }); }; specifications specification status comment media source
extensionsthe definition of 'istypesupported()' in that specification.
MediaSource.readyState - Web APIs
ar sourcebuffer = mediasource.addsourcebuffer(mimecodec); fetchab(asseturl, function (buf) { sourcebuffer.addeventlistener('updateend', function (_) { mediasource.endofstream(); video.play(); //console.log(mediasource.readystate); // ended }); sourcebuffer.appendbuffer(buf); }); }; specifications specification status comment media source
extensionsthe definition of 'readystate' in that specification.
MediaSource.removeSourceBuffer() - Web APIs
examples for (i = 0; i < 10; i++) { var sourcebuffer = mediasource.addsourcebuffer(mimecodec); } mediasource.removesourcebuffer(mediasource.sourcebuffers[0]); specifications specification status comment media source
extensionsthe definition of 'removesourcebuffer()' in that specification.
msPlayToPrimary - Web APIs
example // microsoft
extensions interface htmlimageelement : htmlelement { attribute boolean msplaytodisabled; attribute boolean msplaytoprimary; attribute domstring msplaytopreferredsourceuri; }; see also htmlmediaelement ...
NavigatorID.userAgent - Web APIs
some firefox
extensions do that; however, this only changes the http header that gets sent, and doesn't affect browser detection performed by javascript code.
PublicKeyCredential.id - Web APIs
id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { var id = newcredentialinfo.id; // do something with the id // send attestation response and client
extensions // to the server to proceed with the registration // of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'id' in that specification.
PublicKeyCredentialCreationOptions.attestation - Web APIs
me: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client
extensions // to the server to proceed with the registration // of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'attestation' in that specification.
PublicKeyCredentialCreationOptions.authenticatorSelection - Web APIs
rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client
extensions // to the server to proceed with the registration // of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'authenticatorselection' in that specification.
PublicKeyCredentialCreationOptions.challenge - Web APIs
me: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client
extensions // to the server to proceed with the registration // of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'challenge' in that specification.
PublicKeyCredentialCreationOptions.excludeCredentials - Web APIs
rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client
extensions // to the server to proceed with the registration // of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'excludecredentials' in that specification.
PublicKeyCredentialCreationOptions.pubKeyCredParams - Web APIs
new uint8array(26) /* this actually is given from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", } }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client
extensions // to the server to proceed with the registration // of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'pubkeycredparams' in that specification.
PublicKeyCredentialCreationOptions.rp - Web APIs
orp", id : "login.example.com", icon: "https://login.example.com/login.ico" }, user: { id: new uint8array(16), name: "jdoe@example.com", displayname: "john doe" }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client
extensions // to the server to proceed with the registration // of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'rp' in that specification.
PublicKeyCredentialCreationOptions.timeout - Web APIs
me: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client
extensions // to the server to proceed with the registration // of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'timeout' in that specification.
PublicKeyCredentialCreationOptions.user - Web APIs
nt8array.from(window.atob("laegmlkjnrlkgnamlafalfka="), c=>c.charcodeat(0)); name: "jdoe@example.com", displayname: "john doe", icon: "https://gravatar.com/avatar/jdoe.png" }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client
extensions // to the server to proceed with the registration // of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'user' in that specification.
RTCPeerConnection.getDefaultIceServers() - Web APIs
example var pc = new rtcpeerconnection(); var iceservers = pc.getdefaulticeservers(); if (iceservers.length === 0) { // deal with the lack of default ice servers, possibly by using our own defaults } specifications specification status comment webrtc
extensions ...
format - Web APIs
string font format examples of common
extensions truedoc-pfr truedoc™ portable font resource .pfr embedded-opentype embedded opentype .eot type-1 postscript™ type 1 .pfb, .pfa truetype truetype .ttf opentype opentype, including truetype open .ttf truetype-gx truetype with gx
extensions - speedo speedo - intellifont intell...
SVGTests - Web APIs
svgtests.required
extensions read only an svgstringlist corresponding to the required
extensions attribute of the given element.
Screen - Web APIs
additional methods in mozilla chrome codebase mozilla includes a couple of
extensions for use by js-implemented event targets to implement onevent properties.
Selection API - Web APIs
extensions to other interfaces window.getselection(), document.getselection() returns a selection object representing the range of text selected by the user or the current position of the caret.
SourceBuffer.abort() - Web APIs
e seek() function is defined — note that abort() is called if mediasource.readystate is set to open, which means that it is ready to receive new source buffers — at this point it is worth aborting the current segment and just getting the one for the new seek position (see checkbuffer() and getcurrentsegment().) specifications specification status comment media source
extensionsthe definition of 'abort()' in that specification.
SourceBuffer.buffered - Web APIs
example tbd specifications specification status comment media source
extensionsthe definition of 'buffered' in that specification.
SourceBuffer.mode - Web APIs
var curmode = sourcebuffer.mode; if (curmode == 'segments') { sourcebuffer.mode = 'sequence'; } specifications specification status comment media source
extensionsthe definition of 'mode' in that specification.
SourceBuffer.updating - Web APIs
example tbd specifications specification status comment media source
extensionsthe definition of 'updating' in that specification.
SourceBuffer - Web APIs
//console.log(mediasource.readystate); // ended }); sourcebuffer.appendbuffer(buf); }); } function fetchab (url, cb) { console.log(url); var xhr = new xmlhttprequest; xhr.open('get', url); xhr.responsetype = 'arraybuffer'; xhr.onload = function () { cb(xhr.response); }; xhr.send(); } specifications specification status comment media source
extensionsthe definition of 'sourcebuffer' in that specification.
SourceBufferList - Web APIs
specifications specification status comment media source
extensionsthe definition of 'sourcebufferlist' in that specification.
Storage Access API - Web APIs
extensions to <iframe> sandbox the <iframe> element's sandbox attribute has a new token, allow-storage-access-by-user-activation, which permits sandboxed <iframe>s to use the storage access api to request storage access.
Streams API - Web APIs
extensions to other apis request when a new request object is constructed, you can pass it a readablestream in the body property of its requestinit dictionary.
Using the User Timing API - Web APIs
this document shows how to create mark and measure performance entry types and how to use user timing methods (which are
extensions of the performance interface) to retrieve and remove entries from the browser's performance timeline.
WebGLRenderingContext.getParameter() - Web APIs
webgl
extensions you can query the following pname parameters when using webgl
extensions: constant returned type extension description ext.max_texture_max_anisotropy_ext glfloat ext_texture_filter_anisotropic maximum available anisotropy.
WebGLRenderingContext - Web APIs
working with
extensions these methods manage webgl
extensions: webglrenderingcontext.getsupported
extensions() returns an array of domstring elements with all the supported webgl
extensions.
WebXR Device API - Web APIs
for example, if the position and/or orient
extensions to the webgl api the webgl api is extended by the webxr specification to augment the webgl context to allow it to be used to render views for display by a webxr device.
Web Storage API - Web APIs
note: access to web storage from third-party iframes is denied if the user has disabled third-party cookies (firefox implements this behaviour from version 43 onwards.) note: web storage is not the same as mozstorage (mozilla's xpcom interfaces to sqlite) or the session store api (an xpcom storage utility for use by
extensions).
Web Workers API - Web APIs
chrome workers are a firefox-only type of worker that you can use if you are developing add-ons and want to use workers in
extensions and have access to js-ctypes in your worker.
window.postMessage() - Web APIs
using window.postmessage in
extensions window.postmessage is available to javascript running in chrome code (e.g., in
extensions and privileged code), but the source property of the dispatched event is always null as a security restriction.
Worker - Web APIs
(fetch is also available, with no such restrictions.) in firefox
extensions, if you want to use workers with access to js-ctypes, use chromeworker object instead.
msthumbnailclick - Web APIs
istener('msthumbnailclick', onbuttonclicked, false); // add the buttons var btnplay = window.external.mssitemodeaddthumbbarbutton(iconuri, tooltip); // refresh the taskbar window.external.mssitemodeshowthumbbar(); // call a javascript function when the button is pressed function onbuttonclicked(e) { switch (e.buttonid) { case btnplay: play(); break;} } see also microsoft api
extensions ...
Web APIs
aambient light eventsbbackground tasksbattery api beaconbluetooth apibroadcast channel apiccss counter stylescss font loading api cssomcanvas apichannel messaging apiconsole apicredential management apiddomeencoding apiencrypted media
extensionsffetch apifile system api frame timing apifullscreen apiggamepad api geolocation apihhtml drag and drop apihigh resolution timehistory apiiimage capture apiindexeddbintersection observer apillong tasks api mmedia capabilities api media capture and streamsmedia session apimedia source
extensions mediastream recordingnnavigation timingnetwork information api ppage visibility apipayment request...
x-ms-aria-flowfrom - Accessibility
example <div tabindex="0" class="foo" id="element2" role="option" aria-posinset="1" aria-setsize="15" aria-flowto="element8" x-ms-aria-flowfrom="element5"> see also aria relationship attributes microsoft api
extensions ...
ARIA: Complementary role - Accessibility
added benefits certain technologies such as browser
extensions can generate lists of all landmark roles present on a page, allowing non-screen reader users to also quickly identify and navigate to large sections of the document.
ARIA: contentinfo role - Accessibility
added benefits certain technologies such as browser
extensions can generate lists of all landmark roles present on a page, allowing non-screen reader users to also quickly identify and navigate to large sections of the document.
ARIA: form role - Accessibility
added benefits certain technologies such as browser
extensions can generate lists of all landmark roles present on a page, allowing non-screen reader users to also quickly identify and navigate to large sections of the document.
ARIA: Main role - Accessibility
<body> <a href="#main-content">skip to main content</a> <!-- navigation and header content --> <div id="main-content" role="main"> <!-- main page content --> </div> </body> webaim: "skip navigation" links added benefits certain technologies such as browser
extensions can generate lists of all landmark roles present on a page, allowing non-screen reader users to also quickly identify and navigate to large sections of the document.
ARIA: Navigation Role - Accessibility
added benefits certain technologies such as browser
extensions can generate lists of all landmark roles present on a page, allowing non-screen reader users to also quickly identify and navigate to large sections of the document.
ARIA: Region role - Accessibility
added benefits certain technologies such as browser
extensions can generate lists of all landmark roles present on a page, allowing non-screen reader users to also quickly identify and navigate to large sections of the document.
ARIA: search role - Accessibility
added benefits certain technologies such as browser
extensions can generate lists of all landmark roles present on a page, allowing non-screen reader users to also quickly identify and navigate to large sections of the document.
Accessibility FAQ - Accessibility
assistive technology compatibility - documents assistive technologies for windows, linux, unix, mac os x and the degree of compatibility with firefox what can i do to make sure my mozilla
extensions are accessible?
EXSLT
xslt/xpath reference: xslt elements, exslt functions, xpath functions, xpath axes exslt is a set of
extensions to xslt.
Guide to Web APIs - Developer guides
web apis from a to z aambient light eventsbbackground tasksbattery api beaconbluetooth apibroadcast channel apiccss counter stylescss font loading api cssomcanvas apichannel messaging apiconsole apicredential management apiddomeencoding apiencrypted media
extensionsffetch apifile system api frame timing apifullscreen apiggamepad api geolocation apihhtml drag and drop apihigh resolution timehistory apiiimage capture apiindexeddbintersection observer apillong tasks api mmedia capabilities api media capture and streamsmedia session apimedia source
extensions mediastream recordingnnavigation timingnetwork information api ppage visibility apipayment request...
Adding captions and subtitles to HTML5 video - Developer guides
menu li { padding:0; text-align:center; } .subtitles-menu li button { border:none; background:#000; color:#fff; cursor:pointer; width:90%; padding:2px 5px; border-radius:2px; } styling the displayed subtitles one of the less well known about and supported features of webvtt is the ability to style the individual subtitles (something called text cues) via css
extensions.
Setting up adaptive streaming media sources - Developer guides
expected it from within the <video> element: <video src="my.mpd" type="application/dash+xml"></video> it might be wise to provide a fallback: <video> <source src="my.mpd" type="application/dash+xml"> <!-- fallback --> <source src="my.mp4" type="video/mp4"> <source src="my.webm" type="video/webm"> </video> note: mpeg-dash playback relies on dash.js and browser support for media source
extensions, see the latest dash.js reference player.
Index - Developer guides
37 parsing and serializing xml ajax, add-ons, dom, dom parsing, document,
extensions, guide, htmldocument, json, parsing, parsing xml, serializing, serializing xml, xml, xmldocument, xmlhttprequest in this article, we'll look at the objects provided by the web platform to make the common tasks of serializing and parsing xml easy.
Allowing cross-origin use of images and canvas - HTML: Hypertext Markup Language
plate apache server configuration file for cors images, shown below: <ifmodule mod_setenvif.c> <ifmodule mod_headers.c> <filesmatch "\.(bmp|cur|gif|ico|jpe?g|png|svgz?|webp)$"> setenvif origin ":" is_cors header set access-control-allow-origin "*" env=is_cors </filesmatch> </ifmodule> </ifmodule> in short, this configures the server to allow graphic files (those with the
extensions ".bmp", ".cur", ".gif", ".ico", ".jpg", ".jpeg", ".png", ".svg", ".svgz", and ".webp") to be accessed cross-origin from anywhere on the internet.
Standard metadata names - HTML: Hypertext Markup Language
other metadata names the whatwg wiki meta
extensions page contains a large set of non-standard metadata names that have not been formally accepted yet; however, some of the names included there are already used quite commonly in practice — including the following: creator: the name of the creator of the document, such as an organization or institution.
Common MIME types - HTTP
here is a list of mime types, associated by type of documents, ordered by their common
extensions.
MIME types (IANA media types) - HTTP
a media type (also known as a multipurpose internet mail
extensions or mime type) is a standard that indicates the nature and format of a document, file, or assortment of bytes.
Using HTTP cookies - HTTP
third-party cookies (or just tracking cookies) may also be blocked by other browser settings or
extensions.
Cache-Control - HTTP
cache-control: no-cache cache-control: no-cache, max-age=0 specifications specification status comment rfc 8246: http immutable responses ietf rfc rfc 7234: hypertext transfer protocol (http/1.1): caching ietf rfc rfc 5861: http cache-control
extensions for stale content ietf rfc initial definition ...
Feature-Policy - HTTP
encrypted-media controls whether the current document is allowed to use the encrypted media
extensions api (eme).
Index - HTTP
66 feature-policy: encrypted-media directive, eme, feature policy, feature-policy, http, reference the http feature-policy header encrypted-media directive controls whether the current document is allowed to use the encrypted media
extensions api (eme).
User-Agent - HTTP
header type request header forbidden header name no syntax user-agent: <product> / <product-version> <comment> common format for web browsers: user-agent: mozilla/5.0 (<system-information>) <platform> (<platform-details>) <
extensions> directives <product> a product identifier — its name or development codename.
POST - HTTP
oundary content-disposition: form-data; name="field1" value1 --boundary content-disposition: form-data; name="field2"; filename="example.txt" value2 --boundary-- specifications specification title rfc 7231, section 4.3.3: post hypertext transfer protocol (http/1.1): semantics and content rfc 2046, section 5.1.1: common syntax multipurpose internet mail
extensions (mime) part two: media types ...
422 Unprocessable Entity - HTTP
status 422 unprocessable entity specifications specification title rfc 4918, section 11.2: 422 unprocessable entity http
extensions for web distributed authoring and versioning (webdav) ...
510 Not Extended - HTTP
if the server receives such a request, but any described
extensions are not supported for the request, then the server responds with the 510 status code.
Meta programming - JavaScript
handler.prevent
extensions() object.prevent
extensions() reflect.prevent
extensions() object.prevent
extensions(proxy) only returns true if object.isextensible(proxy) is false.
Regular expression syntax cheatsheet - JavaScript
unicodepropertyname the name of a non-binary property: general_category (gc) script (sc) script_
extensions (scx) see also propertyvaluealiases.txt unicodepropertyvalue one of the tokens listed in the values section, below.
Function.prototype.bind() - JavaScript
(this could be added if the implementation supports object.defineproperty, or partially implemented [without throw-on-delete behavior] if the implementation supports the __definegetter__ and __definesetter__
extensions.) the partial implementation creates functions that have a prototype property.
handler.getOwnPropertyDescriptor() - JavaScript
const obj = { a: 10 }; object.prevent
extensions(obj); const p = new proxy(obj, { getownpropertydescriptor: function(target, prop) { return undefined; } }); object.getownpropertydescriptor(p, 'a'); // typeerror is thrown specifications specification ecmascript (ecma-262)the definition of '[[getownproperty]]' in that specification.
handler.getPrototypeOf() - JavaScript
roto__ === array.prototype, // true array.prototype.isprototypeof(p), // true p instanceof array // true ); two kinds of exceptions const obj = {}; const p = new proxy(obj, { getprototypeof(target) { return 'foo'; } }); object.getprototypeof(p); // typeerror: "foo" is not an object or null const obj = object.prevent
extensions({}); const p = new proxy(obj, { getprototypeof(target) { return {}; } }); object.getprototypeof(p); // typeerror: expected same prototype value specifications specification ecmascript (ecma-262)the definition of '[[getprototypeof]]' in that specification.
handler.has() - JavaScript
const obj = { a: 10 }; object.prevent
extensions(obj); const p = new proxy(obj, { has: function(target, prop) { return false; } }); 'a' in p; // typeerror is thrown specifications specification ecmascript (ecma-262)the definition of '[[hasproperty]]' in that specification.
Web app manifests
browsers generally support manifests with other appropriate
extensions like .json (content-type: application/json).
<math> - MathML
for apache servers you can configure your .htaccess file to map
extensions to the correct mime type.
The "codecs" parameter in common media types - Web media technologies
as is the case with any mime type parameter, codecs must be changed to codecs* (note the asterisk character, *) if any of the properties of the codec use special characters which must be percent-encoded per rfc 2231, section 4: mime parameter value and encoded word
extensions.
Web Performance
resource timing api resource loading and timing the loading of those resources, including managing the resource buffer and coping with cors the performance timeline the performance timeline standard defines
extensions to the performance interface to support client-side latency measurements within applications.
Add to Home screen - Progressive web apps (PWAs)
note: the .webmanifest extension is specified in the media type registration section of the specification, but generally browsers will support manifests with other appropriate
extensions, e.g.
format - SVG: Scalable Vector Graphics
and their strings that can be used as values for this attribute: format string format truedoc-pfr truedoc™ portable font resource embedded-opentype embedded opentype type-1 postscript™ type 1 truetype truetype opentype opentype, including truetype open truetype-gx truetype with gx
extensions speedo speedo intellifont intellifont specifications specification status comment scalable vector graphics (svg) 1.1 (second edition)the definition of 'format for <glyphref>' in that specification.
requiredFeatures - SVG: Scalable Vector Graphics
http://www.w3.org/tr/svg11/feature#containerattribute the browser supports the enable-background attribute http://www.w3.org/tr/svg11/feature#conditionalprocessing the browser supports the <switch> element, and the requiredfeatures, required
extensions, systemlanguage attributes http://www.w3.org/tr/svg11/feature#image the browser supports the <image> element.
<a> - SVG: Scalable Vector Graphics
value type: <url> ; default value: none; animatable: yes global attributes core attributes most notably: id, lang, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, document element event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, strok...
<altGlyph> - SVG: Scalable Vector Graphics
value type: <iri> ; default value: none; animatable: no global attributes core attributes most notably: id lang styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, document element event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, dominant-baseline, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, st...
<circle> - SVG: Scalable Vector Graphics
global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stro...
<clipPath> - SVG: Scalable Vector Graphics
value type: userspaceonuse|objectboundingbox ; default value: userspaceonuse; animatable: yes global attributes core attributes most notably: id styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage presentation attributes most notably: clip-path, clip-rule, color, display, fill, fill-opacity, fill-rule, filter, mask, opacity, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-opacity, stroke-width, transform, vector-effect, visibility usage notes categoriesnonepermitted contentany number of the follow...
<ellipse> - SVG: Scalable Vector Graphics
global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stro...
<foreignObject> - SVG: Scalable Vector Graphics
global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes, document event attributes, document element event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashof...
<g> - SVG: Scalable Vector Graphics
to inherit presentation attributes --> <g fill="white" stroke="green" stroke-width="5"> <circle cx="40" cy="40" r="25" /> <circle cx="60" cy="60" r="25" /> </g> </svg> attributes this element only includes global attributes global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stro...
<line> - SVG: Scalable Vector Graphics
value type: <number> ; default value: none; animatable: yes global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stro...
<marker> - SVG: Scalable Vector Graphics
value type: <list-of-numbers> ; default value: none; animatable: yes global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-opacity, stroke-width, transform, vector-effect, visibility aria at...
<mask> - SVG: Scalable Vector Graphics
value type: <length> ; default value: 120%; animatable: yes global attributes core attributes most notably: id styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage presentation attributes most notably: clip-path, clip-rule, color, display, fill, fill-opacity, fill-rule, filter, mask, opacity, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-opacity, stroke-width, transform, vector-effect, visibility usage notes categoriescontainer elementpermitted contentany number ...
<path> - SVG: Scalable Vector Graphics
value type: <number> ; default value: none; animatable: yes global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stro...
<pattern> - SVG: Scalable Vector Graphics
value type: <length>|<percentage> ; default value: 0; animatable: yes global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-opacity, stroke-width, transform, vector-effect, visibility xlink a...
<polygon> - SVG: Scalable Vector Graphics
value type: <number> ; default value: none; animatable: yes global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stro...
<polyline> - SVG: Scalable Vector Graphics
value type: <number> ; default value: none; animatable: yes global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stro...
<rect> - SVG: Scalable Vector Graphics
global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stro...
<svg> - SVG: Scalable Vector Graphics
global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes, document event attributes, document element event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashof...
<switch> - SVG: Scalable Vector Graphics
the <switch> svg element evaluates any requiredfeatures, required
extensions and systemlanguage attributes on its direct child elements in order, and then renders the first child where these attributes evaluate to true.
<text> - SVG: Scalable Vector Graphics
value type: <length>|<percentage> ; default value: none; animatable: yes global attributes core attributes most notably: id, tabindex styling attributes class, style, font-family, font-size, font-size-adjust, font-stretch, font-style, font-variant, font-weight conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, dominant-baseline, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stro...
<textPath> - SVG: Scalable Vector Graphics
value type: <length>|<percentage>|<number> ; default value: auto; animatable: yes global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stro...
<tspan> - SVG: Scalable Vector Graphics
value type: <length>|<percentage> ; default value: none; animatable: yes global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, dominant-baseline, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stro...
<use> - SVG: Scalable Vector Graphics
global attributes core attributes most notably: id, tabindex styling attributes class, style conditional processing attributes most notably: required
extensions, systemlanguage event attributes global event attributes, graphical event attributes presentation attributes most notably: clip-path, clip-rule, color, color-interpolation, color-rendering, cursor, display, fill, fill-opacity, fill-rule, filter, mask, opacity, pointer-events, shape-rendering, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stro...
Index - XPath
55 index index, reference, xpath, xslt found 57 pages: 56 introduction to using xpath in javascript add-ons, dom,
extensions, javascript, transforming_xml_with_xslt, web development, xml, xpath, xslt this document describes the interface for using xpath in javascript internally, in
extensions, and from websites.