Search completed in 1.38 seconds.
Common causes of memory leaks in extensions - Extensions
this page explains coding patterns that cause
extension to cause memory leaks.
... 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.
...And 4 more matches
Building a Thunderbird extension 2: extension file layout
extensions are packaged and distributed in archive files (also known as bundles), with the xpi (pronounced “zippy”) file
extension.
...these files contain the code that makes your
extension actually do something.
... when this tutorial is finished, our
extension will look like this: myfirstext.xpi: //created in step 8 /install.rdf //created in step 3 /chrome.manifest //created in step 4 /chrome/ /content/ /content/myhelloworld.xul //created in step 5 /content/overlay.js //created in step 6 /chrome/locale/* //building an
extension# localization /chrome/skin/ /defaults/preferences/ //building an
extension# defaults files the following tutorial pages will explain how to write each of these files (except locale/ and defaults/) and package them into an xpi (zippy) file.
...And 2 more matches
Enhanced Extension Installation - Archive of obsolete content
background there are several flaws with
extension1 installation in firefox2 1.0, including: it is very difficult for a third party application with its own managed install process to install an
extension into firefox.
... first it must locate the firefox executable, then run it with the -install-global-
extension command line flag, which installs from a xpi into the firefox application directory.
... there is no clean uninstall procedure, as the -install-global-
extension flag was designed only as a means to install items for all user profiles, not as a means for third party installers to register their components.
...And 69 more matches
Chapter 5: Let's build a Firefox extension - Archive of obsolete content
gomita-san won "most useful upgraded
extension" award in mozilla's 2006 "extend firefox" competition for scrapbook, and was runner-up in the "extend firefox 2" contest for firegestures.
...in this chapter, we’ll discuss how to put them together to actually build an
extension.
... 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.
...And 63 more matches
The Essentials of an Extension - Archive of obsolete content
« previousnext » the install.rdf file in the last section we looked at the contents of the hello world
extension.
... <em:id>helloworld@xulschool.com</em:id> this is the unique identifier for the
extension.
... firefox needs this to distinguish your
extension from other
extensions, so it is required that you have an id that is unique.
...And 37 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 35 more matches
Extension Etiquette - Archive of obsolete content
this article describes best practices when making
extensions, including how to be kind to your users.
... it assumes that you are already familiar with building an
extension.
...whether the
extensions should go at the top, bottom, or somewhere in between on the tools menu, the author always has a choice.
...And 27 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.
... some of the samples in this series may be similar to samples you've seen elsewhere, but the goal of this series of articles is to help compile information for new
extension developers into one place to make it easy to jump in and get started.
... note: the
extension created by this tutorial won't work in firefox that don't have a static status bar (that is, firefox 4 and up).
...And 25 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 24 more matches
Setting up an extension development environment - Archive of obsolete content
this article provides suggestions for how to set up your mozilla application for
extension development.
... 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.
...And 22 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 18 more matches
Creating a Firefox sidebar extension - Archive of obsolete content
see the references section for information on creating
extension in earlier browsers.
...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.
...And 17 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.
... every
extension must provide an install.rdf file, which contains metadata about the
extension, such as its unique id, version, author, and compatibility information.
...And 16 more matches
Adding preferences to an extension - Archive of obsolete content
« previousnext » this article takes the creating a dynamic status bar
extension sample to the next level, adding a popup menu that lets you quickly switch between multiple stocks to watch.
... as before, concepts covered in the previous articles in this series won't be rehashed here, so if you haven't already seen them: creating a status bar
extension creating a dynamic status bar
extension also, for reference, you may want to take a look at preferences system and the preferences api.
... download the sample you can download a copy of this sample to look over, or to use as the basis for your own
extension.
...And 16 more matches
Multiple item extension packaging - Archive of obsolete content
from the release of firefox 53, multiple item
extension packages are no longer supported and will not load.
...every multiple item package must provide an install.rdf file (not old-style install.js!) and has the same requirements as an
extension except as noted below.
... there is currently no feature to prevent or warn the user when installing an older version of an
extension.
...And 14 more matches
How to convert an overlay extension to restartless - Archive of obsolete content
this article is a step-by-step tutorial on how to convert an old overlay-based
extension into a restartless (bootstrapped)
extension that is also extractionless.
...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 2b: audit any remaining resource:// uri usage internal to your
extension if you don't need resource:// uris for anything else, then you may be able to skip the next step.
...And 13 more matches
Deploying a Plugin as an Extension - Archive of obsolete content
one of the new features available in firefox 1.5 is the ability to place browser plugins in a firefox
extension.
... this feature is particularly useful for vendors who wish to deploy the plugin even if firefox is not currently installed, or who want to use the automatic
extension update mechanism to update their plugin to a newer version.
...with firefox 1.5, you can use the built-in
extension mechanism to make a plugin available to your users.
...And 12 more matches
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.
...with compatibility updating it is not necessary to release a whole new version of the
extension just to increase its maxversion.
...And 12 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 12 more matches
Extensions - Archive of obsolete content
prism has support for
extensions.
...
extensions are built using the same methods as any mozilla-based
extension.
... since prism is a totally separate host application, there are some prism-specific issues that you need to handle when creating your
extension.
...And 10 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 9 more matches
Security best practices in extensions - Archive of obsolete content
this document is intended as a guide for developers to promote best practices in securing your
extension.
... 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.
...a more detailed explanation of this process is in displaying web content in an
extension without security issues.
...And 9 more matches
Java in Firefox Extensions - Archive of obsolete content
if you are in need of calling java code from within a firefox
extension, you can make use of liveconnect.
... liveconnect gives your
extension'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.").
...if you wish to call java code from within javascript code that implements some xpcom components, at this time, you need a different technique (refer to the complete java firefox
extension).
...And 9 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
extIExtension
this content covers features introduced in thunderbird 3 the exti
extension interface represents an
extension.
... exti
extension is defined in toolkit/components/exthelper/extiapplication.idl.
... method overview fixme: attributes attribute type description id readonly attribute astring the id of the
extension.
...And 9 more matches
Building a Thunderbird extension 3: install manifest
the install.rdf file is an xml file that provides general information about the
extension.
... open the file called install.rdf that you created at the top of your
extension's directory hierarchy and paste the following text into the file: <?xml version="1.0"?> <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"> <em:id>myfirstext@jen.zed</em:id> <em:name>my first
extension</em:name> <em:version>1.0</em:version> <em:creator>jenzed</em:creator> <em:targetapplication> <description> <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <em:minversion>1.5</em:minversion> <em:maxversion>5.0.*</em:maxversion> </description> </em:targetapplication> </description> </rdf> the following items (shown in bold) should be cus...
...tomized for your application: <em:id>myfirstext@jen.zed</em:id>: this is the id of the
extension.
...And 9 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.
... each
extension is identified by an url reference.
...And 9 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.
... this article offers some best practices and suggestions that can not only improve the performance and speed of your
extension, but also of firefox itself.
...And 8 more matches
PublicKeyCredential.getClientExtensionResults() - Web APIs
getclient
extensionresults() 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 8 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 8 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
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.
... tools for
extension developers fixme: are we sure we'll talking about venkman since it's not well maintained fixme: we maybe should talk about firebug and chromebug fixme: and what about console 2 and docked-js console?
...it works like typical debuggers, and is useful not only for developing
extensions, but also for general web development.
...And 7 more matches
Building an Account Manager Extension
step 1: implementing nsiaccountmanager
extension as first step we have to implement the nsiaccountmanager
extension.
... we name the
extension "devmo-account" and state that it is located in the chrome package "example@mozilla.org".
... components.utils.import("resource://gre/modules/xpcomutils.jsm"); //class constructor function devmoaccountmanager
extension() {}; // class definition devmoaccountmanager
extension.prototype = { name : "devmo-account", chromepackagename : "example@mozilla.org", showpanel: function(server) { //this panel is only shown for imap accounts...
...And 7 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
Communication between HTML and your extension - Archive of obsolete content
communication between an html page and and
extension after building a sample
extension by reading carefully and following the complete instructions for building an
extension i was able to get an
extension that could display something on the status bar.
... what i wanted to do was have an
extension "look" for something on an html page and if it found that something perform some operation on the found thing and then update the status bar with the results of the operation.
... with a lot of help from irc://irc.mozilla.org#js and irc://irc.mozilla.org#extdev i was able to get it running pretty well, but i still would rather have the client less responsible for pinging the
extension to "look" for what is on the page.
...And 6 more matches
Downloading JSON and JavaScript in extensions - Archive of obsolete content
a common practice found in many
extensions is using xmlhttprequest (or some other mechanism) to download javascript or json (they are different) from a remote website.
... once the content has been downloaded, the
extension authors proceed to use eval() to decode the string content into javascript objects.
...so the
extension will not be allowed to move out of the amo sandbox.
...And 6 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).
... the firefox
extension system does not provide automatic support for loading these dependent libraries, but it is possible to load these libraries explicitly using a component stub.
...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.
...And 6 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.
...the simplest, which works only for traditional, non-restartless add-ons, is to add the preference changes to a file in an
extension's defaults/preferences/ directory.
...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.
...And 6 more matches
Updating an extension to support multiple Mozilla applications - Archive of obsolete content
« previousnext » this article shows how to take an existing
extension and update it so that it can be used in additional mozilla applications.
... we'll build upon the stock watcher
extension created in earlier articles in this series, updating it so it can also be used in thunderbird and sunbird (previous versions worked only in firefox).
... if you haven't already created an
extension, or would like to refresh your memory, take a look at the previous articles in this series: creating a status bar
extension creating a dynamic status bar
extension adding preferences to an
extension localizing an
extension download the sample you can download this article's sample code so you can look at it side-by-side with the article, or to use it as a basis for your own
extension.
...And 6 more matches
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.
...
extension and web authors are encouraged to use the method described below to install xpis, as it provides the best experience to users.
....getattribute("iconurl"), hash: aevent.target.getattribute("hash"), tostring: function () { return this.url; } } }; installtrigger.install(params); return false; } //--> </script> <a href="http://www.example.com/foo.xpi" iconurl="http://www.example.com/foo.png" hash="sha1:28857e60d043447c5f4550853f2d40770b326a13" onclick="return install(event);">install
extension!</a> let's go through this piece by piece.
...And 5 more matches
Creating a dynamic status bar extension - Archive of obsolete content
« previousnext » this article builds upon the article creating a status bar
extension, which creates a static status bar panel in the firefox status bar, by dynamically updating its content with information fetched from the web every few minutes.
...download the sample you can download a copy of this sample to look over, or to use as the basis for your own
extension.
... or, if you've already got the code from the creating a status bar
extension sample, you can follow this tutorial to update that existing code with new features.
...And 5 more matches
Localizing an extension - Archive of obsolete content
« previousnext » this article expands upon the previous samples on
extension writing by adding localization support to our stock watcher
extension.
... performing a few simple steps makes your
extension much easier to localize into various languages without having to edit the xul or javascript files themselves.
... if you haven't already created an
extension, or would like to refresh your memory, take a look at the previous articles in this series: creating a status bar
extension creating a dynamic status bar
extension adding preferences to an
extension download the sample you can download this article's sample code so you can look at it side-by-side with the article, or to use it as a basis for your own
extension.
...And 5 more matches
Building a Thunderbird extension 1: introduction
similar to firefox, thunderbird functionality can be enhanced and customized via
extensions.
... this tutorial will introduce you to the components of a thunderbird
extension and will show you how to build your own.
... the tutorial has the following pages: introduction (this page) the
extension filesystem (setting up your local system) install manifest (the install.rdf file that contains meta-information about the
extension) chrome manifest (list of packages and overlays) xul (the xml user interface language that is used to modify the thunderbird user interface) adding javascript (explains how to add some simple javascript to your thunderbird
extension) installing locally (enabling the
extension on your local thunderbird instance) packaging (making a distribution package that contains the
extension) distributing (from your own site or from http://addons.mozilla.org/) this tutorial is compatible with thunderbird versions 2,3 and 5.
...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
Displaying web content in an extension without security issues - Archive of obsolete content
one of the most common security issues with
extensions is execution of remote code in privileged context.
... a typical example is an rss reader
extension that would take the content of the rss feed (html code), format it nicely and insert into the
extension window.
... the issue that is commonly overlooked here is that the rss feed could contain some malicious javascript code and it would then execute with the privileges of the
extension — meaning that it would get full access to the browser (cookies, history etc) and to user’s files.
...And 4 more matches
nsIMsgAccountManagerExtension
the nsimsgaccountmanager
extension interface is used to add a new panel to thunderbird's account manager.
... an account manager
extension is a xpcom compontent implementing this interface.
...an account manager
extension with a "name" attribute of "devmo" and the "chromepackagename" attribute set to "
extension@example.org" means, that the account manager expects to find a xul file in "chrome://
extension@example.org/content/am-devmo.xul" and a property file in "chrome://
extension@example.org/locale/am-devmo.properties" containing a property named "prefpanel-devmo".
...And 4 more matches
WebGLRenderingContext.getExtension() - Web APIs
the webglrenderingcontext.get
extension() method enables a webgl
extension.
... syntax gl.get
extension(name); parameters name a string for the name of the webgl
extension to enable.
... return value a webgl
extension object, or null if name does not match (case-insensitive) to one of the strings in webglrenderingcontext.getsupported
extensions.
...And 4 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 4 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 3 more matches
Signing an extension - Archive of obsolete content
for an
extension to work in firefox it must be signed by mozilla, not by yourself.
... this article describes how to digitally sign your
extension for firefox and thunderbird, with a code signing certificate for object signing.
... get the signing tool we use nss to sign an
extension.
...And 3 more matches
Creating a Mozilla Extension - Archive of obsolete content
this tutorial describes how to create an
extension for the old versions of mozilla suite (currently seamonkey).
... see building an
extension for an up-to-date tutorial (it focuses on firefox, but is also applicable to other new applications).
... a mozilla
extension is an installable enhancement to the mozilla browser that provides additional functionality (for example linky, which adds an item to the context menu for opening multiple links in a document or selection).
...And 3 more matches
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.
... because of this, the new item might not appear at the end of the menu but before a menuitem added by another
extension, depending on the order in which the overlays are applied.
... as you cannot predict this order, you should not rely on any menuitems being in particular positions in the presence of other
extensions.
...And 3 more matches
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.
... if you haven't already created an
extension, or would like to refresh your memory, take a look at the previous articles in this series: creating a status bar
extension creating a dynamic status bar
extension adding preferences to an
extension localizing an
extension updating an
extension to support multiple mozilla applications download the sample you may download the complete example: download the example.
... how this differs from previous versions this version of the stock ticker
extension moves the xmlhttprequest call that fetches updated stock information into a worker thread, which then passes that information back to the main body of the
extension's code to update the display in the status bar.
...And 3 more matches
Localizing extension metadata on addons.mozilla.org
amo supports localized metadata for each
extension.
... this data describes the
extension, and doesn't necessarily change with each revision (but it can).
... the localizable data fields of an
extension are: name homepage summary description eula privacy policy version notes developer comments when you submit a new
extension to amo, the process is divided into several steps.
...And 3 more matches
Thunderbird extensions
building a thunderbird
extension step-by-step explanation on how to build an
extension for thunderbird.
... 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.
...And 3 more matches
Extensions support in SeaMonkey 2 - Archive of obsolete content
starting with seamonkey 2 alpha 1 seamonkey supports toolkit/-style
extensions.
... these type of
extensions have many advantages for both users and developers compared to the old xpinstall/-style
extensions.
... the basics to support seamonkey 2 as a target application, you need to add it to the list of target applications in the
extension's install.rdf file.
...And 2 more matches
Extension Frequently Asked Questions - Archive of obsolete content
this is quick set of answers to the most common issues with
extension development.
...for thunderbird, you may also find the
extension howto or faq pages helpful.
... if you're looking for a place to get started, try our tutorial, building an
extension or mozillazine's getting started tutorial.
...And 2 more matches
bootstrap.js - Extensions
the bootstrap.js script should contain several specific functions, which are called by the browser to manage the
extension.
... the script gets executed in a privileged sandbox, which is cached until the
extension is shut down.
... for more information, see bootstrapped
extensions.
...And 2 more matches
Extension Theming Guidelines - Archive of obsolete content
this is a set of guidelines on how to control the look and feel of your
extension while leaving it open for styling by custom themes.
... skin packages just as
extension code should exist in chrome content packages, all of the styling for an
extension including css and images should exist in a chrome skin package.
... 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.
Building a Thunderbird extension 5: XUL
for our first
extension, we will add some text to the thunderbird status bar.
...to view this xul file use the dom inspector
extension (no longer supported) or look inside the omni.ja archive, which is located in the thunderbird program folder.
...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.
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.
Makefile.mozextension.2 - Archive of obsolete content
this makefile is a modification of the makefile.mozextention, found in makefile for packaging an
extension - mozillazine knowledge base (2005).
... note that the original makefile.mozextention merely repeats the steps in getting started with
extension development - mozillazine knowledge base (2008).
...then again if you do that, all of the < > will be quoted as & lt ; so again it will be corrupt :( therefore, here is a direct link to this makefile: makefile.moz
extension2 ## file: makefile.moz
extension2 ## based on http://kb.mozillazine.org/makefile_for_packaging_an_
extension ## "this makefile.mozextention is for the test
extension" ## the original makefile.mozextention reconstructs http://kb.mozillazine.org/getting_started_with_
extension_development # call with: # make -f makefile.moz
extension2 make_structure ## (without args for 'all') # note: @echo silent...
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_localiza...
...tion_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 ...
Community - Extensions
if you know of useful mailing lists, newsgroups, forums, or other communities related to
extension development, please link to them here.
... 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 ...
ExtensionManager (Toolkit)
the
extensionmanager follows the nsi
extensionmanager api.
... examples here is how to retrive all the
extensions installed: var em = cc['@mozilla.org/
extensions/manager;1'] .getservice(ci.nsi
extensionmanager); 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); }); ...
Extension Storage - Firefox Developer Tools
this storage type is only shown when debugging
extensions.
... when selecting an
extension id in the storage tree of the storage inspector, a table lists the details of all the
extension storage present for the
extension.
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-.
ant script to assemble an extension - Archive of obsolete content
this ant script helps to package an
extension <?xml version="1.0"?> this build file was written by régis décamps <decamps@users.sf.net> <project name="blogmark" default="createxpi"> <property name="version" value="1.3-rc1"/> <property name="description" value="new context-menu item to add the current page in your blogmarks"/> xpi file is created after "chrome/blogmark.jar" is created, which is then stuffed into "blogmark.xpi" <target name="createxpi" depends="createjar" description="assemble the final build blogmark.xpi"> <zip destfile="blogmark-${version}.xpi"> <zipfileset dir="." includes="chrome/blogmark.jar" /> <zipfileset...
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 269 more matches
Index - Web APIs
2 angle_instanced_arrays api, reference, webgl, webgl
extension the angle_instanced_arrays
extension is part of the webgl api and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type.
... 3 angle_instanced_arrays.drawarraysinstancedangle() angle_instanced_arrays, api, method, reference, webgl, webgl
extension the angle_instanced_arrays.drawarraysinstancedangle() method of the webgl api renders primitives from array data like the gl.drawarrays() method.
... 4 angle_instanced_arrays.drawelementsinstancedangle() angle_instanced_arrays, api, method, reference, webgl, webgl
extension the angle_instanced_arrays.drawelementsinstancedangle() method of the webgl api renders primitives from array data like the gl.drawelements() method.
...And 194 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 62 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 51 more matches
Install Manifests - Archive of obsolete content
id the id of the
extension, which must be one of the following: guid (firefox 1.0) a string formatted like so:
extensionname@example.org the latter format is significantly easier to generate and manipulate.
... note: the id property is optional in a web
extension.
... examples <em:id>
extensionname@example.org</em:id> <em:id>{daf44bf7-a45e-4450-979c-91cf07434c3d}</em:id> name the name of the add-on; intended for display in the ui.
...And 43 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?
...just drag them there from the toolbar customisation window, like you would when adding buttons to the toolbars." option #4 install toolbar control <http://webdesigns.ms11.net/chromeditp.html> asking for help with getting an
extension to process windows messages.
... use wm_copydata how to creating an
extension that can replace html code on a specific page that does not use greasemonkey?
...And 38 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 37 more matches
NSS tools : certutil
--dump-ext-val oid for single cert, print binary der encoding of
extension oid.
... add one or multiple
extensions that certutil cannot encode yet, by loading their encodings from external files.
... · oid (example): 1.2.3.4 · critical-flag: critical or not-critical · filename: full path to a file containing an encoded
extension -f password-file specify a file that will automatically supply the password to include in a certificate or to access a certificate database.
...And 35 more matches
certutil
-1 | --keyusage keyword,keyword set a netscape certificate type
extension in the certificate.
... there are several available keywords: o digital signature o nonrepudiation o keyencipherment o dataencipherment o keyagreement o certsigning o crlsigning o critical -2 add a basic constraint
extension to a certificate that is being created or added to a database.
... this
extension supports the certificate chain verification process.
...And 32 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.
...it's based on the mozilla xulrunner platform, so it has support for some of the particularities in firefox
extension development.
... komodo edit has automatic completion for xul tags and attributes, and it supports mozilla's css
extensions (css values and properties beginning with "-moz").
...And 30 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 28 more matches
Custom toolbar button - Archive of obsolete content
instead, you make your custom button as a self-contained
extension in your profile.
... you can also use this page to learn about
extensions, and as a starting point if you plan to write a more complex
extension.
... note that this
extension is very simplified.
...And 22 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 21 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 21 more matches
CSS - Archive of obsolete content
for example, moving a child of the stack far to the right will widen the stack so the child remains visible.-moz-text-blinkthe -moz-text-blink non-standard mozilla css
extension specifies the blink mode.-moz-window-shadowthe -moz-window-shadow css property specifies whether a window will have a shadow.
... it only works on mac os x.-ms-acceleratorthe -ms-accelerator css property is a microsoft
extension that sets or retrieves a string indicating whether the object represents a keyboard shortcut.-ms-block-progressionthe -ms-block-progression css property is a microsoft
extension that specifies the block progression and layout orientation.-ms-content-zoom-chainingthe -ms-content-zoom-chaining css property is a microsoft
extension specifying the zoom behavior that occurs when a user hits the zoom limit during page manipulation.-ms-content-zoom-limitthe -ms-content-zoom-limit css shorthand property is a microsoft
extension that specifies values for the -ms-content-zoom-limit-min and -ms-content-zoom-limit-max properties.-ms-content-zoom-limit-maxthe -ms-content-zoom-limit-max css property is a microsoft...
...
extension that specifies the selected elements' maximum zoom factor.-ms-content-zoom-limit-minthe -ms-content-zoom-limit-min css property is a microsoft
extension that specifies the minimum zoom factor.-ms-content-zoom-snapthe -ms-content-zoom-snap css shorthand property is a microsoft
extension that specifies values for the -ms-content-zoom-snap-type and -ms-content-zoom-snap-points properties.-ms-content-zoom-snap-pointsthe -ms-content-zoom-snap-points css property is a microsoft
extension that specifies where zoom snap-points are located.-ms-content-zoom-snap-typethe -ms-content-zoom-snap-type css property is a microsoft
extension that specifies how zooming is affected by defined snap-points.-ms-content-zoomingthe -ms-content-zooming css property is a microsoft
extension that specifies whether ...
...And 20 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.
... all of these documents currently assume, however, that you are developing your
extension using xul and javascript only.
... for complex
extensions, it may be necessary to create components in c++ that provide additional functionality.
...And 19 more matches
NSS Tools certutil
-1 add a key usage
extension to a certificate that is being created or added to a database.
... this
extension allows a certificate's key to be dedicated to supporting specific operations such as ssl server or object signing.
...these usages are described under standard x.509 v3 certificate
extensions in appendix a.3 of thered hat certificate system administration guide.
...And 19 more matches
XUL Structure - Archive of obsolete content
since xul and html are handled in the same way, you can load both from either your local file system, from a web page, or from an
extension or standalone xulrunner application.
... 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.
...And 18 more matches
Preferences - Archive of obsolete content
this article provides examples for
extension developers that wish to use the mozilla preferences system.
... 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.
...And 17 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 ...
... toolbar tree uri 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 brows...
...And 17 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 17 more matches
Chrome registration
mozilla locates and reads the root chrome.manifest file for
extensions and themes.
...this is accomplished through xpinstall and the
extension manager.
... in order to inform the chrome registry of the available chrome, a text manifest is used: this manifest is "chrome.manifest" in the root of an
extension, or theme, or xulrunner application.
...And 15 more matches
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.
...And 15 more matches
Repackaging Firefox - Archive of obsolete content
a "distro"
extension that makes the changes you desire.
... put together your
extension that customizes firefox.
... the distro
extension all the changes you will want to make (for example, changing the default homepage or adding default bookmarks) can be encapsulated into a firefox
extension.
...And 14 more matches
Manifest Files - Archive of obsolete content
it doesn't actually matter what the file is called as long as it has the .manifest
extension.
...
extensions will make the most use of overlays, since they merge their ui with the browser ui.
...however, when distributing an application or
extension, you will want to package them into an archive to avoid having to install lots of smaller files.
...And 14 more matches
Archived Mozilla and build documentation - Archive of obsolete content
ant script to assemble an
extension this ant script helps to package an
extension archived spidermonkey docs this section contains old spidermonkey documentation.
... chromeless [this project may not be active — check github https://github.com/mozilla/chromeless] creating a firefox sidebar
extension this article describes how to create a registered sidebar for firefox 2 or greater.
... see the references section for information on creating
extension in earlier browsers.
...And 14 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.
... to add preferences to your
extension you should first create a js preferences file that describes the preferences and their default values, although setting defaults is not required.
... note: we recommend that you include all of your
extension preferences in the js defaults file.
...And 13 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("extensi...
...And 13 more matches
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.
... browser to chrome/browser/ communicator to chrome/communicator/ you should end up with this directory structure: <ext path>/ /install.rdf /chrome.manifest /chrome/ browser/ communicator/ global/ mozapps/ after this, it would be a good idea to read the article setting up
extension development environment and follow the directions there.
... create the install manifest open the file called install.rdf that you created at the top of your
extension's folder hierarchy and put this inside: <?xml version="1.0"?> <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"> <em:id>sample@example.net</em:id> <em:version>1.0</em:version> <em:type>4</em:type> <!-- target application this theme can install into, with minimum and maximum supported versions.
...And 13 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.
... 675 creating an appealing add-on listing add-ons, beginner, guide, web
extension, publishing there are two essential steps to getting people to use your add-on: they need to discover your add-on and open the listing page, then the listing page needs to encourage them to click the add to firefox button.
... 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.
...And 12 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.conf...
...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 11 more matches
How Mozilla determines MIME Types
when encountering a non-text byte, the helper app dialog will be shown, showing the mime type corresponding to the
extension of the file.
... also, for images loaded via <img src>, mozilla's image library will do content sniffing (never
extension sniffing) to find out the real type of the image.
... 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.
...And 11 more matches
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.
... critical/non-critical: is 1 when
extension is critical and 0 otherwise.
... arg1, arg2: specific to
extension type
extension parameters addext uses the range that was set earlier by addcert and will install an
extension to every cert entries within the range.
...And 11 more matches
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.
... critical/non-critical: is 1 when
extension is critical and 0 otherwise.
... arg1, arg2: specific to
extension type
extension parameters addext uses the range that was set earlier by addcert and will install an
extension to every cert entries within the range.
...And 11 more matches
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.
... critical/non-critical: is 1 when
extension is critical and 0 otherwise.
... arg1, arg2: specific to
extension type
extension parameters addext uses the range that was set earlier by addcert and will install an
extension to every cert entries within the range.
...And 11 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.
... platform-specific directories the component/chrome system used to look in platform-specific subdirectories of an
extension, such as platform/winnt_x86-msvc/chrome.manifest on windows.
...And 11 more matches
nsIFilePicker
default
extension astring the
extension for the type of files you want to work with.
... defaultstring astring the filename, including
extension, that should be suggested to the user as a default.
... constant value description filterall 0x001 corresponds to the *.* filter for file
extensions.
...And 11 more matches
Introduction - Archive of obsolete content
this tutorial is meant to be the stepping stone that will turn you into a professional firefox
extension developer in no time.
... we have poured years of xul experience into it, providing many solutions for problems
extension developers commonly run into.
... xul school was created by appcoast (formerly glaxstar), one of the few companies dedicated to building high-quality firefox
extensions.
...And 10 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 10 more matches
Building Mozilla XForms - Archive of obsolete content
getting started things to know first: the xforms
extension has a dependency on the schema-validation
extension, so you need to build both (that's done automatically) mozilla switched from cvs to mercurial starting with firefox 3.5.
... during cvs times, the mozilla repository contained both
extensions.
... since the switch to mercurial, the
extensions live in separate repositories.
...And 10 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.
...that header looks something like the following (remember each header line ends with \r\n and put an extra \r\n after the last one to indicate the end of the header): http/1.1 101 switching protocols upgrade: websocket connection: upgrade sec-websocket-accept: s3pplmbitxaq9kygzzhzrbk+xoo= additionally, the server can decide on
extension/subprotocol requests here; see miscellaneous for details.
...rsv1-3 can be ignored, they are for
extensions.
...And 10 more matches
Local Storage - Archive of obsolete content
it is very common for an
extension to require some kind of local persistent storage.
...otherwise you may run into problems if the same
extension is installed in multiple profiles.
...in general this is the only directory flag you'll need, but sometimes you'll need access to other system directories, and you don't want to have to worry about which operating system or system language your
extension is running on.
...And 9 more matches
Creating toolbar buttons (Customize Toolbar Window) - Archive of obsolete content
its intended audience is
extension developers with a basic knowledge of xul and css.
... 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.
...And 9 more matches
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.
... pluralrule=10 seconds=sekunda;sekundźe;sekundy;sekundow minutes=mjeńšina;mjeńšinje;mjeńšiny;mjeńšin hours=hodźina;hodźinje;hodźiny;hodźin days=dźeń;dnjej;dny;dnjow testing
extension to help make sure you pick the right plural rule and provide enough plural forms for strings, you should use the pluralform checker
extension.
... after installing the
extension, it should be available from the tools menu.
...And 9 more matches
NSS_3.12_release_notes.html
introduction distribution information new in nss 3.12 bugs fixed documentation compatibility feedback introduction network security services (nss) 3.12 is a minor release with the following new features: sqlite-based shareable certificate and key databases libpkix: an rfc 3280 compliant certificate path validation library camellia cipher support tls session ticket
extension (rfc 5077) nss 3.12 is tri-licensed under the mpl 1.1/gpl 2.0/lgpl 2.1.
...nss 3.12 libraries have the following versions: sqlite3: 3.3.17 nssckbi: 1.70 softokn3 and freebl3: 3.12.0.3 other nss libraries: 3.12.0.3 new in nss 3.12 3 new shared library are shipped with nss 3.12: nssutil sqlite nssdbm 1 new include file is shipped with nss3.12: utilrename.h new functions in the nss shared library: cert_checknamespace (see cert.h) cert_encodecertpolicies
extension (see cert.h) cert_encodeinfoaccess
extension (see cert.h) cert_encodeinhibitany
extension (see cert.h) cert_encodenoticereference (see cert.h) cert_encodepolicyconstraints
extension (see cert.h) cert_encodepolicymapping
extension (see cert.h) cert_encodesubjectkeyid (see certdb/cert.h) cert_encodeusernotice (see cert.h) cert_findcrlentryreasonexten (see cert.h) cert_findcrlnumberexten (see cert.h) ce...
... tls session ticket
extension (off by default) see ssl_enable_session_tickets in ssl.h new ssl error codes (see sslerr.h) ssl_error_unsupported_
extension_alert ssl_error_certificate_unobtainable_alert ssl_error_unrecognized_name_alert ssl_error_bad_cert_status_response_alert ssl_error_bad_cert_hash_value_alert ssl_error_rx_unexpected_new_session_ticket ssl_error_rx_malformed_new_session_ticket new tls cipher suites (see...
...And 9 more matches
nss tech note4
pulling certificate
extension information out of ssl certificates nss technical note: 4 note: this document contains code snippets that focus on essential aspects of the task and often do not illustrate all the cleanup that needs to be done.
... 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 certcert
extension**
extensions =cert->
extensions; if (
extensions) { while (*
extensions) { secitem *ext_oid = &(*
extensions)->id; secitem *ext_critical = &(*
extensions)->critical; secitem *ext_value = ...
...And 9 more matches
Working with windows in chrome code
this article describes working with multiple windows in mozilla chrome code (xul applications and
extensions).
... opening windows from a <script> in a window or an overlay to open a new window, we usually use a window.open or window.opendialog dom call, like this: var win = window.open("chrome://my
extension/content/about.xul", "aboutmy
extension", "chrome,centerscreen"); the first parameter to window.open is the uri of the xul file that describes the window and its contents.
... var ww = components.classes["@mozilla.org/embedcomp/window-watcher;1"] .getservice(components.interfaces.nsiwindowwatcher); var win = ww.openwindow(null, "chrome://my
extension/content/about.xul", "aboutmy
extension", "chrome,centerscreen", null); window object note the win variable in the above section, which is assigned the return value of window.open.
...And 9 more matches
Useful Mozilla Community Sites - Archive of obsolete content
this is the best way to get your
extension to users from all around the world.
... adding your
extension to amo is easy.
... all you need is your xpi, a few screenshots (good ones will make your
extension much more appealing), and a few minutes to fill a couple of forms.
...And 8 more matches
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.
...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
Observer Notifications
[nsobserverservice.cpp] topic description xpcom-startup note: an
extension can no longer be registered to receive this notification in firefox 4 and later.
... app-startup note: an
extension can no longer be registered to receive this notification in firefox 4 and later.
...this lets
extensions inject api into chrome windows as needed (see nsidomglobalpropertyinitializer for an alternative method of doing this, which uses significantly less memory).
...And 8 more matches
Mozilla
there are two ways to create a sidebar for firefox users: the social api and an
extension.
...
extensions can replace the built-in password storage with their own implementation.
...the python harness communicates with the browser by inserting an
extension in the testing profile or uses marionette's wire protocol to drive the browser.
...And 8 more matches
Image file type and format guide - Web media technologies
abbreviation file format mime type file
extension(s) browser compatibility apng animated portable network graphics image/apng .apng chrome, edge, firefox, opera, safari bmp bitmap file image/bmp .bmp chrome, edge, firefox, internet explorer, opera, safari gif graphics interchange format image/gif .gif chrome, edge, firefox, internet explorer, opera, safari ico micr...
... mime type image/apng file
extension(s) .apng specification wiki.mozilla.org/apng_specification browser compatibility chrome 59, edge 12, firefox 3, opera 46, safari 8 maximum dimensions 2,147,483,647×2,147,483,647 pixels supported color modes color mode bits per component (d) description greyscale 1, 2...
... mime type image/bmp file
extension(s) .bmp specification no specification; however, microsoft provides general documentation of the format at docs.microsoft.com/en-us/windows/desktop/gdi/bitmap-storage browser compatibility all versions of chrome, edge, firefox, internet explorer, opera, and safari maximum dimensions either 32,767×32,767 or 2,147,483,647×2,147,483,647 pixels, depending on t...
...And 8 more matches
Inline options - Archive of obsolete content
firefox 7 supports a new syntax for defining
extensions' preferences for both bootstrapped and traditional
extensions.
... the user interface for the preferences defined with this new syntax appears in the
extension's detail view in the add-on manager.
...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.
...And 7 more matches
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.
... from a sidebar basically, if your
extension code is a sidebar you can use: var mainwindow = window.queryinterface(components.interfaces.nsiinterfacerequestor) .getinterface(components.interfaces.nsiwebnavigation) .queryinterface(components.interfaces.nsidocshelltreeitem) .roottreeitem .queryinterface(components.interfaces.nsiinterfacerequestor) ...
... xul: <menuitem oncommand="my
extension.foo(event)" onclick="checkformiddleclick(this, event)" label="click me"/> js: var my
extension = { foo: function(event) { openuilink("http://www.example.com", event, false, true); } } opening a url in an on demand tab cu.import("resource://gre/modules/xpcomutils.jsm"); xpcomutils.definelazyservicegetter(this, "gsessionstore", "@mozilla.org/browser/s...
...And 7 more matches
Examples - Archive of obsolete content
important notes if you plan to test these examples by yourself, you must use the right filename
extension (it is written at the beginning of the code).
... examples for "problems with inline style and script" problem 1 <!-- this file should have a .xhtml
extension and will generate an error when parsed.
... </p> </body> </html> back to the article problem 2 <!-- this file should have a .xhtml
extension --> <!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-us" xml:lang="en-us"> <head> <title>problem 2 - comments in xhtml</title> <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" /> <style type="text/css"> <!-- body {background-color: blue; ...
...And 7 more matches
Archive of obsolete content
adding preferences to an
extension this article takes the creating a dynamic status bar
extension sample to the next level, adding a popup menu that lets you quickly switch between multiple stocks to watch.
... case sensitivity in class and id names creating a dynamic status bar
extension concepts covered in the previous sample won't be reiterated here; instead, refer to the downloadable sample code or to the previous sample for further details.
... creating a status bar
extension many of the concepts introduced here apply to any xul-based application; however, to keep from getting completely overwhelmed, we're going to focus specifically on firefox.
...And 7 more matches
Index - MDN Web Docs Glossary: Definitions of Web-related terms
4 alpn alpn, draft, glossary, needscontent, tls application-layer protocol negotiation (alpn) is a tls
extension which indicates what application layer protocol is negotiating the encryped connection without requiring additional round trips.
...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.
... 67 carddav carddav, glossary, infrastructure carddav (vcard
extension to webdav) is a protocol standardized by the ietf and used to remote-access or share contact information over a server.
...And 7 more matches
TypeScript support in Svelte - Learn web development
to use it from regular javascript files, just change the file
extension from .js to .ts.
... 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).
... there is work in progress to support typescript in svelte projects in several code editors; the most complete support so far is available in the svelte for vs code
extension, which is developed and maintained by the svelte team.
...And 7 more matches
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.
... these theme options can be implemented as static themes (although the theme images themselves may be animated) or as dynamic themes created in a browser
extension.
... static themes static themes are specified using the same resources as a browser
extension: a manifest.json file to define the theme components with those components stored in the same folder as the manifest.json file or a sub folder.
...And 7 more matches
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.
...And 7 more matches
ANGLE_instanced_arrays - Web APIs
the angle_instanced_arrays
extension is part of the webgl api and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 7 more matches
OES_texture_float - Web APIs
the oes_texture_float
extension is part of the webgl api and exposes floating-point pixel types for textures.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 7 more matches
OES_texture_half_float - Web APIs
the oes_texture_half_float
extension is part of the webgl api and adds texture formats with 16- (aka half float) and 32-bit floating-point components.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 7 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 6 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.
...for example, your
extension logo icon will probably be the same.
...And 6 more matches
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.
... /** * controls the browser overlay for the hello world
extension.
...And 6 more matches
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.
...luckily, you'll only need to know a handful of those for
extension development.
... this._prefservice.addobserver( "
extensions.xulschoolhello.somepref", this, false); }, observe : function(asubject, atopic, adata) { // do stuff here.
...And 6 more matches
Signing an XPI - Archive of obsolete content
for an
extension to work in firefox it must be signed by mozilla, not by yourself.
...see signing an
extension for a practical guide.
... introduction this article describes how to sign your own firefox
extensions with a code-signing certificate on a windows platform.
...And 6 more matches
Install.js - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
... to make your
extension install in mozilla suite, seamonkey, mozilla firefox pre-0.9 and mozilla thunderbird pre-0.7, you need to have an install.js file in the root of your xpi file.
...And 6 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 6 more matches
Plug-in Development Overview - Gecko Plugin API Reference
the server looks for the mime type registered by a plug-in, based on the file
extension, and starts sending the file to the browser.
...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.
...And 6 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 6 more matches
Certificate functions
function name/documentation source code nss versions cert_addcerttolisttail mxr 3.2 and later cert_add
extension mxr 3.5 and later cert_addocspacceptableresponses mxr 3.6 and later cert_addokdomainname mxr 3.4 and later cert_addrdn mxr 3.2.1 and later cert_asciitoname mxr 3.2 and later cert_cachecrl mxr 3.10 and later cert_clearocspcache mxr 3.11.7 and later cert_certchainfromcert mxr 3.2 and later...
...t_createname mxr 3.2.1 and later cert_createocspcertid mxr 3.6 and later cert_createocsprequest mxr 3.6 and later cert_createrdn mxr 3.2.1 and later cert_createsubjectcertlist mxr 3.4 and later cert_createvalidity mxr 3.5 and later cert_crlcacherefreshissuer mxr 3.7 and later cert_decodealtname
extension mxr 3.10 and later cert_decodeauthinfoaccess
extension mxr 3.10 and later cert_decodeauthkeyid mxr 3.10 and later cert_decodeavavalue mxr 3.4 and later cert_decodebasicconstraintvalue mxr 3.2 and later cert_decodecertfrompackage mxr 3.4 and later cert_decodecertificatepolicies
extension mxr 3.2 and later...
... cert_decodecertpackage mxr 3.2 and later cert_decodecrldistributionpoints mxr 3.10 and later cert_decodedercrl mxr 3.2 and later cert_decodedercrlwithflags mxr 3.6 and later cert_decodegeneralname mxr 3.4 and later cert_decodenameconstraints
extension mxr 3.10 and later cert_decodeocspresponse mxr 3.6 and later cert_decodeoidsequence mxr 3.2 and later cert_decodeprivkeyusageperiod
extension mxr 3.10 and later cert_decodetruststring mxr 3.4 and later cert_decodeusernotice mxr 3.2 and later cert_dernametoascii mxr 3.4 and later cert_destroycertarray mxr 3.2 and later cert_destroycertificate mxr ...
...And 6 more matches
NSS functions
function name/documentation source code nss versions cert_addcerttolisttail mxr 3.2 and later cert_add
extension mxr 3.5 and later cert_addocspacceptableresponses mxr 3.6 and later cert_addokdomainname mxr 3.4 and later cert_addrdn mxr 3.2.1 and later cert_asciitoname mxr 3.2 and later cert_cachecrl mxr 3.10 and later cert_clearocspcache mxr 3.11.7 and later cert_certchainfromcert mxr 3.2 and later...
...t_createname mxr 3.2.1 and later cert_createocspcertid mxr 3.6 and later cert_createocsprequest mxr 3.6 and later cert_createrdn mxr 3.2.1 and later cert_createsubjectcertlist mxr 3.4 and later cert_createvalidity mxr 3.5 and later cert_crlcacherefreshissuer mxr 3.7 and later cert_decodealtname
extension mxr 3.10 and later cert_decodeauthinfoaccess
extension mxr 3.10 and later cert_decodeauthkeyid mxr 3.10 and later cert_decodeavavalue mxr 3.4 and later cert_decodebasicconstraintvalue mxr 3.2 and later cert_decodecertfrompackage mxr 3.4 and later cert_decodecertificatepolicies
extension mxr 3.2 and later...
... cert_decodecertpackage mxr 3.2 and later cert_decodecrldistributionpoints mxr 3.10 and later cert_decodedercrl mxr 3.2 and later cert_decodedercrlwithflags mxr 3.6 and later cert_decodegeneralname mxr 3.4 and later cert_decodenameconstraints
extension mxr 3.10 and later cert_decodeocspresponse mxr 3.6 and later cert_decodeoidsequence mxr 3.2 and later cert_decodeprivkeyusageperiod
extension mxr 3.10 and later cert_decodetruststring mxr 3.4 and later cert_decodeusernotice mxr 3.2 and later cert_dernametoascii mxr 3.4 and later cert_destroycertarray mxr 3.2 and later cert_destroycertificate mxr ...
...And 6 more matches
Plug-in Development Overview - Plugins
the server looks for the mime type registered by a plug-in, based on the file
extension, and starts sending the file to the browser.
...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.
...And 6 more matches
WEBGL_depth_texture - Web APIs
the webgl_depth_texture
extension is part of the webgl api and defines 2d depth and depth-stencil textures.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 6 more matches
WEBGL_draw_buffers - Web APIs
the webgl_draw_buffers
extension is part of the webgl api and enables a fragment shader to write to several textures, which is useful for deferred shading, for example.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 6 more matches
Intl - JavaScript
a unicode bcp 47 locale identifier consists of a language code, (optionally) a script code, (optionally) a region (or country) code, (optionally) one or more variant codes, and (optionally) one or more
extension sequences, with all present components separated by hyphens.
... 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.
... javascript internationalization functions use the "u" (unicode)
extension, which can be used to request additional customization of collator, numberformat, or datetimeformat objects.
...And 6 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.
... for example, an ogg file with only an opus audio track is sometimes referred to as an opus file, and might even have the
extension .opus.
...And 6 more matches
Adding Events and Commands - Archive of obsolete content
it isn't hard for xul code to control the content on pages being loaded or displayed, as we will see later on, but it can be hard for your
extension xul code to receive information from pages in a secure manner.
... suppose your
extension interacts with pages from a website, and you want some actions on this site to trigger actions in your
extension.
... one way to solve this is to have the actions on the site to generate a custom event that can be easily recognized by your
extension.
...And 5 more matches
Intercepting Page Loads - Archive of obsolete content
this is how the tamper data
extension and others do it.
... 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.
...picking the right filter not only simplifies your code, but also reduces the performance impact your
extension will have in regular navigation.
...And 5 more matches
Mozilla Documentation Roadmap - Archive of obsolete content
« previousnext » mozilla documentation firefox
extension development is still an immature discipline, with a developer base consisting mostly of hobbyists and just a few organized development groups.
... there's a great deal of free online documentation available on xul and
extension development, but finding it and turning it into useful information can be a daunting task.
...this tutorial was aimed at compiling all the right resources for
extension development and putting them in the right context, but there's much more to learn, and knowing how to find it is part of what we felt was necessary to teach.
...And 5 more matches
Introduction to XUL - Archive of obsolete content
for this reason, we've defined a mime type "text/xul" mapped to files with the
extension ".xul".
... the chrome protocol is another mozilla
extension allowing the exact location of files involved in the chrome description to be moved without affecting the xul source.
...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.
...And 5 more matches
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).
... xquseme is a working proof-of-concept (so far tested on windows and linux with java installed; mac does not work)
extension which allows one to perform xqueries on external urls, the currently loaded webpage (even if originally from poorly formed html), and/or xml (including well-formed xhtml) documents stored locally.
... the
extension now includes and interfaces with the open-source version of saxonica's saxon b (though this
extension currently only performs the xqueries).
...And 5 more matches
Accessibility Features in Firefox
basic screen reader accessibility is available via the fire vox
extension.
... the accessibility
extension may be installed on top of firefox, allowing keyboard access to document structure.
... many users are finding the true greatness of firefox lies in support for third party
extensions.
...And 5 more matches
CSUN Firefox Materials
basic screen reader accessibility is available via gnopernicus or the fire vox
extension.
... the accessibility
extension may be installed on top of firefox, allowing keyboard access to document structure.
...many users are finding the true greatness of firefox lies in support for third party
extensions.
...And 5 more matches
Creating a Firefox sidebar
there are two ways to create a sidebar for firefox users: the social api and an
extension.
... an
extension an
extension is a kind of add-ons that adds new functionalities to firefox.
... there is a wide range of
extensions available, and some of them provide a sidebar.
...And 5 more matches
XPCOM
gecko or necko) or by an application or even by an
extension.
...effectively, it is a different platform.bundling multiple binary componentsbinary xpcom components are sometimes required to implement low-level features for
extensions.
...this can create a difficult situation for
extension developers trying to support multiple gecko versions (firefox 2 and 3, for example).creating a python xpcom componentcreating applications with mozilla already provides a tutorial for making a simple javascript or c++ component (implementing the nsisimple interface).
...And 5 more matches
Creating a Custom Column
one of the new and exciting features available to thunderbird
extension developers in thunderbird 2.0 is the ability to easily create and handle custom columns in thunderbird's main view.
... getting started in this example we will be developing a small
extension that will be adding a column that will display the "reply-to:" field of an email (if it exists, it if often not set).
... if you are unfamiliar with the setup and creation of an
extension please read building a thunderbird
extension.
...And 5 more matches
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.
...as an answer to this large gap in the netscape plugin api, an
extension to the api has been developed that lets plugins be scriptable again, independent of java.
...And 5 more matches
EXT_color_buffer_half_float - Web APIs
the ext_color_buffer_half_float
extension is part of the webgl api and adds the ability to render to 16-bit floating-point color buffers.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 5 more matches
EXT_disjoint_timer_query - Web APIs
the ext_disjoint_timer_query
extension is part of the webgl api and provides a way to measure the duration of a set of gl commands, without stalling the rendering pipeline.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 5 more matches
EXT_float_blend - Web APIs
the webgl api's ext_float_blend
extension allows blending and draw buffers with 32-bit floating-point components.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 5 more matches
OES_texture_float_linear - Web APIs
the oes_texture_float_linear
extension is part of the webgl api and allows linear filtering with floating-point pixel types for textures.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 5 more matches
OES_texture_half_float_linear - Web APIs
the oes_texture_half_float_linear
extension is part of the webgl api and allows linear filtering with half floating-point pixel types for textures.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 5 more matches
OES_vertex_array_object - Web APIs
the oes_vertex_array_object
extension is part of the webgl api and provides vertex array objects (vaos) which encapsulate vertex array states.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 5 more matches
OVR_multiview2 - Web APIs
the ovr_multiview2
extension is part of the webgl api and adds support for rendering into multiple views simultaneously.
... 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.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 5 more matches
WEBGL_color_buffer_float - Web APIs
the webgl_color_buffer_float
extension is part of the webgl api and adds the ability to render to 32-bit floating-point color buffers.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 5 more matches
WEBGL_debug_renderer_info - Web APIs
the webgl_debug_renderer_info
extension is part of the webgl api and exposes two constants with information about the graphics driver for debugging purposes.
... depending on the privacy settings of the browser, this
extension might only be available to privileged contexts.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
...And 5 more matches
XUL Application Packaging - Archive of obsolete content
xulrunner application packages are standard toolkit bundles (like a firefox
extension), with one additional manifest file (application.ini) which helps describe the application.
... xul app packages are typically zipped into an archive with the
extension .xulapp or .xpi.
... application.ini the application.ini manifest is located at the root of the
extension and provides metadata that allows xulrunner to launch the application properly.
...And 4 more matches
Interface Compatibility
achieving this compatibility may require rebuilding the
extension with a new version of the jetpack sdk.
... 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.
...And 4 more matches
NSS 3.16.2 release notes
the tls application layer protocol negotiation (alpn)
extension is also supported on the server side.
... new functions in cert.h cert_add
extensionbyoid - adds an
extension to a certificate.
... it is the same as cert_add
extension except that the oid is represented by a secitem instead of a secoidtag.
...And 4 more matches
sslerr.html
requires ciphers more secure than those supported by client." ssl_error_internal_error_alert -12188 "peer reports it experienced an internal error." ssl_error_user_canceled_alert -12187 "peer user canceled handshake." ssl_error_no_renegotiation_alert -12186 "peer does not permit renegotiation of ssl security parameters." ssl_error_unsupported_
extension_alert -12184 "ssl peer does not support requested tls hello
extension." ssl_error_certificate_unobtainable_alert -12183 "ssl peer could not obtain your certificate from the supplied url." ssl_error_unrecognized_name_alert -12182 "ssl peer has no certificate for the requested dns name." ssl_error_bad_cert_status_response_alert -12181 "ssl peer was...
... sec_error_
extension_value_invalid -8158 certificate
extension value is invalid.
... sec_error_
extension_not_found -8157 certificate
extension not found.
...And 4 more matches
TPS Tests
tps consists of a firefox
extension of the same name, along with a python test runner, both of which live inside mozilla-central.
... 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.
... the
extension will read the test file and perform a series of actions specified therein, such as populating a set of bookmarks, syncing to the sync server, making bookmark modifications, etc.
...And 4 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.
... first, you need to get the sdk, this project uses the following tools to compile the
extension for use.
... i used a different firefox profile for testing purposes called
extensions.
...And 4 more matches
nsIAnnotationService
supported for use from trusted code, such as
extensions, but not from web content.
...use the form "namespace/value", so your name would be like "bills_
extension/page_state" or "history/thumbnail".
...if there is an important annotation that the user or
extension wants to keep, you should add a bookmark for the page and use an expire_never annotation.
...And 4 more matches
Troubleshooting XPCOM components registration
if using firefox 4 / xulrunner 2.0, make sure that your
extension is unpacked and you declared the binary component in your chrome.manifest.
...to learn more about enabling chrome errors, see "how can i see errors in my code" in the
extension faqs.
...this should not occur if you uninstalled/installed your
extension via the
extension manager.
...And 4 more matches
Add to iPhoto
this
extension for mac os x serves as a demonstration of how to use js-ctypes to call mac os x carbon, core foundation, and other system frameworks from an
extension written entirely in javascript.
... note: this
extension uses carbon routines, which can no longer be used in firefox add-ons now that firefox is a 64-bit application.
... you can download an installable version of this
extension on amo.
...And 4 more matches
EXT_blend_minmax - Web APIs
the ext_blend_minmax
extension is part of the webgl api and extends blending capabilities by adding two new blend equations: the minimum or maximum color components of the source and destination colors.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 4 more matches
EXT_color_buffer_float - Web APIs
the ext_color_buffer_float
extension is part of webgl and adds the ability to render a variety of floating point formats.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 4 more matches
EXT_sRGB - Web APIs
the ext_srgb
extension is part of the webgl api and adds srgb support to textures and framebuffer objects.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 4 more matches
EXT_shader_texture_lod - Web APIs
the ext_shader_texture_lod
extension is part of the webgl api and adds additional texture functions to the opengl es shading language which provide the shader writer with explicit control of lod (level of detail).
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 4 more matches
OES_element_index_uint - Web APIs
the oes_element_index_uint
extension is part of the webgl api and adds support for gl.unsigned_int types to webglrenderingcontext.drawelements().
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 4 more matches
OES_standard_derivatives - Web APIs
the oes_standard_derivatives
extension is part of the webgl api and adds the glsl derivative functions dfdx, dfdy, and fwidth.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 4 more matches
WebGLRenderingContext.compressedTexImage[23]D() - Web APIs
compressed image formats must be enabled by webgl
extensions before using these methods.
...compressed image formats must be enabled by webgl
extensions before using this method.
...possible values: when using the webgl_compressed_texture_s3tc
extension: ext.compressed_rgb_s3tc_dxt1_ext ext.compressed_rgba_s3tc_dxt1_ext ext.compressed_rgba_s3tc_dxt3_ext ext.compressed_rgba_s3tc_dxt5_ext when using the webgl_compressed_texture_s3tc_srgb
extension: ext.compressed_srgb_s3tc_dxt1_ext ext.compressed_srgb_alpha_s3tc_dxt1_ext ext.compressed_srgb_alpha_s3tc_dxt3_ext ext.compressed_srgb_alpha_s3tc_dxt5_ext when using the webgl_compressed_texture_etc
extension: ext.compressed_r11_eac ext.compressed_signed_r11_eac ext.compressed_rg11_eac ext.compressed_signed_rg11_eac ext.compr...
...And 4 more matches
Compressed texture formats - Web APIs
by default, no compressed formats are available: a corresponding compressed texture format
extension must first be enabled.
... usage of compressed formats first requires activating the respective
extension with webglrenderingcontext.get
extension().
... if supported, it will return an
extension object with constants for the added formats and the formats will also be returned by calls to gl.getparameter(gl.compressed_texture_formats).
...And 4 more matches
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.
...And 4 more matches
On page load - Archive of obsolete content
progress listeners allow
extensions to be notified of events associated with documents loading in the browser and with tab switching events.
...or from seamonkey chrome://navigator/content/navigator.xul attaching a script attach a script to your overlay (see "attaching a script to an overlay") that adds a load event listener to appcontent element (browsers) or messagepane (mail): window.addeventlistener("load", function load(event){ window.removeeventlistener("load", load, false); //remove listener, no longer needed my
extension.init(); },false); var my
extension = { init: function() { var appcontent = document.getelementbyid("appcontent"); // browser if(appcontent){ appcontent.addeventlistener("domcontentloaded", my
extension.onpageload, true); } var messagepane = document.getelementbyid("messagepane"); // mail if(messagepane){ messagepane.addeventlistener("load", function(event) { mye...
... if(doc.location.href.search("forum") > -1) alert("a forum page is loaded"); // add event listener for page unload aevent.originaltarget.defaultview.addeventlistener("unload", function(event){ my
extension.onpageunload(event); }, true); }, onpageunload: function(aevent) { // do something } }; current firefox trunk nightlies will fire the onpageload function for not only documents, but xul:images (favicons in tabbrowser).
...And 3 more matches
Conclusion - Archive of obsolete content
« previous you now have a working mozilla
extension installer!
... to test it, try installing the
extension on a fresh copy of mozilla by loading the file in your mozilla browser (this works whether you load it from the web or from your local hard drive via a file:/// url).
...try installing the
extension, restarting mozilla, and see if it works.
...And 3 more matches
Making it into a static overlay - Archive of obsolete content
now that we have a working mozilla
extension that shows tinderbox status, we need to make it distributable to other users.
... the two ways of doing that are to integrate it into the mozilla codebase (in which case it is no longer an
extension but rather part of the default mozilla distribution) and to package it into an installer that users can run from within mozilla to add the
extension to their mozilla installation.
... most
extensions are distributed as installer packages, and that's how we'll distribute our
extension.
...And 3 more matches
Using XPInstall to Install Plugins - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
...an xpi package is in fact a zip file with the xpi file
extension (e.g.
...And 3 more matches
Introduction - Archive of obsolete content
there are several ways you can use xul: firefox
extension an
extension adds functionality to the browser itself, often in the form of extra toolbars, context menus, or customizations to the browser's user interface.
... this is done using a feature of xul called an overlay, which allows the ui provided from one source, in this case, the firefox browser, to be merged together with the ui from the
extension.
...
extensions may also be applied to other mozilla based products such as thunderbird.
...And 3 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 3 more matches
Introduction to Public-Key Cryptography - Archive of obsolete content
for more detailed information about ssl, see "introduction to ssl." signed and encrypted email some email programs support digitally signed and encrypted email using a widely accepted protocol known as secure multipurpose internet mail
extension (s/mime).
... optional certificate
extensions, which may provide additional data used by the client or server.
... for example, the certificate type
extension indicates the type of certificate-that is, whether it is a client ssl certificate, a server ssl certificate, a certificate for signing email, and so on.
...And 3 more matches
Mozilla XForms Specials - Archive of obsolete content
introduction this article gives an overview of where the mozilla xforms
extension deviates from the official xforms 1.0 specification .
... 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.
...And 3 more matches
Client-side tooling overview - Learn web development
it is available as a node.js command-line tool and a vs code
extension.
...for example: sass/scss: this css
extension allows you to use variables, nested rules, mixins, functions, and many other features, some of which are available in native css (such as variables), and some of which aren't.
... others there are a number of other tool types available to use in the post-development stage, including code climate for gathering code quality metrics, the webhint browser
extension for performing runtime analysis of cross-browser compatibility and other checks, github bots for providing more powerful github functionality, updown for providing app uptime monitoring, and so many more!
...And 3 more matches
Testopia
testopia is a test case management
extension for bugzilla.
...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/.
... the good news is that the current code in the git repository already works with bugzilla 5.0, and so if you upgraded to 5.0 already, and if you don't mind having a work-in-progress
extension on your machine, you can decide to pull the code from the git repository.
...And 3 more matches
Communicating with frame scripts
asynchronous messaging to send an asynchronous message the frame script uses the global sendasyncmessage() function: // frame script sendasyncmessage("my-addon@me.org:my-e10s-
extension-message"); sendasyncmessage() takes one mandatory parameter, which is the name of the message.
... the example below sends a message named "my-e10s-
extension-message", with a data payload containing details and tag properties, and exposes the event.target object as a cpow: // frame script addeventlistener("click", function (event) { sendasyncmessage("my-addon@me.org:my-e10s-
extension-message", { details : "they clicked", tag : event.target.tagname }, { target : event.target }); }, false); to receive messages from content, a chro...
... objects an object whose properties are any cpows exposed by the sender as the third argument to sendasyncmessage() in the example below the listener just logs all the messages details: // chrome script messagemanager.addmessagelistener("my-addon@me.org:my-e10s-
extension-message", listener); function listener(message) { console.log(message.name); console.log(message.sync); console.log(message.data); console.log(message.target); console.log(message.objects); } so combining this message listener with the message above will give console output somewhat like this, when the user clicks a <div>: "my-addon@me.org:my-e10s-
extension-message" false object { d...
...And 3 more matches
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.
...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
XPCOM ABI
(this is an internals detail and should be of no concern to an
extension developer.)
extension installation when the application (e.g.
... a common point of compatibility check is during the installation of
extensions.
... if an
extension provides binary xpcom components, it should declare their xpcom abi in the install manifest.
...And 3 more matches
XPI
xpi modules (so called "bundles") are employed to install a wide variety of software, including plugins,
extensions, themes, and thunderbird dictionaries.
...when downloaded or dropped into an
extension manager, xpinstall automatically interacts with the installation instructions contained in the xpi, and installs the contained software.
... note: starting in gecko 2.0, xpi files are no longer unpacked when
extensions are installed.
...And 3 more matches
EXT_frag_depth - Web APIs
the ext_frag_depth
extension is part of the webgl api and enables to set a depth value of a fragment from within the fragment shader.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 3 more matches
Performance - Web APIs
performance.memory read only a non-standard
extension added in chrome, this property provides an object with basic memory usage information.
... performance timeline level 2the definition of 'performance
extensions' in that specification.
... performance timelinethe definition of 'performance
extensions' in that specification.
...And 3 more matches
WEBGL_compressed_texture_astc - Web APIs
the webgl_compressed_texture_astc
extension is part of the webgl api and exposes adaptive scalable texture compression (astc) compressed texture formats to webgl.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 3 more matches
WEBGL_compressed_texture_pvrtc - Web APIs
the webgl_compressed_texture_pvrtc
extension is part of the webgl api and exposes four pvrtc compressed texture formats.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 3 more matches
WEBGL_debug_shaders - Web APIs
the webgl_debug_shaders
extension is part of the webgl api and exposes a method to debug shaders from privileged contexts.
... this
extension is not directly available to web sites as the way of how the shader is translated may uncover personally-identifiable information to the web page about the kind of graphics card in the user's computer.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
...And 3 more matches
WebGLRenderingContext.compressedTexSubImage2D() - Web APIs
compressed image formats must be enabled by webgl
extensions before using this method or a webgl2renderingcontext must be used.
...compressed image formats must be enabled by webgl
extensions before using this method.
... possible values: when using the webgl_compressed_texture_s3tc
extension: ext.compressed_rgb_s3tc_dxt1_ext ext.compressed_rgba_s3tc_dxt1_ext ext.compressed_rgba_s3tc_dxt3_ext ext.compressed_rgba_s3tc_dxt5_ext when using the webgl_compressed_texture_s3tc_srgb
extension: ext.compressed_srgb_s3tc_dxt1_ext ext.compressed_srgb_alpha_s3tc_dxt1_ext ext.compressed_srgb_alpha_s3tc_dxt3_ext ext.compressed_srgb_alpha_s3tc_dxt5_ext when using the webgl_compressed_texture_etc
extension: ext.compressed_r11_eac ext.compressed_signed_r11_eac ext.compressed_rg11_eac ext.compressed_signed_rg11_eac ext.compressed_rgb8_etc2 ext.compressed_rgba8_etc2_eac ext.compressed_srgb8_etc2 ext.compressed_srgb8_alpha8_etc2_eac ex...
...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
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 3 more matches
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 dra...
... proposed standard rfc 7239 forwarded http
extension proposed standard rfc 6455 the websocket protocol proposed standard rfc 5246 the transport layer security (tls) protocol version 1.2 this specification has been modified by subsequent rfcs, but these modifications have no effect on the http protocol.
...And 3 more matches
Intl.Locale.prototype.hourCycle - JavaScript
like other additional locale data, hour cycle type is an
extension subtag, which extends the data contained in a locale string.
... adding an hour cycle via the locale string in the unicode locale string spec, the hour cycle is a locale string "
extension subtag".
... these subtags add additional data about the locale, and are added to locale identifiers by using the -u
extension key.
...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
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.
...And 3 more matches
mimeTypes.rdf corruption - SVG: Scalable Vector Graphics
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.
...for files loaded locally, it first looks in a cache of filename
extension to media type mappings (stored in a mozilla profile file called mimetypes.rdf), and if it doesn't find a media type there, it asks the operating system.
...first, certain actions can cause the media types cache in mimetypes.rdf to associate a filename
extension with the wrong media type.
...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
console - Archive of obsolete content
if you're developing your add-on using the
extension auto-installer, then the add-on is installed in firefox, meaning that messages will appear in the browser console.
... 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.
...And 2 more matches
Sidebar - Archive of obsolete content
see the creating a firefox sidebar tutorial for step-by-step instructions on creating a firefox sidebar
extension.
...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".
...to open a page in the "viewwebpanelssidebar" from chrome code (browser/addon/
extension) such as from menuitem, it can call: openwebpanel(atitle, auri); accessing the sidebar from a browser.xul script the sidebar content is always in a document separate from the main browser document (the sidebar is actually implemented as a xul browser element).
...And 2 more matches
Default Preferences - Archive of obsolete content
introduction a key part of any
extension is the default settings that come with it.
...default preferences are set similarly but inside an
extension and use the pref() function.
... setting default preferences while most of an
extension's directories can be named arbitrarily and mapped using a chrome manifest, default preferences must be in very particular spot: |
extension root +--|content +--|skin +--|defaults +--|preferences to add preferences simply drop a .js file into that directory and mozilla will read it and set the appropriate preferences.
...And 2 more matches
Adding menus and submenus - Archive of obsolete content
if your
extension requires custom xul windows, you may also need to have menus on those windows.
...if your
extension involves menus in any way, you should test it on mac os x to make sure everything works adequately.
... adding elements to existing menus just as explained in the previous sections, the best place to overlay your
extension menu is inside the tools menu.
...And 2 more matches
Adding windows and dialogs - Archive of obsolete content
to open a new dialog, use the function window.opendialog, an
extension of the open function.
... using the prompt service is the recommended way to create common dialogs in an
extension.
...it's ok to use this function if you're just debugging some problem and want to see if the program reaches a specific line of code, or to inspect the value of a variable, but your final
extension should not have alert calls anywhere.
...And 2 more matches
The Box Model - Archive of obsolete content
in order to use this page, you'll need to install the remote xul manager
extension and add developer.mozilla.org to the whitelist.
...at any rate, it can always be overriden using css, so your
extension won't lose skinability because of it.
... exercise use the dom inspector
extension to look into the firefox chrome.
...And 2 more matches
Session store API - Archive of obsolete content
session store makes it possible for
extensions to easily save and restore data across firefox sessions.
... there is a simple api that lets
extensions access the session store feature.
... one key scenario in which supporting this feature can be crucial for an
extension: firefox 2 lets users undo the closing of tabs.
...And 2 more matches
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).
...velopment tool openoffice.org office suite uses nss openswan implementation of ipsec for linux uses nss orca browser web browser gecko-based version of avant browser pale moon web browser optimized browser developed by moonchild productions for gnu/linux & windows platforms, originally forked from firefox palo suite excel
extension uses prism partygaming online gaming product uses gecko pencil tool for making diagrams and gui prototyping available as a firefox
extension or a standalone app pentaho bi suite commercial open source business intelligence uses xul and mozilla rhino persevere tools for persistence and distributed computing uses mozilla rhino ...
...phloneme publishing tool for vocab collab phped php editor embedded mozilla browser in product pidgin im client uses nss plain old webserver
extension and standalone webserver 5,000 users and 30,000 downloads poe::xul framework for remote xul application in poe postbox email client started as a fork of thunderbird printgroove jt suite print process software uses xulrunner and spidermonkey prism (was webrunner) single-site browser xulrunner application pro/engineer wildfire cadcam product psycrunner chat, messenger, multicast toolkit about 1,000 users – xulrunner version of psyczilla
extension pyjamas-desktop a python web widget toolkit uses...
...And 2 more matches
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.
... in addition, an
extension may add an entirely new menu.
... for example, an
extension might wish to add a new command on the tools menu to open a dialog specific to the
extension.
...And 2 more matches
Using the standard theme - Archive of obsolete content
by default, no style is associated with xul
extension windows or dialogs.
... at the beginning, there is no style when creating a new xul <tt>window</tt> (or a new <tt>dialog</tt>, for that matter) in your
extension, and you do not associate a style sheet with it, your widgets will be unstyled.
...if you are only going to use these global style sheets, you of course do not need a <tt>skin</tt> directory in your
extension package, and also do not have to register a style in the <tt>chrome.manifest</tt>.
...And 2 more matches
XULRunner Hall of Fame - Archive of obsolete content
sqlite manager manage all your sqlite databases using this lightweight
extension for firefox, thunderbird, seamonkey, songbird, komodo etc.
...both firefox
extension and xulrunner-based standalone application available.
...latest release: 1.2 november 2008 - source cocoapsyc.app a psyc im/chat client for mac os x (also available as a firefox
extension).
...And 2 more matches
XForms Custom Controls - Archive of obsolete content
custom data types - existing xforms controls are not able to work properly with your data type advanced xforms controls - you need your controls to be able to do more things than traditional xforms controls can do new host language - you'd like to support xforms in host languages other than xhtml or xul custom presentation the mozilla xforms
extension cannot anticipate all of the possible use cases that will evolve in web applications and web pages as xforms matures and the user base grows.
...for example, in the mozilla xforms
extension we will render a combobox widget when appearance='minimal' on a select1 control.
...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.
...And 2 more matches
Troubleshooting XForms Forms - Archive of obsolete content
always do this first make sure that you are running the latest release of the
extension.
...you either have to use css tables or repeat attributes, which at the moment are not working properly in the firefox xforms
extension :( should be fixed by bug 306247 and bug 280368 respectively.
...if you are developing on your local machine using apache tomcat for example then add the following regular expression on a new line: ^http://localhost:8080/.* use the xforms buddy to view instance data the xforms buddy
extension allows you to dynamically view model instance data while the xforms is running in the firefox browser.
...And 2 more matches
XForms - Archive of obsolete content
xforms support can be added to firefox and seamonkey by installing the mozilla xforms
extension.
... this
extension, while supporting a significant subset of the xforms 1.0 and 1.1 candidate recommendations, is not actively maintained any more since about 2010.
... for more details about the future of the mozilla xforms
extension see this blog post.
...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
XUL Booster - Archive of obsolete content
xul booster is a third party eclipse / webtools build that offers some support for xul editing and awesome support for
extension packaging.
...
extension quick start xul booster makes creating and packaging an
extension very easy.
...create an
extension you'll need an
extension id; see generating guids.
...And 2 more matches
Command line options
add-ons gecko 1.9.2 note -install-global-
extension and -install-global-theme have been removed from gecko 1.9.2 and upwards.
... -install-global-
extension /path/to/
extension installs the
extension into the application directory.
... the parameter is the path to the
extension.
...And 2 more matches
Configuring Build Options
choose one of the following options to add to your mozconfig file: browser (firefox) ac_add_options --enable-application=browser note: this is the default mail (thunderbird) ac_add_options --enable-application=comm/mail mozilla suite (seamonkey) ac_add_options --enable-application=suite calendar (lightning
extension, uses thunderbird) ac_add_options --enable-application=comm/mail ac_add_options --enable-calendar selecting build options the build options you choose depends on what application you are building and what you will be using the build for.
...
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.
...And 2 more matches
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.
... example tbp note for
extension developers in order for your event to work the way it is described here it must be derived from nsdomevent.
... the problem that
extension developers will hit is that you are not allowed derive from nsdomevent in an
extension.
...And 2 more matches
AddonManager
the existing add-on types are defined in xpiprovider.jsm and are, at this time, the following:
extension, theme, locale, multipackage, dictionary and experiment.
... to import the addonmanager object in the add-on sdk, use: const { addonmanager } = require("resource://gre/modules/addonmanager.jsm"); to import it in a normal bootstrapped
extension or similar, use: cu.import("resource://gre/modules/addonmanager.jsm"); method overview promise?
...corresponds to the
extensions.autoupdatedefault preference.
...And 2 more matches
Using JavaScript code modules
if you're writing an
extension for firefox 4 and already have a chrome.manifest with a content instruction in it, you can put the code module in your content folder and reference it like your other content files via chrome://<your
extension>/content/<yourmodule>.jsm.
... if your
extension or application needs to support mozilla 1.9.x (firefox 3.x), you should register a new resource url.
...code modules are simple javascript files with a .js or .jsm
extension.
...And 2 more matches
NSS 3.12.6 release notes
new in nss 3.12.6 ssl3 & tls renegotiation indication
extension (rfc 5746) by default, nss 3.12.6 uses the new tls renegotiation indication
extension for tls renegotiation but allows simple ssl/tls connections (without renegotiation) with peers that don't support the tls renegotiation indication
extension.
... [2|r|r]: ssl_renegotiate_requires_xtn (default) only allows renegotiation if the peer's hello bears the tls renegotiation_info
extension.
...the status_request
extension).
...And 2 more matches
NSS 3.15 release notes
certutil has been updated to support creating name constraints
extensions.
... new functions in ssl.h ssl_peerstapledocspresponse - returns the server's stapled ocsp response, when used with a tls client socket that negotiated the status_request
extension.
... ssl_setstapledocspresponses - set's a stapled ocsp response for a tls server socket to return when clients send the status_request
extension.
...And 2 more matches
NSS 3.35 release notes
note: the value of ssl_tls13_key_share_xtn value, from the ssl
extensiontype, has been renumbered to match changes in tls 1.3.
... users of tls are now able to provide implementations of tls
extensions, through an experimental custom
extension api.
... see the documentation in sslexp.h for ssl_install
extensionhooks for more information on this feature.
...And 2 more matches
Using the Places annotation service
it is usable from trusted firefox code such as
extensions, but not from web pages.
...for example, "my_
extension/page_state".
... var ioservice = components.classes["@mozilla.org/network/io-service;1"] .getservice(components.interfaces.nsiioservice); var uri = ioservice.newuri("http://www.mozilla.org/", null, null); annotationservice.setpageannotation(uri, "my_
extension/some_annotation", "this is the annotation value", 0, 0); retrieving annotations there are corresponding getters for the setters above (see nsiannotationservice.idl for the exact declarations): from c++: getpageannotationstring(auri, aname); getpageannotationint32(auri, aname); getpageannotationint64(auri, aname); getpageannotationdouble(auri, aname); getpageannotationbinary(auri, ana...
...And 2 more matches
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.
...And 2 more matches
nsIInstallLocation
toolkit/mozapps/
extensions/public/nsi
extensionmanager.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 nsi
extensionmanager interface: var il = components.classes["@mozilla.org/
extensions/manager;1"] .getservice(components.interfaces.nsi
extensionmanager) .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 astr...
...path the path to the file beneath an
extension's directory.
...And 2 more matches
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).
...this
extension is treated specially by windows as a known
extension for an 'application compatibility database' and changes are backed up by the system automatically as part of system restore functionality.
...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
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.
... bit 7,
extension data (ed) - if set,
extension data is present.
...
extension data will follow attestedcredentialdata if it is present, or will immediatelly follow the first 37 bytes of the authenticatordata if no attestedcredentialdata is present.
...And 2 more matches
EXT_texture_compression_bptc - Web APIs
the ext_texture_compression_bptc
extension is part of the webgl api and exposes 4 bptc compressed texture formats.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 2 more matches
EXT_texture_compression_rgtc - Web APIs
the ext_texture_compression_rgtc
extension is part of the webgl api and exposes 4 rgtc compressed texture formats.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 2 more matches
EXT_texture_filter_anisotropic - Web APIs
the ext_texture_filter_anisotropic
extension is part of the webgl api and exposes two constants for anisotropic filtering (af).
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...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
OES_fbo_render_mipmap - Web APIs
the oes_fbo_render_mipmap
extension is part of the webgl api and makes it possible to attach any level of a texture to a framebuffer object.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 2 more matches
WEBGL_compressed_texture_atc - Web APIs
the webgl_compressed_texture_atc
extension is part of the webgl api and exposes 3 atc compressed texture formats.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 2 more matches
WEBGL_compressed_texture_etc - Web APIs
the webgl_compressed_texture_etc
extension is part of the webgl api and exposes 10 etc/eac compressed texture formats.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 2 more matches
WEBGL_compressed_texture_etc1 - Web APIs
the webgl_compressed_texture_etc1
extension is part of the webgl api and exposes the etc1 compressed texture format.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 2 more matches
WEBGL_compressed_texture_s3tc - Web APIs
the webgl_compressed_texture_s3tc
extension is part of the webgl api and exposes four s3tc compressed texture formats.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 2 more matches
WEBGL_compressed_texture_s3tc_srgb - Web APIs
the webgl_compressed_texture_s3tc_srgb
extension is part of the webgl api and exposes four s3tc compressed texture formats for the srgb colorspace.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 2 more matches
WEBGL_lose_context - Web APIs
the webgl_lose_context
extension is part of the webgl api and exposes functions to simulate losing and restoring a webglrenderingcontext.
... webgl
extensions are available using the webglrenderingcontext.get
extension() method.
... for more information, see also using
extensions in the webgl tutorial.
...And 2 more matches
Starting up and shutting down a WebXR session - Web APIs
webxr api emulator
extension the mozilla webxr team has created a webxr api emulator browser
extension, compatible with both firefox and chrome, which emulates the webxr api, simulating a variety of compatible devices such as the htc vive, the oculus go and oculus quest, samsung gear, and google cardboard.
... with the
extension in place, you can open up a developer tools panel that lets you control the position and orientation of the headset and any hand controllers, as well as button presses on the controllers.
... getting the
extension download the webxr api emulator for your supported browser below: google chrome mozilla firefox the source code for the
extension is also available on github.
...And 2 more matches
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.
... note: in some module systems, you can omit the file
extension and the dot (e.g.
... because .mjs is a non-standard file
extension, some operating systems might not recognise it, or try to replace it with something else.
...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
Intl.Collator() constructor - JavaScript
the following unicode
extension keys are allowed: co variant collations for certain locales.
...this option can be set through an options property or through a unicode
extension key; if both are provided, the options property takes precedence.
...this option can be set through an options property or through a unicode
extension key; if both are provided, the options property takes precedence.
...And 2 more matches
Intl.Locale.prototype.calendar - JavaScript
islamicc civil (algorithmic) arabic calendar examples adding a calendar in the locale string calendar eras fall under the category of locale key "
extension keys".
... these keys add additional data about the locale, and are added to locale identifiers by using the -u
extension.
...to add the calendar type, first add the -u
extension to the string.
...And 2 more matches
Intl.Locale.prototype.caseFirst - JavaScript
kf is treated as a locale string "
extension subtag".
... these subtags add additional data about the locale, and are added to locale identifiers by using the -u
extension key.
...to add the casefirst value, first add the -u
extension key to the string.
...And 2 more matches
Intl.Locale.prototype.collation - JavaScript
adding a collation type via the locale string in the unicode locale string spec, collation types are locale key "
extension subtags".
... these subtags add additional data about the locale, and are added to locale identifiers by using the -u
extension.
...to add the collation type, first add the -u
extension to the string.
...And 2 more matches
Intl.Locale.prototype.numeric - JavaScript
kn is considered a locale string "
extension subtag".
... these subtags add additional data about the locale, and are added to locale identifiers by using the -u
extension key.
...to set the numeric value, first add the -u
extension key to the string.
...And 2 more matches
Intl.Locale - JavaScript
the locale identifier consists of a language identifier and
extension tags.
...additional information about the locale is stored in the optional
extension tags.
...
extension tags hold information about locale aspects such as calendar type, clock type, and numbering system type.
...And 2 more matches
Miscellaneous - Archive of obsolete content
var osstring = services.appinfo.os; detecting the host application and version // get the name of the application running us services.appinfo.name; // returns "firefox" for firefox services.appinfo.version; // returns "2.0.0.1" for firefox version 2.0.0.1 retrieving the version of an
extension as specified in the
extension's install.rdf components.utils.import("resource://gre/modules/addonmanager.jsm"); addonmanager.getaddonbyid("
extension-guid@example.org", function(addon) { // this is an asynchronous callback function that might not be called immediately alert("my
extension's version is " + addon.version); }); restarting firefox/thunderbird/seamonkey_2.0 for firefox 3 see on...
... using string bundles from javascript assuming the
extension has myext.properties with name/value pairs such as: invalid.url=the speficied url, %s, is invalid.
...for firefox, you could use the client customization kit (cck) to create an
extension that does exactly that.
...}); example@addon is
extension id.
Toolbar - Archive of obsolete content
adding a toolbar button there are two tutorials available: an elaborate step by step tutorial for beginners: custom toolbar button a tutorial describing the steps needed to add a toolbar button assuming you already have a working
extension and know the basics of
extension development: creating toolbar buttons adding button by default when you create and deploy your
extension and include a toolbar button for it by overlaying the customize toolbarpalette, it is not available by default.
... notes insert your button by default only once, at first run, or when an
extension update adds a new button.
... please only add your button by default if it adds real value to the user and will be a frequent entry point to your
extension.
... if (elem && elem.parentnode == toolbar) before = elem.nextelementsibling; } toolbar.insertitem(id, before); toolbar.setattribute("currentset", toolbar.currentset); document.persist(toolbar.id, "currentset"); if (toolbarid == "addon-bar") toolbar.collapsed = false; } } if (firstrun) { installbutton("nav-bar", "my-
extension-navbar-button"); // the "addon-bar" is available since firefox 4 installbutton("addon-bar", "my-
extension-addon-bar-button"); } ...
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.
... in this case the user is told that firefox needs to restart in order for the
extension to be completely removed.
Custom XUL Elements with XBL - Archive of obsolete content
we'll look into xbl using a modified version of the hello world
extension.
...as for the css file, it's usually good to have a single file declaring all bindings in your
extension.
...you can enrich the ui of a firefox window by extending and replacing elements, which is what the console²
extension does in order to improve the error console window.
...it's very easy to break the ui of the application or other
extensions if you do this the wrong way, so be very careful about it.
Promises - Archive of obsolete content
ons", "getaddonsbyids", "getaddonsbytypes", "getaddonswithoperationsbytypes"]) aom._replacemethod(method, addons => addons.map(aom.addon)); aom._replacemethod("getinstallsbytypes", installs => installs); components.utils.import("resource://gre/modules/addonmanager.jsm", aom); example usage: task.spawn(function* () { // get an
extension instance, and its data directory.
... let addon = yield aom.getaddonbyid(addon_id); let path = yield addon.getdatadirectory(); writer.writedatato(path); // disable all
extensions.
... for (let
extension of yield aom.getaddonsbytypes(["
extension"]))
extension.userdisabled = true; }); json file storage this helper simplifies the use of json data storage files with asynchronous io.
... */ jsonstore.prototype.save = function () { return this.saver.savechanges(); }; example usage: var addon_id = "
extension@example.com"; var config_default = { "foo": "bar", }; new jsonstore("config", config_default).then(store => { console.log(store.data); store.data.baz = "quux"; store.save(); }) the following changes will remove the dependency on aom wrappers: let addon = yield new promise(accept => addonmanager.getaddonbyid(addon_id, accept)); let dir = yield new ...
Making it into a dynamic overlay and packaging it up for distribution - Archive of obsolete content
see building an
extension for updated instructions.
... now that we have a static overlay we're in good shape to create a xpi package that installs our
extension as a dynamic overlay.
... in the content sub-subdirectory: <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:chrome="http://www.mozilla.org/rdf/chrome#"> <rdf:seq about="urn:mozilla:package:root"> <rdf:li resource="urn:mozilla:package:tinderstatus"/> </rdf:seq> <rdf:description about="urn:mozilla:package:tinderstatus" chrome:displayname="mozilla tinderstatus
extension" chrome:author="myk melez" chrome:name="tinderstatus" chrome:
extension="true" chrome:description="displays tinderbox status for the mozilla codebase."> </rdf:description> <rdf:seq about="urn:mozilla:overlays"> <rdf:li resource="chrome://navigator/content/navigator.xul"/> </rdf:seq> <rdf:seq about="chrome://navigator/content/navigator.xul"> <rdf:li>chrome://tinderstat...
...us/content/tinderstatusoverlay.xul</rdf:li> </rdf:seq> </rdf:rdf> install.js, on the other hand, goes into the tinderstatus-installer directory: initinstall( "mozilla tinderstatus
extension", "/mozdev/tinderstatus", "0.1"); var installdir = getfolder("chrome","tinderstatus"); setpackagefolder(installdir); adddirectory("tinderstatus"); registerchrome( content | delayed_chrome, getfolder(installdir, "content")); var result = performinstall(); if ( result != success ) cancelinstall(result); once all the files are in place, use your zip utility from within the tinderstatus-installer directory to create a zip archive called tinderstatus.xpi with install.js and the entire contents of the tinderstatus/ directory.
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().
... alternatives console2 this
extension provides a replacement for error console, fixing many of its bugs and implementing long-wanted enhancement requests.
... firebug the
extension for firefox also integrates the error console with various improvements.
Prism - Archive of obsolete content
it should be possible for developers to include prism-style
extension directly in their web app.
...we intend to propose these
extensions for inclusion in future versions of xulrunner.
... firefox
extension: a firefox
extension, code-named "refractor", can be used to spin out new prism apps from inside the web browser.
...bundles can be installed locally, or directly from a website using the prism for firefox
extension.
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.
XPInstall - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
...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 ...
Creating an Installer - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
... the jar file installers typically have the
extension .xpi (pronounced zippy) to distinguish them from other archives.
... function donefn ( name , result ){ if (result) alert("an error occured: " + result); } var xpi = new object(); xpi["find files"] = "findfile.xpi"; installtrigger.install(xpi,donefn); the xpi archive note: if you want to create a new xulrunner application,
extension, or theme, see bundles.
Using Visual Studio as your XUL IDE - Archive of obsolete content
> text editor > file
extension and add the
extension "xul" with "xml editor".
...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.
Frame script loading and lifetime
chrome: urls
extension developers usually use a chrome:// url to refer to the frame scripts.
... to define the mapping between a chrome:// url and a frame script packaged with an
extension, use a "chrome.manifest" file to register a chrome url: // chrome.manifest content my-e10s-
extension chrome/content/ // chrome script mm.loadframescript("chrome://my-e10s-
extension/content/content.js", true); allowdelayedload if the message manager is a global frame message manager or a window message manager then: if allowdelayedload is true, the frame script will be loaded into any new frame, which has opened after the loadframescript() call.
... for example: var mm = window.messagemanager; mm.loadframescript("chrome://my-e10s-
extension/content/frame-script.js", true); the script will be loaded into all tabs currently open in this window, and all new tabs opened afterwards.
... if you use allowdelayedload, you can cancel it by using removedelayedframescript: var mm = window.messagemanager; mm.removedelayedframescript("chrome://my-e10s-
extension/content/frame-script.js"); this means we will stop loading the script into new tabs.
NSS 3.15.5 release notes
nss 3.15.5 source distributions are also available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_15_5_rtm/src/ new in nss 3.15.5 new functionality added support for the tls application layer protocol negotiation (alpn)
extension.
... added the tls padding
extension.
... the
extension type value is 35655, which may change when an official
extension type value is assigned by iana.
... nss automatically adds the padding
extension to clienthello when necessary.
Enc Dec MAC Using Key Wrap CertReq PKCS10 CSR
char *outfilename, seckeyprivatekey **selfsignprivkey, void *pwarg, secoidtag hashalgtag, unsigned int serialnumber, int warpmonths, int validitymonths, const char *dnsnames, prbool ascii, prbool selfsign) { void *exthandle; secitem reqder; certcert
extension **crexts; secstatus rv = secsuccess; certcertificate *subjectcert = null; certcertificaterequest *certreq = null; prfiledesc *outfile = null; secitem *certder = null; reqder.data = null; outfile = pr_open(outfilename, pr_rdwr | pr_create_file | pr...
... 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_ex...
...tension_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; } /* ...
sample2
rv; } /* * create a certificate */ static secstatus createcert( certcertdbhandle *handle, pk11slotinfo *slot, char * issuernickname, char *infilename, char *outfilename, seckeyprivatekey **selfsignprivkey, void *pwarg, secoidtag hashalgtag, unsigned int serialnumber, int warpmonths, int validitymonths, const char *dnsnames, prbool ascii, prbool selfsign) { void *exthandle; secitem reqder; certcert
extension **crexts; secstatus rv = secsuccess; certcertificate *subjectcert = null; certcertificaterequest *certreq = null; prfiledesc *outfile = null; secitem *certder = null; reqder.data = null; outfile = pr_open(outfilename, pr_rdwr | pr_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 != 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; } } 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, certder->data, certder->len); } } if (rv != secsuccess) { prerrorcode perr = pr_geterror(); pr_fprintf(pr_stderr, "unable to create cert %s\n", perr); } cleanup: if (o...
...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 (signalg...
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.
Places Developer Guide
this document is for
extension and application developers who want to use the bookmarks and history apis in firefox 3.
...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.
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.
... add-ons can (and should) be identified with ids of the form
extensionname@organization.tld since firefox 1.5.
...using the
extensionname@organization.tld form is approximately one thousand times easier for everyone involved.
...if all else fails, using
extensionname@yourusername.addons.mozilla.org should be fine; no one will care.
nsIFeedResult
1.0 66 introduced gecko 1.8 inherits from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void register
extensionprefix(in astring anamespace, in astring aprefix); attributes attribute type description bozo boolean the feed processor sets the bozo bit when a feed triggers a fatal error during xml parsing.
...this value will be one of the following: atom, rss2, rss09, rss091, rss091userland, rss092, rss1, atom03, atomentry, rssitem methods register
extensionprefix() registers a prefix for a namespace used to access an
extension in the feed or entry.
... void register
extensionprefix( in astring anamespace, in astring aprefix ); parameters anamespace the namespace for the
extension.
... aprefix the prefix used to access the
extension.
nsIUpdateItem
toolkit/mozapps/
extensions/public/nsi
extensionmanager.idlscriptable describes an item managed by the
extension system, providing metadata describing the item.
... 1.0 66 introduced gecko 1.8 obsolete gecko 2.0 inherits from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) this interface is obsolete; instead of using the
extension manager, you should use the addon manager.
...internal code uses other constants in ns
extensionmanager.js.in.
... constant gecko version description 1.8 1.8.1 1.9 1.9.1 1.9.2 type_app 0x01 type_
extension 0x02 type_theme 0x04 type_locale 0x08 type_multi_xpi 0x20 type_addon type_
extension + type_theme + type_locale + type_plugin type_
extension + type_theme + type_locale type_any type_app + type_addon 0xff type_plugin 0x10 methods init() initializes the object.
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.
... so, in order to avoid unpredicted behaviors you will probably benefit from using a unique prefix for the ids of the xul elements of your
extension.
... for instance, you can use the name of your
extension, or an abbreviation of it.
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.
...n the tree to display the item at open (rw, attribute) whether or not this container is open children (attribute) an array of child items also conforming to this spec getproperties (function) a call from getrowproperties or getcellproperties for this item will be passed into this function command (function) this function will be called when the item is double-clicked for our example
extension, two different types of folder-tree-items will be defined.
...unfortunately, this rebuild will occur before an
extension's "load" event fires.
... thus,
extensions may need to do manual insertions when this load event fires, if they want to add items to the initial display.
customDBHeaders Preference
in addition to the preference outlined in setting up
extension development environment, you'll want to add the following preferences: // this allows you to add extra headers while composing messages user_pref("mail.compose.other.header", "x-superfluous,x-other,x-whatever"); // this enables the preservation of custom headers as incoming mail is processed user_pref( "mailnews.customdbheaders", "x-superfluous,x-other"); important: please pay careful attentio...
... building the
extension for this
extension, i used a directory tree exactly like this: superfluous/ chrome.manifest install.rdf makefile chrome/ content/ superfluous.js superfluous_overlay.xul here's the makefile: deps:= chrome/ \ chrome.manifest \ chrome/content/ \ ...
....xul chrome://superfluous/content/superfluous_overlay.xul install.rdf: <?xml version='1.0' encoding='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'> <em:id>superfluous@yoursite.com</em:id> <em:version>0.1.1</em:version> <em:type>2</em:type> <!-- 2 is type '
extension' --> <em:targetapplication> <description> <!-- this next line identifies tbird as target --> <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <em:minversion>2*</em:minversion> <em:maxversion>3.0.0.*</em:maxversion> </description> </em:targetapplication> <em:name>superfluous</em:name> <em:description>test superfluou...
...s
extension</em:description> <em:creator>garrett comeaux</em:creator> </description> </rdf> build process: [gcomeaux@kyle tbird-ext]$ cd superfluous/ [gcomeaux@kyle superfluous]$ make zip superfluous.xpi chrome/ chrome.manifest chrome/content/ chrome/content/superfluous.js chrome/content/superfluous_overlay.xul install.rdf adding: chrome/ (stored 0%) adding: chrome.manifest (deflated 44%) adding: chrome/content/ (stored 0%) adding: chrome/content/superfluous.js (deflated 57%) adding: chrome/content/superfluous_overlay.xul (deflated 44%) adding: install.rdf (deflated 50%) end result ultimately, you want to be able to compose a message like this: and see the superfluous column displayed in your inbox like this: thanks many thanks go out to the thunderbird developers fo...
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.
... alternatives spector.js is a web
extension that can provide these features with 3d contexts.
... more details about the web audio editor alternatives alternatives include audion and https://github.com/spite/webaudio
extension web
extensions.
... more details about the shader editor alternatives an alternative to this panel is this
extension: https://github.com/spite/shadereditor
extension, or spector.js also supports a shader editor that requires a library to use a shader reloader hook.
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.
... 9 introduction to dom inspector dom_inspector the dom inspector is a mozilla
extension that you can access from the tools > web development menu in seamonkey, or by selecting the dom inspector menu item from the tools menu in firefox and thunderbird, or by using ctrl/cmd+shift+i in either application.
...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.
... when selecting an
extension id in the storage tree of the storage inspector, a table lists the details of all the
extension storage present for the
extension.
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.
...
extension for html documents the document interface for html documents inherit from the htmldocument interface or, since html5, is extended for such documents: document.clear() in majority of modern browsers, including recent versions of firefox and internet explorer, this method does nothing.
... 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.
... living standard turn the htmldocument interface into a document
extension.
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.
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.
... navigator
extension the navigator.maxtouchpoints property is used to determine the maximum number of simultaneous touch points that are supported at any single point in time.
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 f...
WebGLRenderingContext.getParameter() - Web APIs
when using the webgl_compressed_texture_s3tc
extension: ext.compressed_rgb_s3tc_dxt1_ext ext.compressed_rgba_s3tc_dxt1_ext ext.compressed_rgba_s3tc_dxt3_ext ext.compressed_rgba_s3tc_dxt5_ext when using the webgl_compressed_texture_s3tc_srgb
extension: ext.compressed_srgb_s3tc_dxt1_ext ext.compressed_srgb_alpha_s3tc_dxt1_ext ext.compressed_srgb_alpha_s3tc_dxt3_ext ext.compressed_srgb_alpha_s...
...3tc_dxt5_ext when using the webgl_compressed_texture_etc
extension: ext.compressed_r11_eac ext.compressed_signed_r11_eac ext.compressed_rg11_eac ext.compressed_signed_rg11_eac ext.compressed_rgb8_etc2 ext.compressed_rgba8_etc2_eac ext.compressed_srgb8_etc2 ext.compressed_srgb8_alpha8_etc2_eac ext.compressed_rgb8_punchthrough_alpha1_etc2 ext.compressed_srgb8_punchthrough_alpha1_etc2 when using the webgl_compressed_texture_pvrtc
extension: ext.compressed_rgb_pvrtc_4bppv1_img ext.compressed_rgba_pvrtc_4bppv1_img ext.compressed_rgb_pvrtc_2bppv1_img ext.compressed_rgba_pvrtc_2bppv1_img when using the webgl_compressed_texture_etc1
extension: ext.compressed_rgb_etc1_webgl when u...
...sing the webgl_compressed_texture_atc
extension: ext.compressed_rgb_atc_webgl ext.compressed_rgba_atc_explicit_alpha_webgl ext.compressed_rgba_atc_interpolated_alpha_webgl when using the webgl_compressed_texture_astc
extension: ext.compressed_rgba_astc_4x4_khr ext.compressed_srgb8_alpha8_astc_4x4_khr ext.compressed_rgba_astc_5x4_khr ext.compressed_srgb8_alpha8_astc_5x4_khr ext.compressed_rgba_astc_5x5_khr ext.compressed_srgb8_alpha8_astc_5x5_khr ext.compressed_rgba_astc_6x5_khr ext.compressed_srgb8_alpha8_astc_6x5_khr ext.compressed_rgba_astc_6x6_khr ext.compressed_srgb8_alpha8_astc_6x6_khr ext.compressed_rgba_astc_8x5_khr ext.compressed_srgb8_alpha8_astc_8x5_khr ext.compressed_rgba_astc_8x6_khr ...
... 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.
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.
... var debuginfo = gl.get
extension('webgl_debug_renderer_info'); var vendor = gl.getparameter(debuginfo.unmasked_vendor_webgl); the webgl tutorial has more information, examples, and resources on how to get started with webgl.
... table of contents standard webgl 1 constants standard webgl 2 constants webgl
extension constants standard webgl 1 constants these constants are defined on the webglrenderingcontext interface.
... 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.
<input>: The Input (Form Input) element - HTML: Hypertext Markup Language
webkitdirectory a boolean indicating whether or not to only allow the user to choose a directory (or directories, if multiple is also present) autocorrect a safari
extension, the autocorrect attribute is a string which indicates whether or not to activate automatic correction while the user is editing this field.
... incremental the boolean attribute incremental is a webkit and blink
extension (so supported by safari, opera, chrome, etc.) which, if present, tells the user agent to process the input as a live search.
... mozactionhint a mozilla
extension, supported by firefox for android, which provides a hint as to what sort of action will be taken if the user presses the enter or return key while editing the field.
...the diversity of people using the web—and by
extension your web site—practically guarantees that some of your site's visitors will have some variation in thought processes and/or circumstances that leads them to interpret your forms very differently from you without clear and properly-presented labels.
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.
... important: browsers use the mime type, not the file
extension, to determine how to process a url, so it's important that web servers send the correct mime type in the response's content-type header.
...only a few image types are used commonly enough to be considered safe for use on web pages: abbreviation file format mime type file
extension(s) browser compatibility apng animated portable network graphics image/apng .apng chrome, edge, firefox, opera, safari bmp bitmap file image/bmp .bmp chrome, edge, firefox, internet explorer, opera, safari gif graphics interchange format image/gif .gif chrome, edge, firefox, internet explorer, opera, safari ico micr...
...(for example, safari will look at the file
extension in the url if the sent mime type is unsuitable.) there are security concerns as some mime types represent executable content.
510 Not Extended - HTTP
the hypertext transfer protocol (http) 510 not extended response status code is sent in the context of the http
extension framework, defined in rfc 2774.
... in that specification a client may send a request that contains an
extension declaration, that describes the
extension to be used.
... 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.
... status 510 not extended specifications specification title rfc 2774, section 7: 510 not extended an http
extension framework ...
Intl.Locale.prototype.numberingSystem - JavaScript
nu is considered a locale string "
extension subtag".
...to set the numberingsystem value via the string argument to the locale constructor, first add the -u
extension key.
... next, add the -nu
extension key to indicate that you are adding a value for numberingsystem.
... let numberingsystemviastr = new intl.locale("fr-latn-fr-u-nu-mong"); console.log(numberingsystemstr.numberingsystem); // prints "mong" setting the numberingsystem value via the configuration object argument the intl.locale constructor has an optional configuration object argument, which can be used to pass
extension types.
eval() - JavaScript
if you run eval() with a string that could be affected by a malicious party, you may end up running malicious code on the user's machine with the permissions of your webpage /
extension.
...see also downloading json and javascript in
extensions.
... pass data instead of code for example, an
extension designed to scrape contents of web-pages could have the scraping rules defined in xpath instead of javascript code.
...this advice applies mainly to
extensions and xul applications, which can use components.utils.evalinsandbox for this.
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.
Introduction to using XPath in JavaScript - XPath
this document describes the interface for using xpath in javascript internally, in
extensions, and from websites.
... evaluating against an xml document within an
extension the following uses an xml document located at chrome://your
extension/content/peopledb.xml as an example.
...rst="george" last="bush" /> <address street="1600 pennsylvania avenue" city="washington" country="usa"/> <phonenumber>202-456-1111</phonenumber> </person> <person> <name first="tony" last="blair" /> <address street="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.
... var req = new xmlhttprequest(); req.open("get", "chrome://your
extension/content/peopledb.xml", false); req.send(null); var xmldoc = req.responsexml; var nsresolver = xmldoc.creatensresolver( xmldoc.ownerdocument == null ?
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.
... example: function onprefchange(prefname) { console.log("the preference " + prefname + " value has changed!"); } require("sdk/simple-prefs").on("somepreference", onprefchange); require("sdk/simple-prefs").on("someotherpreference", onprefchange); // `""` listens to all changes in the
extension's branch require("sdk/simple-prefs").on("", onprefchange); parameters prefname : string the name of the preference to watch for changes.
cfx - Archive of obsolete content
--templatedir=templatedir the cfx run command constructs the add-on using a
extension template which you can find under the sdk root, in app-
extension.
...if your
extension works unpacked, but breaks after you cfx xpi it, you should try using this option.
... --templatedir=templatedir the cfx xpi command constructs the add-on using a
extension template which you can find under the sdk root, in app-
extension.
jpm - Archive of obsolete content
jpm post accepts the following options: --post-url url the url to post the
extension to after creating an xpi.
... jpm watchpost accepts the following options: --post-url url the url to post the
extension to after creating an xpi.
...an alternative development model is to use the
extension auto-installer add-on: this listens for new xpi files on a specified port and installs them automatically.
Customizing the download progress bar - Archive of obsolete content
in your jar.mn file, add the following (replacing "my
extension" with the name of your
extension's chrome package): % overlay chrome://mozapps/content/downloads/downloads.xul chrome://my
extension/content/downloads-overlay.xul in downloads-overlay.xul, reference the new stylesheet: <?xml version="1.0"?> <?xml-stylesheet href="chrome://my
extension/skin/my
extension.css" type="text/css"?> <overlay id="mydownloadoverlay" xmlns="http://www.mozilla.org/keymaster/gat...re.is.only.xul"> </overlay> in jar.mn, make sure that there is an asterisk in front of the entry for my
extension.css so that it w...
... the my
extension.css file will look something like this: richlistitem progressmeter { %ifdef xp_win min-height: 17px !important; %else %ifdef xp_macosx -moz-appearance: none !important; background-image: url(chrome://my
extension/skin/progress_bg_osx.png) !important; %endif %endif } richlistitem .progress-bar { %ifdef xp_win -moz-appearance: none !important; background-image: url(chrome://my
extension/skin/progress_fd_win.png) !important; %else %ifdef xp_macosx background-image: url(chrome://my
extension/skin/progress_fd_osx.gif) !important; %endif %endif } note: this file only supports windows and mac, but it would be straightforward to add support for linux.
...in your overlay file, add a javascript file between the <overlay> and </overlay> tags: <script type="application/javascript" src="chrome://my
extension/content/downloads-overlay.js" /> the javascript file will look something like this: var mydownloadmanager = { defaultcreatedownloaditem : null, init : function fdm_init() { mydownloadmanager.defaultcreatedownloaditem = window.createdownloaditem; window.createdownloaditem = function(aattrs) { var dl = mydownloadmanager.defaultcreatedownloaditem(aattrs); if (dl) { ...
Progress Listeners - Archive of obsolete content
progress listeners progress listeners allow
extensions to be notified of events associated with documents loading in the browser and with tab switching events.
... var my
extension = { oldurl: null, init: function() { gbrowser.addprogresslistener(this); }, uninit: function() { gbrowser.removeprogresslistener(this); }, processnewurl: function(auri) { if (auri.spec == this.oldurl) return; // now we know the url is new...
...eqi(["nsiwebprogresslistener", "nsisupportsweakreference"]), onlocationchange: function(aprogress, arequest, auri) { this.processnewurl(auri); }, onstatechange: function() {}, onprogresschange: function() {}, onstatuschange: function() {}, onsecuritychange: function() {} }; window.addeventlistener("load", function() { my
extension.init() }, false); window.addeventlistener("unload", function() { my
extension.uninit() }, false); note: if you use the same listener for more than one tab/window, use awebprogress.domwindow in the callback methods to obtain the tab/window which triggers the state change or event.
Developing add-ons - Archive of obsolete content
there are three primary types of add-on:
extensions, plugins, and themes.
...
extensions
extensions add new functionality to mozilla applications such as firefox, seamonkey and thunderbird.
... jetpack browser
extension development for everyone.
Appendix D: Loading Scripts - Archive of obsolete content
<script> tags xul script tags are traditionally the primary means of loading scripts for
extension developers.
... advantages namespacing: since scripts executed via evalinsandbox run in a defined namespace, global namespace contamination and the resultant
extension compatibility issues are not usually a problem.
... advantages namespacing: global namespace contamination and the resultant
extension compatibility issues can often be avoided by loading sub-scripts into private namespaces.
Connecting to Remote Content - Archive of obsolete content
luckily, firefox now provides a few alternatives for
extension developers.
...we recommend you to use
extensions like tamper data.
...you can discover some interesting things about firefox like this, such as the automatic update urls for
extensions, and the behavior of web applications such as gmail.
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.
... document.body.appendchild(parsehtml(document, xhr.responsetext, true, xhr.channel.uri)); see also displaying web content in an
extension without security issues how to create a dom tree node.textcontent node.appendchild() element.setattribute() document.createelement() document.createtextnode() original document information author(s): kris maglione last updated date: 2011-08-08 ...
Firefox addons developer guide - Archive of obsolete content
the stuff about installing the dom inspector (https://developer.mozilla.org/en/firefox_addons_developer_guide/let%27s_build_a_firefox_
extension#install_the_dom_inspector) is not accurate for firefox 3 or later, since it's no longer included in the firefox installer and must be downloaded from amo.
... for example, here: https://developer.mozilla.org/en/firefox_addons_developer_guide/let's_build_a_firefox_
extension#init_method the text of the paragraph should begin "the <code>init()</code> method is as shown...".
...there already is a tutorial for beginners: building an
extension.
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.
Monitoring downloads - Archive of obsolete content
the result is a window you can open by choosing "download log" in the tools menu, which lists all downloads that have been started since you installed the
extension.
... setting up when the
extension loads, it will do some housekeeping chores.
... exercises for the reader there are some obvious things that could be done to improve this
extension.
Table Layout Regression Tests - Archive of obsolete content
to build the layoutdebugger itself, build either all
extensions or include layoutdebug in your .mozconfig file.
... for example ac_add_options --enable-
extensions=all.
...their name is generated by replacing the old
extension .html or .xml with .rgd.
URIs and URLs - Archive of obsolete content
the filename consists of filebasename and file
extension.
... if the spec is completly broken down, it consists of: scheme, username, password, host, port, directory, filebasename, file
extension, param, query and ref.
... together these segments form the url spec with the following syntax: scheme://username:password@host:port/directory/filebasename.file
extension;param?query#ref for performance reasons the complete spec is stored in escaped form in the nsstandardurl object with pointers (position and length) to each basic segment and for the more global segments like path and prehost for example.
Venkman Introduction - Archive of obsolete content
file names are displayed after a color coded, single letter icon representing the file
extension.
... debugging
extensions although at first glance it might seem that venkman cannot debug
extensions, doing so is in fact fully supported; it's just disabled by default.
... to debug your
extension with venkman (xul files and their attached js files), you'll have to load browser and
extension files into venkman by unchecking debug > exclude browser files.
Venkman - Archive of obsolete content
venkman has been provided as part of the mozilla install distribution since october 2001, as well as an
extension package in xpi format.
...also available from firefox add-ons as an
extension.
... nvu and kompozer javascript debugger
extension version 0.9.84 is available from nvu's downloads page.
Toolbars - Archive of obsolete content
custom toolbar button another example of how to create a toolbar button, complete with a sample
extension you can download and try.
... community view mozilla
extension development forums...
... tools dom inspector edit the live dom (firefox and thunderbird) mozilla labs add-on builder
extension developer's
extension a suite of development tools chrome list view files in chrome:// (firefox, thunderbird)
extension wizard a web-based
extension skeleton generator (firefox and thunderbird) ...
Localization - Archive of obsolete content
you would normally have one dtd file (with an
extension .dtd) per xul file.
...typically, you will have one dtd file for each xul file, usually with the same filename except with a .dtd
extension.
... « previousnext » see also how to localize html pages, xul files, and js/jsm files from bootstrapped add-ons: bootstrapped
extensions :: localization (l10n) ...
Property Files - Archive of obsolete content
you will find property files alongside the dtd files with a .properties
extension.
...see localizing
extension descriptions for more details.
... « previousnext » see also how to localize html pages, xul files, and js/jsm files from bootstrapped add-ons: bootstrapped
extensions :: localization (l10n) ...
XUL accessibility tool - Archive of obsolete content
general information the xul accessibility tool is a firefox
extension designed by aaron andersen of webaim as part of a mozilla foundation accessibility minigrant in the spring of 2007.
...future versions of the
extension will be available from addons.mozilla.org.
... 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.
Building XULRunner with Python - Archive of obsolete content
this page describes how to build and use xulrunner with the python
extension on windows and while generally useful it is written based on experiences with accessibility projects.
...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 ...
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).
Using LDAP XPCOM with XULRunner - Archive of obsolete content
the solution is to use the bsmedberg stub, described in using dependent libraries in
extension components: the component library is just a loader of the real library and all its dependencies, so as all the needed libraries are loaded.
... 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.
calIFileType - Archive of obsolete content
defined in calendar/base/public/caliimportexport.idl interface code [scriptable, uuid(efef8333-e995-4f45-bdf7-bfcabbd9793e)] interface califiletype : nsisupports { readonly attribute astring default
extension; readonly attribute astring
extensionfilter; readonly attribute astring description; }; attributes default
extension the default
extension that should be associated with files of this type.
...
extensionfilter the
extension filter to use in the filepicker's filter list.
... separate multiple
extensions with semicolon and space.
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.
... also invites people to help
extension developers test for compatibility (link to a bunch of
extension compatability bugs) discussions reining in the release process a discussion of what can be done to speed up the release process.
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.
... xembed
extension for mozilla plugins recent versions of mozilla on *nix-based systems include an
extension for writing plugins that use xembed instead of using the old xt-based main loop that most plugins have been using since the netscape 3.x days.
Proposal - Archive of obsolete content
spec exists itunes rss itunes
extension modules used for ipradio/podcasting.
... spec exists media rss rss
extension module used for iptv and ipradio/podcasting.
... spec exists newsgator feed
extension created to make rss feeds work better with newsgator software.
Developing Mozilla XForms - Archive of obsolete content
debugging always start with a debug build of the xforms and the schema-validation
extensions.
...then start firefox out of the build directory: cd obj-*/dist/firefox ./firefox -no-remote -jsconsole -p yourprofilename the xforms
extension that was built together with firefox should be already installed.
...schema validation problems the schema-validation
extension contains a logging facility that can show some internals on the schema processing.
Implementation Status - Archive of obsolete content
limitations and
extensions the
extension has some limitations and custom
extension to the xforms 1.1 specification.
... 292333; 3.4
extension module unsupported 300760; 3.5 mustunderstand module unsupported 300757; 4.
...meter 419190; 7.10.2 current() supported 7.10.3 id() unsupported 7.10.4 context() unsupported 7.11.1 choose() unsupported 7.11.2 event() supported 7.12
extension functions unsupported not a compliance requirement for an xforms processor 8.
React resources - Learn web development
react devtools is available in a number of forms: a chrome browser
extension.
... a firefox browser
extension.
... a chromium edge browser
extension (available soon).
Handling common accessibility problems - Learn web development
chrome: install the web developer toolbar
extension, then restart the browser.
...its most immediately useful form is probably the browser
extensions: axe for chrome axe for firefox these add an accessibility tab to the browser developer tools.
...this is not always the case (chromevox is a browser
extension), but usually.
Gecko info for Windows accessibility vendors
to help web developers in that regard, there is the wonderful memory leak monitor, a firefox 1.5+
extension from david baron, which warns chrome and
extension developers about one particular type of memory leak.
...this typically happens for things like observers, timer callbacks, and (in firefox 1.5 and earlier) event listeners, and is one of the most common causes of leaks in chrome and
extension code.
...this
extension is useful if you need to work on a character by character basis, whereas iaccessible provides only node by node support.
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.
...you should start with the existing code if you want to implement that in your
extension.
Creating a spell check dictionary add-on
such a dictionary consists of two files, one with a .dic and one with an .aff file
extension.
... packaging a firefox add-on is a zip file renamed to use an .xpi file
extension instead of the normal .zip file
extension.
... once you have added these files to your zip file and renamed the file to have the .xpi
extension, you can install your add-on in firefox and test it.
Simple Instantbird build
windows build prerequisites gnu/linux build prerequisites mac os x build prerequisites tip: after completing setup for your os, and before you get the source, you can opt to add the progress
extension to your mercurial.ini (for windows) or .hgrc (for *nix / mac) file.
...see: configure mercurial .hgrc file for progress
extension.
... 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.
The Firefox codebase: CSS Guidelines
in addition to this, firefox supports a variety of web
extension themes that can be installed from amo.
... for testing purposes, here is an example of a web
extension theme.
... never write css specially for the built-in light/dark theme in compacttheme.css unless that css isn't supposed to affect web
extension themes.
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.
Using the Browser API
the html browser api is an
extension of the html <iframe> element that allows web apps to implement browsers or browser-like applications.
... 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.
Interfacing with the Add-on Repository
the add-on repository javascript code module makes it easy for your
extension to interface with the amo 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.reco...
...mmended.url", "https://services.addons.mozilla.org/%locale%/%app%/api/%api_version%/list/recommended/all/%max_results%/%os%/%version%?src=firefox"); prefsservice.savepreffile(null); } this fetches 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.
Application Translation with Mercurial
the firefox
extension scrapbook is used in this guide.
... 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.
...this guide achieves this with the firefox
extension scrapbook.
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 ../..
Leak Monitor
leak monitor is a firefox
extension by l.
... david baron that helps
extension and chrome developers to find memory leaks.
... obtain the
extension on amo (addons.mozilla.org) view more information on leak monitor on david baron's page ...
NSS_3.12.2_release_notes.html
bug 432260: [[@ pkix_pl_httpdefaultclient_hdrcheckcomplete - pkix_pl_memcpy] crashes when there is no content-length header in the http response bug 436599: pkix: aia
extension is not used in some bridge ca / known certs configuration bug 437804: certutil -r for cert renewal should derive the subject from the cert if none is specified.
... bug 459231: memory leak in cert fetching - aia
extension.
... bug 459248: support intel aes
extensions.
NSS 3.22 release notes
in ssl.h ssl_peersignedcerttimestamps - get signed_certificate_timestamp tls
extension data ssl_setsignedcerttimestamps - set signed_certificate_timestamp tls
extension data new types in secoidt.h the following are added to secoidtag: sec_oid_aes_128_gcm sec_oid_aes_192_gcm sec_oid_aes_256_gcm sec_oid_idea_cbc sec_oid_rc2_40_cbc sec_oid_des_40_cbc sec_oid_rc4_40 sec_oid_rc4_56 sec_oid_null_cipher sec_oid_hma...
... sec_oid_tls_ecdhe_rsa sec_oid_tls_ecdh_ecdsa sec_oid_tls_ecdh_rsa sec_oid_tls_ecdh_anon sec_oid_tls_rsa_export sec_oid_tls_dhe_rsa_export sec_oid_tls_dhe_dss_export sec_oid_tls_dh_rsa_export sec_oid_tls_dh_dss_export sec_oid_tls_dh_anon_export sec_oid_apply_ssl_policy in sslt.h ssl_signed_cert_timestamp_xtn is added to ssl
extensiontype.
...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 tools : signtool
synopsis signtool [-k keyname] -h -h -l -l -m -v -w -g nickname -s size -b basename [[-c compression level] ] [[-d cert-dir] ] [[-i installer script] ] [[-m metafile] ] [[-x name] ] [[-f filename] ] [[-t|--token tokenname] ] [[-e
extension] ] [[-o] ] [[-z] ] [[-x] ] [[--outfile] ] [[--verbose value] ] [[--norecurse] ] [[--leavearc] ] [[-j directory] ] [[-z jarfile] ] [[-o] ] [[-p password] ] [directory-tree] [archive] description the signing tool, signtool, creates digital signatures and uses a java archive (jar) file to associate the signatures with files in a directory.
... -e
extension tells signtool to sign only files with the given
extension; for example, use -e".class" to sign only java class files.
...
extension same as -e option.
Web Replay
time travel features this section describes
extensions to the developer tools that use time travel to help debug a recording/replaying tab.
... if we record and later replay the order in which threads acquire locks (and, by
extension, release locks and use condvars) then accesses on lock-protected memory will occur in the same order.
... 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
authors the apng specification was authored by: stuart parmenter <pavlov@pavlov.net> vladimir vukicevic <vladimir@pobox.com> andrew smith <asmith15@littlesvr.ca> overview apng is an
extension of the portable network graphics (png) format, adding support for animated images.
... 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.
...as well you might find helpful the about:accessibilityenabled firefox
extension.
XForms Accessibility
for firefox, you may directly download the nighly "trunk" build of firefox and install the xforms
extension which lives in 'xpi' directory of the build.
...you will find trunk builds of firefox at ftp.mozilla.org, trunk builds of xforms
extension (windows) at ftp.mozilla.org or trunk builds of xforms
extension (linux) ftp.mozilla.org.
... 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.
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.
... fuel is about making it easier for
extension developers to be productive, by minimizing some of the xpcom formality and adding some "modern" javascript ideas.
... objects extiapplication objects extiapplication exticonsole extieventitem extieventlistener extievents exti
extension 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.
... smile is about making it easier for
extension developers to be productive, by minimizing some of the xpcom formality and adding some "modern" javascript ideas.
... objects extiapplication objects exticonsole extieventitem extieventlistener extievents exti
extension 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.
STEEL
consider using the functions found in appconstants.jsm or services.jsm instead steel is the scriptable thunderbird easy
extension library.
... it is a fuel-like set of interfaces to facilitate thunderbird
extension development.
... objects extiapplication objects extiapplication exticonsole extieventitem extieventlistener extievents exti
extension 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.
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/.
XPCOM glue
extension or xulrunner application components, should use the dependent glue.
... internal linkage will be unavailable to
extension authors in xulrunner 1.9 (firefox 3) because the nonfrozen symbols will not be exported from libxul.
...
extension and application authors currently using internal linkage should read the guide on migrating from internal linkage to frozen linkage.
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.
... only unload modules you include as part of your
extension.
nsIExternalHelperAppService
to access this service, use: var externalhelperappservice = components.classes["@mozilla.org/uriloader/external-helper-app-service;1"] .getservice(components.interfaces.nsiexternalhelperappservice); method overview boolean applydecodingfor
extension(in autf8string a
extension, in acstring aencodingtype); nsistreamlistener docontent(in acstring amimecontenttype, in nsirequest arequest, in nsiinterfacerequestor awindowcontext, in boolean aforcesave); methods applydecodingfor
extension() determines whether or not data whose filename has the specified
extension should be decoded from the specified encoding type before being saved or...
...boolean applydecodingfor
extension( in autf8string a
extension, in acstring aencodingtype ); parameters a
extension the filename
extension to check.
... return value true if data from urls with the specified
extension and encoding should be decoded prior to saving the file or delivering it to a helper application; otherwise false.
nsILocalFileMac
obsolete since gecko 1.9.2 boolean ispackage(); void launchwithdoc(in nsilocalfile adoctoload, in boolean alaunchinbackground); void opendocwithapp(in nsilocalfile aapptoopenwith, in boolean alaunchinbackground); void setfiletypeandcreatorfrom
extension(in string a
extension); obsolete since gecko 1.9.2 void setfiletypeandcreatorfrommimetype(in string amimetype); obsolete since gecko 1.9.2 attributes attribute type description bundledisplayname astring returns the display name of the application bundle (usually the human readable name of the application) read only.
... setfiletypeandcreatorfrom
extension() obsolete since gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) sets the file type and creator code from a file
extension internet config is used to determine the mapping.
... void setfiletypeandcreatorfrom
extension( in string a
extension ); parameters a
extension setfiletypeandcreatorfrommimetype() obsolete since gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) sets the file type and creator code from a mime type.
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 ...
nsIPluginHost
void ispluginenabledfor
extension(in string a
extension, in constcharstarref amimetype); native code only!
... nsistreamlistener instantiatepluginforchannel( in nsichannel achannel, in nsiplugininstanceowner aowner ); parameters achannel aowner return value native code only!ispluginenabledfor
extension void ispluginenabledfor
extension( in string a
extension, in constcharstarref amimetype ); parameters a
extension amimetype native code only!ispluginenabledfortype void ispluginenabledfortype( in string amimetype ); parameters amimetype native code only!loadplugins void loadplugins(); parameters none.
... = 0; i < plugintags.length; ++i) { let plugintag = plugintags[i]; let mimetypes = plugintag.getmimetypes(); console.warn('plugintag:', plugintag.name, 'mimetypes:', mimetypes); // go through all the mime types and get the handler service for (let j = 0; j < mimetypes.length; ++j) { let type = mimetypes[j]; let wrappedhandlerinfo = mimeservice.getfromtypeand
extension(type, null); console.log('handler info for type', type, wrappedhandlerinfo); } } resultingagentstring ...
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'.
nsIURL
inherits from: nsiuri last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) http://host/directory/filebasename.file
extension?query http://host/directory/filebasename.file
extension#ref http://host/directory/filebasename.file
extension;param \ \ / \ ----------------------- \ | / \ filename / ---------------------------- | filepath you can get a nsiurl from an nsiuri, using the queryinterface() method: var myuri = components.c...
... file
extension autf8string file
extension portion of a filename in a url.
... if a file
extension does not exist, the empty string is returned.
nsIURLParser
cko 1.7 method overview void parseauthority(in string authority, in long authoritylen, out unsigned long usernamepos, out long usernamelen, out unsigned long passwordpos, out long passwordlen, out unsigned long hostnamepos, out long hostnamelen, out long port); void parsefilename(in string filename, in long filenamelen, out unsigned long basenamepos, out long basenamelen, out unsigned long
extensionpos, out long
extensionlen); void parsefilepath(in string filepath, in long filepathlen, out unsigned long directorypos, out long directorylen, out unsigned long basenamepos, out long basenamelen, out unsigned long
extensionpos, out long
extensionlen); void parsepath(in string path, in long pathlen, out unsigned long filepathpos, out long filepathlen, out unsigned long parampos, out long param...
... in string authority, in long authoritylen, out unsigned long usernamepos, out long usernamelen, out unsigned long passwordpos, out long passwordlen, out unsigned long hostnamepos, out long hostnamelen, out long port ); parameters authority authoritylen usernamepos usernamelen passwordpos passwordlen hostnamepos hostnamelen port parsefilename() filename = <basename>.<
extension> void parsefilename( in string filename, in long filenamelen, out unsigned long basenamepos, out long basenamelen, out unsigned long
extensionpos, out long
extensionlen ); parameters filename filenamelen basenamepos basenamelen
extensionpos
extensionlen parsefilepath() breaks the file path string up into: the directory portion, file base name, and file
extension.
... filepath = <directory><basename>.<
extension> void parsefilepath( in string filepath, in long filepathlen, out unsigned long directorypos, out long directorylen, out unsigned long basenamepos, out long basenamelen, out unsigned long
extensionpos, out long
extensionlen ); parameters filepath filepathlen directorypos directorylen basenamepos basenamelen
extensionpos
extensionlen parsepath() breaks the path string up into its 4 major components: a file path, a param string, a query string, and a reference string.
nsIZipReader
xpi files are zip files, just firefox needs the
extension to be xpi.
... 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(); ...
XPCOM Interface Reference
component; nsiprefbranch
extensionmanager (toolkit)iaccessible2iaccessibleactioniaccessibleapplicationiaccessiblecomponentiaccessibleeditabletextiaccessiblehyperlinkiaccessiblehypertextiaccessibleimageiaccessiblerelationiaccessibletableiaccessibletable2iaccessibletablecelliaccessibletextiaccessiblevalueidispatchijsdebuggeramiinstallcallbackamiinstalltriggeramiwebinstallinfoamiwebinstalllisteneramiwebinstallpromptamiwebinstallerimgicacheimgicontainerimgicontainerobserverimgidecoderimgidecoderobserverimgiencoderimgiloaderimgirequestinidomutilsjsdistackframemoziasyncfaviconsmoziasynchistorymozicoloranalyzermozijssubscriptloadermozipersonaldictionarymoziplaceinfomoziplacesautocompletemoziregistrymozirepresentativecolo...
...idownloadernsidragdrophandlernsidragservicensidragsessionnsidroppedlinkhandlernsidroppedlinkitemnsidynamiccontainernsieditornsieditorboxobjectnsieditordocshellnsieditorimesupportnsieditorloggingnsieditormailsupportnsieditorobservernsieditorspellchecknsieffectivetldservicensienumeratornsienvironmentnsierrorservicensieventlistenerinfonsieventlistenerservicensieventsourcensieventtargetnsiexceptionnsi
extensionmanagernsiexternalhelperappservicensiexternalprotocolservicensiexternalurlhandlerservicensiftpchannelnsiftpeventsinknsifactorynsifavicondatacallbacknsifaviconservicensifeednsifeedcontainernsifeedelementbasensifeedentrynsifeedgeneratornsifeedpersonnsifeedprocessornsifeedprogresslistenernsifeedresultnsifeedresultlistenernsifeedtextconstructnsifilensifileinputstreamnsifileoutputstreamnsifilepickernsi...
...rynsimemorymultireporternsimemorymultireportercallbacknsimemoryreporternsimemoryreportermanagernsimenuboxobjectnsimessagebroadcasternsimessagelistenernsimessagelistenermanagernsimessagesendernsimessagewakeupservicensimessengernsimicrosummarynsimicrosummarygeneratornsimicrosummaryobservernsimicrosummaryservicensimicrosummarysetnsimimeconverternsimimeheadersnsimodulensimsgaccountnsimsgaccountmanager
extensionnsimsgcompfieldsnsimsgcustomcolumnhandlernsimsgdbhdrnsimsgdbviewnsimsgdbviewcommandupdaternsimsgdatabasensimsgfilternsimsgfiltercustomactionnsimsgfilterlistnsimsgfoldernsimsgheaderparsernsimsgidentitynsimsgincomingservernsimsgmessageservicensimsgprotocolinfonsimsgruleactionnsimsgsearchcustomtermnsimsgsearchnotifynsimsgsearchscopetermnsimsgsearchsessionnsimsgsearchtermnsimsgsearchvaluensimsgsendlat...
Setting HTTP request headers
----------------------> createinstance"); return new myhttplistener(); } }, canunload: function(compmgr) { return true; } }; function nsgetmodule(compmgr, filespec) { return mymodule; } privacy and security good practice a use case for setting specific a http request header is to have a specific web site be able to check if a specific plugin / addon /
extension is installed.
... the good practice is not to have this specific http header (for example "x-site.net-
extension") sent all the time but only when doing requests with this specific web sites.
... 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).
Working with Multiple Versions of Interfaces
in the
extension that prompted this note, i needed to obtain the hwnd of the document (yes its on windows) in order to identify each particular
extension instance.
...the problem arises when one tries to run an
extension built with the latest sdk in an older version of firefox, say firefox 2.
...getwindowhandle is the tenth method declared in the nsiaccessibledocument.h that firefox 2 was built with, but actually the eighth method in the sdk that i used to build my
extension (and hence xpcom component).
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.
... saxon-b the xsl results
extension uses the new incarnation of liveconnect (handled by java 1.6v12+ instead of mozilla-specific code) to connect with the java-based saxon-b library, and adds support for having xslt performed automatically when visiting a page with the appropriate xslt processing instruction (and which isn't processed by firefox's own xslt 1.0 processor).
... saxon-b the
extension demonstrates how one can use liveconnect code to communicate with the saxon-b library, but one might find the javascript code module approach used inside the
extension xquseme as a more reusable approach.
FAQ
the old contents of this faq page were duplicated in the setting up
extension development environment article and the building a thunderbird
extension article.
... (duplicate content has been removed from this page.) other resources can be found on the thunderbird
extension development portal page.
... mozillazine's getting started tutorial might provide some useful general pointers regarding developing mozilla
extensions.
js-ctypes
js-ctypes allows application and
extension code to call back and forth to native code written in c.
... note: js-ctypes is only available from chrome code; that is, ctypes is not available to websites, only application and
extension code.
... examples add to iphoto a firefox
extension that uses js-ctypes to call carbon and core foundation framework routines on mac os x to implement an "add image to iphoto" feature in firefox.
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.
... ressourcen-adresse: moz-
extension://c7f0f003-4fcf-49fd-8ec0-c49361266581/background.js source-map-adresse: background.js.map the only workaround is to manually change the map url to a public one (http://localhost:1234/file.map.js) and start a local webserver at this port.
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.
Applying styles and colors - Web APIs
more exactly, the miter limit is the maximum allowed ratio of the
extension length (in the html canvas, it is measured between the outside corner of the joined edges of the line and the common endpoint of connecting segments specified in the path) to half the line width.
... if you specify a miterlimit value below 4.2 in this demo, none of the visible corners will join with a miter
extension, but only with a small bevel near the blue lines; with a miterlimit above 10, most corners in this demo should join with a miter far away from the blue lines, and whose height is decreasing between corners from left to right because they connect with growing angles; with intermediate values, the corners on the left side will only join with a bevel near the blue lines, and the corners on the right...
... side with a miter
extension (also with a decreasing height).
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 ...
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.getclient
extensionresults()) 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.
... }, user: { id: new uint8array(16) /* from the 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.getclient
extensionresults(); // 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.
PublicKeyCredential - Web APIs
it inherits from credential, and was created by the web authentication api
extension to the credential management api.
... methods publickeycredential.getclient
extensionresults()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.getclient
extensionresults(); }).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().
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); })...
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 rtcrtpheader
extensioncapability dictionary.
... each object contains a single domstring, uri, specifying the uri of the header
extension, as described in rfc 5285.
SVGTests - Web APIs
svgtests.required
extensions read only an svgstringlist corresponding to the required
extensions attribute of the given element.
... methods svgtests.has
extension() read only returns true if the browser supports the given
extension, specified by a uri.
... candidate recommendation removed requiredfeatures property and has
extension() method.
WebGLRenderingContext.getFramebufferAttachmentParameter() - Web APIs
_attachment2 gl.color_attachment3 gl.color_attachment4 gl.color_attachment5 gl.color_attachment6 gl.color_attachment7 gl.color_attachment8 gl.color_attachment9 gl.color_attachment10 gl.color_attachment11 gl.color_attachment12 gl.color_attachment13 gl.color_attachment14 gl.color_attachment15 when using the webgl_draw_buffers
extension: ext.color_attachment0_webgl (same as gl.color_attachment0) ext.color_attachment1_webgl ext.color_attachment2_webgl ext.color_attachment3_webgl ext.color_attachment4_webgl ext.color_attachment5_webgl ext.color_attachment6_webgl ext.color_attachment7_webgl ext.color_attachment8_webgl ext.color_attachment9_webgl ext.color_attachment10_webgl ...
... when using the ext_srgb
extension: ext.framebuffer_attachment_color_encoding_ext: the framebuffer color encoding.
..._attachment_alpha_size gl.framebuffer_attachment_blue_size gl.framebuffer_attachment_color_encoding gl.framebuffer_attachment_component_type gl.framebuffer_attachment_depth_size gl.framebuffer_attachment_green_size gl.framebuffer_attachment_red_size gl.framebuffer_attachment_stencil_size gl.framebuffer_attachment_texture_layer when using the ovr_multiview2
extension: ext.framebuffer_attachment_texture_num_views_ovr: the number of views of the framebuffer object attachment.
WebGLRenderingContext.renderbufferStorage() - Web APIs
gl.depth_stencil when using a webgl 2 context, the following values are available additionally: gl.r8 gl.r8ui gl.r8i gl.r16ui gl.r16i gl.r32ui gl.r32i gl.rg8 gl.rg8ui gl.rg8i gl.rg16ui gl.rg16i gl.rg32ui gl.rg32i gl.rgb8 gl.rgba8 gl.srgb8_alpha8 (also available as an
extension for webgl 1, see below) gl.rgb10_a2 gl.rgba8ui gl.rgba8i gl.rgb10_a2ui gl.rgba16ui gl.rgba16i gl.rgba32i gl.rgba32ui gl.depth_component24 gl.depth_component32f gl.depth24_stencil8 gl.depth32f_stencil8 when using the webgl_color_buffer_float
extension: ext.rgba32f_ext: rgba 32-bit floating-point type.
... when using the ext_srgb
extension: ext.srgb8_alpha8_ext: 8-bit srgb and alpha.
... when using a webgl 2 context and the ext_color_buffer_float
extension: gl.r16f gl.rg16f gl.rgba16f gl.r32f gl.rg32f gl.rgba32f gl.r11f_g11f_b10f width a glsizei specifying the width of the renderbuffer in pixels.
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_textur...
...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.
Viewpoints and viewers: Simulating cameras in WebXR - Web APIs
virtual cameras in webgl (and by
extension, in webxr), there is no camera object we can move and rotate, so we have to find a way to fake these movements.
... by
extension, if you and another person are standing in an empty field of solid stone with nothing else visible as far as the eye can see, if you move three meters toward the other person, the result looks the same as if the other person had moved three meters toward you.
...by comparing the two views, it's possible to recognize the depth of objects and, by
extension, the distance between the viewer and objects which are seen.
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.
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.
... (the other properties have their expected values.) it is not possible for content or web context scripts to specify a targetorigin to communicate directly with an
extension (either the background script or a content script).
... web or content scripts can use window.postmessage with a targetorigin of "*" to broadcast to every listener, but this is discouraged, since an
extension cannot be certain the origin of such messages, and other listeners (including those you do not control) can listen in.
Accessibility: What users can do to browse more safely - Accessibility
to reverse it, you will have to change the value back to "normal" use browser
extensions gif blocker for chrome, gif blocker is an
extension available at the web store.
... gif scrubber gif scrubber is a chrome
extension that allows you to control gifs like a video player.
... there is a github repository for it at https://github.com/0ui/gif-scrubber beeline reader beeline reader has a browser
extension that allows you to set up for grayscale and dyslexi font, among other things take advantage operating system accessibility features most operating systems such as windows 10, have accessibility options that are surprisingly powerful.
Accessibility Information for Web Authors - Accessibility
html advanced validator (firefox
extension) by marc gueury this html validator (based on w3c tidy and on opensp for sgml validation) is a powerful, versatile, extended html validator.
... this html advanced validator firefox
extension is very resourceful and highly customizable.
... it's an
extension add-on to firefox 2.x and firefox 3.x.
:-moz-locale-dir(ltr) - CSS: Cascading Style Sheets
the :-moz-locale-dir(ltr) css pseudo-class is a mozilla
extension that matches an element if the user interface is being displayed left-to-right.
... 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
the :-moz-locale-dir(rtl) css pseudo-class is a mozilla
extension that matches an element if the user interface is being displayed right-to-left.
... 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.
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 ext...
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.
... # addtype type/subtype
extension addtype audio/mpeg mp3 addtype audio/mp4 m4a addtype audio/ogg ogg addtype audio/ogg oga addtype video/mp4 mp4 addtype video/mp4 m4v addtype video/ogg ogv addtype video/webm webm addtype video/webm webmv 2.
HTML attribute: accept - HTML: Hypertext Markup Language
each unique file type specifier may take one of the following forms: a valid case-insensitive filename
extension, starting with a period (".") character.
... a valid mime type string, with no
extensions.
... acceptable file types can be specified with the accept attribute, which takes a comma-separated list of allowed file
extensions or mime types.
<input type="file"> - HTML: Hypertext Markup Language
each unique file type specifier may take one of the following forms: a valid case-insensitive filename
extension, starting with a period (".") character.
... a valid mime type string, with no
extensions.
... acceptable file types can be specified with the accept attribute, which takes a comma-separated list of allowed file
extensions or mime types.
<input type="search"> - HTML: Hypertext Markup Language
autocorrect a safari
extension, the autocorrect attribute is a string which indicates whether or not to activate automatic correction while the user is editing this field.
... incremental the boolean attribute incremental is a webkit and blink
extension (so supported by safari, opera, chrome, etc.) which, if present, tells the user agent to process the input as a live search.
... mozactionhint a mozilla
extension, supported by firefox for android, which provides a hint as to what sort of action will be taken if the user presses the enter or return key while editing the field.
<video>: The Video Embed element - HTML: Hypertext Markup Language
if you use apache web server to serve ogg theora videos, you can fix this problem by adding the video file type
extensions to "video/ogg" mime type.
... the most common video file type
extensions are ".ogm", ".ogv", or ".ogg".
... addtype video/ogg .ogm addtype video/ogg .ogv addtype video/ogg .ogg if you serve your videos as webm, you can fix this problem for the apache web server by adding the
extension used by your video files (".webm" is the most common one) to the mime type "video/webm" via the "mime.types" file in "/etc/apache" or via the "addtype" configuration directive in httpd.conf.
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.
... note: it is recommended that web and
extension developers don’t try to use resource urls anymore.
Cache-Control - HTTP
cache-control: must-revalidate cache-control: no-cache cache-control: no-store cache-control: no-transform cache-control: public cache-control: private cache-control: proxy-revalidate cache-control: max-age=<seconds> cache-control: s-maxage=<seconds>
extension cache-control directives
extension cache-control directives are not part of the core http caching standards document.
...clients that aren't aware of this
extension must ignore them as per the http specification.
... 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 ...
Firefox user agent string reference - HTTP
your distribution of linux might include an
extension that changes your user-agent.
...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.
Intl.Collator.prototype.resolvedOptions() - JavaScript
if any unicode
extension values were requested in the input bcp 47 language tag that led to this locale, the key-value pairs that were requested and are supported for this locale are included in locale.
... collation the value requested using the unicode
extension key "co", if it is supported for locale, or "default".
... numeric casefirst the values requested for these properties in the options argument or using the unicode
extension keys "kn" and "kf" or filled in as defaults.
Object - JavaScript
object.prevent
extensions() prevents any
extensions of an object.
...ject(undefined) let o = new object(null) using object to create boolean objects the following examples store boolean objects in o: // equivalent to o = new boolean(true) let o = new object(true) // equivalent to o = new boolean(false) let o = new object(boolean()) object prototypes when altering the behavior of existing object.prototype methods, consider injecting code by wrapping your
extension before or after the existing logic.
... for example, this (untested) code will pre-conditionally execute custom logic before the built-in logic or someone else's
extension is executed.
Web video codec guide - Web media technologies
files of this type should have the
extension .mp4v, but sometimes are inaccurately labeled .mp4.
... [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 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.
SDK and XUL Comparison - Archive of obsolete content
we also expect to support both desktop and mobile firefox using a single edition of the sdk: so you'll be able to write one
extension and have it work on both products.
...if you need more flexibility than the sdk's high-level apis provide, you can use its low-level apis to load xpcom objects directly or to manipulate the dom directly as in a traditional bootstrapped
extension.
XUL Migration Guide - Archive of obsolete content
in this way an
extension can integrate its user interface into the browser: for example, adding menu items, buttons, and toolbars.
... because sdk-based
extensions are restartless, they can't use xul overlays.
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.
...the difficult part it to identify those that belong to your
extension.
Getting started (cfx) - Archive of obsolete content
to build an xpi, just execute the command cfx xpi from the add-on's directory: cfx xpi you should see a message like: exporting
extension to my-addon.xpi.
...an alternative development model is to use the
extension auto-installer add-on: this listens for new xpi files on a specified port and installs them automatically.
HTML to DOM - Archive of obsolete content
however, there are potential dangers involved in injecting remote content in a privileged context in your
extension, so it can be desirable to parse the html safely.
... <vbox hidden="false" height="0"> <iframe type="content" src="" name="donkey-browser" hidden="false" id="donkey-browser" height="0"/> </vbox> then, in your
extension's "load" event handler: onload: function() { donkeybrowser = document.getelementbyid("donkey-browser"); if (donkeybrowser) { donkeybrowser.style.height = "0px"; donkeybrowser.webnavigation.allowauth = true; donkeybrowser.webnavigation.allowimages = false; donkeybrowser.webnavigation.allowjavascript = false; donkeybrowser.webnavigation.allowmetaredirects = true; donkeybrowser.webnav...
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.
Hiding browser chrome - Archive of obsolete content
there are times in which an
extension may find it useful to hide browser chrome (that is, toolbars, the location bar, and so forth), in order to reduce clutter when presenting a particular user interface.
...note: don't simply replace the hidechromeforlocation() method; this will likely hurt the functionality of firefox itself as well as other
extensions.
Migrating raw components to add-ons - Archive of obsolete content
the firefox
extension mechanism allows you to do everything that you could do through direct component drops, but also gives you and your users extra flexibility and more sophisticated versioning support.
...simple migration if your goal is just to get your raw component working properly as an
extension, you can do this in three steps: create a new add-on using the instructions here.
Offering a context menu for form controls - Archive of obsolete content
this article describes how an
extension can override this change in a particular window, enabling context menus to work on form controls.
... this article presents information based on ehsan akhgari's form control context menu
extension, which was created specifically to demonstrate how to do this.
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 » ...
Adding sidebars - Archive of obsolete content
keyboard shortcuts are an essential feature of firefox, and you can add your own into your
extensions, which is also great.
...to sum up both of these references: you can choose an obscure key combination that won't conflict with firefox, such as ctrl+shift+(some letter), but there's no way of knowing if any other
extension uses that same combination as well.
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.
... /** * controls the browser overlay for the hello world
extension.
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!
XUL School Tutorial - Archive of obsolete content
xul school is a comprehensive add-on development tutorial, focusing on firefox
extension development.
... 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 model xpcom objects observer notifications custom xul elements with xbl mozilla documentation...
Using the Stylesheet Service - Archive of obsolete content
the stylesheet service allows
extensions to manage user and ua stylesheets without having to touch usercontent.css or userchrome.css files.
... determining whether a sheet has been loaded if you are writing an
extension and adding your stylesheet in an onload handler, you'll want to see if your sheet has already been added.
Using content preferences - Archive of obsolete content
this permits code running within chrome (in other words:
extensions and the browser itself, not web sites) to locally save preferences on a per-site basis.
... this makes it possible to write an
extension that lets the user customize the appearance of specific web sites (setting the font size larger on sites that use obnoxiously small fonts, for instance).
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).
Adding the structure - Archive of obsolete content
« previousnext » the ui for our
extension is an icon in the status bar.
... the status attribute is not part of the xul definition for the statusbarpanel element, but is used by our
extension to store the current tinderbox state.
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.
...use your unzip utility to extract all files in that directory with a .jar
extension.
Creating a Microsummary - Archive of obsolete content
the easiest way to get an xpath expression that points to the node in question is to use the xpath checker
extension.
... install the
extension (restarting firefox to complete installation) then go to the spread firefox home page, find the firefox download count (a large number at the bottom of the right-hand column), context click on the number, and select view xpath from the context menu.
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.
Syncing custom preferences - Archive of obsolete content
for example, if your add-on had a pref called
extension.frobnaz.foobar, to have it synced, create a bool preference called services.sync.prefs.sync.
extension.frobnaz.foobar and set it to true.
...see adding_preferences_to_an_
extension.
generateCRMFRequest() - Archive of obsolete content
warning: the features mentioned in this article are deleted proprietary mozilla
extensions, and are not supported in any other browser.
...acceptable values are (the mentioned values for keyusage pertain to the keyusage value of the certificate
extension that will ultimately be in the issued certificate): "rsa-ex" - generate an rsa key for key exchange only (this will have eyencipherment set for keyusage.) "rsa-dual-use" - generate a single rsa key for both signing and encryption.
Microsummary topics - Archive of obsolete content
warning: microsummary support was removed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) programmatically installing a microsummary generator to programmatically install a microsummary generator -- for example, in an
extension that helps users create custom generators for their favorite sites -- obtain a reference to the nsimicrosummaryservice interface implemented by the nsimicrosummaryservice component, then call its installgenerator() method, passing it an xml document containing the generator.
...you may also use another form appropriate to your
extension.
Bundles - Archive of obsolete content
a bundle can also be installed from firefox via the prism
extension for firefox.
... the
extension looks for <link> tags in the webpage that point to a webapp bundle: <link rel="webapp" href="prismdemo.webapp" title="prism demo"> when the
extension finds such a <link> tag, it will notify the user.
Scripting - Archive of obsolete content
this file will be loaded into the prism chrome window very much like a firefox
extension is loaded into the browser chrome window.
...currently, the webapp script also has access to full xpcom functionality, just like a firefox
extension.
Actionscript Acceptance Tests - Archive of obsolete content
files to be included when compiling the test: if a test requires additional .as files to be included when compiling, a directory with the same name as the test (minus any
extension) can be created.
... the directory name should not include any testname
extensions.
Using Breakpoints in Venkman - Archive of obsolete content
(note: by default, venkman hides files file that appear to be part of the browser core; this includes
extensions.
... to debug an
extension, uncheck "exclude browser files" on the debug menu and your installed
extension files should appear in the loaded scripts list.) venkman also indicates that one or more breakpoints have been set in the loaded scripts view, where red dots appear next to the files in which breakpoints have been set, along with the line number where the function begins whose code is being stopped.
When To Use ifdefs - Archive of obsolete content
the only time when they might be a problem is in cross-platform
extension code and locales: since this code is downloaded on multiple platforms, platform-specific ifdefs are generally out of the question.
...for example (at the time of writing) there are two nsi
extensionmanager interfaces: toolkit version and suite version.
Methods - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
File Object - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
InstallVersion Object - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
Methods - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
Properties - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
Install Object - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
Methods - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
WinProfile Object - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
Methods - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
WinReg Object - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
XPInstall API reference - Archive of obsolete content
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
treecol.type - Archive of obsolete content
cbox-check.gif isn't available in firefox 1, 2, and 3 in mac os x so you should specify a url to an image in your
extension or elsewhere.
...cbox-check.gif isn't available in firefox 1, 2, and 3 in mac os x, so you should specify a url to an image in your
extension or elsewhere.
Accessing Files - Archive of obsolete content
this is a convenient location where an
extension might save a file it needs to use.
...var file = io.getfile("profile", "sample.txt"); the nsiscriptableio object is a global object always available within an application or
extension which provides a number of useful functions for dealing with files.
IO - Archive of obsolete content
using files a xul application or
extension may access files on disk, and either read or write to files.
...var file = io.getfile("profile", "sample.txt"); the nsiscriptableio object is a global object always available within an application or
extension.
Menus - Archive of obsolete content
an
extension will often wish to attach a new command to a menu.
...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.
Providing Command-Line Options - Archive of obsolete content
extensions and xul applications can modify the way command line parameters are handled by writing a component that implements the nsicommandlinehandler interface and registering it in a category.
...pp {2991c315-b871-42cd-b33f-bfee4fcbf682} category command-line-handler m-myapp @mozilla.org/commandlinehandler/general-startup;1?type=myapp the javascript code const cc = components.classes; const ci = components.interfaces; components.utils.import("resource://gre/modules/xpcomutils.jsm"); components.utils.import("resource://gre/modules/services.jsm"); // changeme: to the chrome uri of your
extension or application const chrome_uri = "chrome://myapp/content/"; /** * utility functions */ /** * opens a chrome window.
Creating a Window - Archive of obsolete content
creating a xul file an xul file can be given any name but it really should have a .xul
extension.
... the
extension developer's
extension contains an xul editor that allows you to type in xul code and see the results in real-time from within mozilla!
Skinning XUL Files by Hand - Archive of obsolete content
finally, mozilla provides some special
extensions to the cascading style sheets specification that allow even more control over the way that xul is skinned within the browser.
... a css file is a regular text file with the
extension .css.
The Chrome URL - Archive of obsolete content
for content, a file with the same name of the package and a xul
extension is selected.
...of course, for
extensions that modify the browser interface, the user will not need to know the url, as the
extension will present itself in the ui.
Using multiple DTDs - Archive of obsolete content
single dtd to make strings in your xul file localizable, you normally add a dtd declaration at the beginning of the file like this: <!doctype window system "chrome://my
extension/locale/mainwindow.dtd"> where "window" is the local name of the document (root) element.
... 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://my
extension/locale/mainwindow.dtd"> %mainwindowdtd; ]> you can now access the entities declared in the dtds as shown above.
XUL FAQ - Archive of obsolete content
other faqs you may be interested in:
extension faq, ...
...ted mielczarek's live xul editor (also part of
extension developer's
extension) often proves useful.
XUL Questions and Answers - Archive of obsolete content
as an
extension author, you have at least two options: use dom methods to dynamically create or rearrange elements file an enhancement request in bugzilla to have extra ids added.
...for more information please look at the following link: ns
extensionmanager.js is nsivariant fully supported using python?
tree - Archive of obsolete content
cbox-check.gif isn't available in firefox 1, 2, and 3 in mac os x so you should specify a url to an image in your
extension or elsewhere.
...cbox-check-dis.gif isn't available in firefox 1, 2, and 3 in mac os x, so you should specify a url to an image in your
extension or elsewhere.
window - Archive of obsolete content
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml"> <!-- icon from chrome --> <html:link rel="icon" href="chrome://my
extension/content/path/to/favicon.png"/> <!-- from a remote site --> <html:link rel="icon" href="http://www.mozilla.org/favicon.ico"/> since firefox 3.6 the above listed code does not work correctly - it produces the following message: "warning: xul box for box element contained an inline link child, forcing all its children to be wrapped in a block".
...the problem can be solved as follows: <html:link rel="icon" href="chrome://my
extension/content/path/to/favicon.png" style="display:none"/> or <html:head> <html:link rel="icon" href="chrome://my
extension/content/path/to/favicon.png"/> </html:head> ...
XUL - Archive of obsolete content
mailing list newsgroup rss feed #xul on irc.mozilla.org tools xul online live editor (copy & paste snippets from here and run them) xul explorer (a lightweight xul ide) xulexplorer (patched version of xul explorer)
extension developer's
extension (featuring a live xul editor) xulref sidebar firebug dom inspector spket ide, ide for xul/xbl ample sdk, (cross-browser xul renderer in javascript/html) view all...
... related topics javascript, xbl , css, rdf,
extensions, xulrunner ...
What XULRunner Provides - Archive of obsolete content
extension manager file picker (uses native os filepicker as appropriate) find toolbar helper app dialog/ui security ui (maintenance of ssl keychains, etc) embedding apis the following embedding apis are provided by xulrunner: cross-platform embedding (xre_initembedding) javaxpcom embedding gtkmozembed (linux only) activex control (windows only) (not yet complete) obsolete since gecko 7.0 ...
... what's out xulrunner will not supply: bookmarks or history ui (must be managed by the application/embedder) xforms (xforms will be available as an
extension) ...
calICalendarView - Archive of obsolete content
note that in most cases, this attribute will be set by the consumers of calicalendarview very early in an application/
extension's loading process.
...implementations should therefore be wary to check whether a controller has been assigned to the view, before calling any of the methods it implements.note that in most cases, this attribute will be set by the consumers of calicalendarview very early in an application/
extension's loading process.
2006-10-20 - Archive of obsolete content
how to create firefox
extension (chrome) to add images next to urls ?
... question regarding how to make a firefox
extension that would insert an image next to all links in the loaded web pages similar to the mcafee siteadvisor
extension.
2006-11-03 - Archive of obsolete content
cross-product
extension install improvements simon paquet points out how much easier it is to install an
extension in firefox than it in any other product.
... a discussion of how to get firefox to be able to install
extensions for other products (e.g.
2006-09-29 - Archive of obsolete content
discussions
extension based testing - someone is in the process of writing a small
extension that tests firefox's help in terms of table-of-contents and search looking for firefox triagers to evaluate a triage tool - a phd student is working on a way to assist triagers.
... help testing helper
extension - someone made a new
extension.
JS-Engine FAQ - Archive of obsolete content
check the jsval macros at the top of js/src/jsapi.h can an embedded spidermonkey js engine use domparser
extension of mozilla?
... non-js-engine questions can i call functions in mozilla
extensions from web page?
2006-12-01 - Archive of obsolete content
a tip on how to debug firefox
extensions using a debugger.
... segmentation fault while running the browser browser crashes after installation of subjects
extension.
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 ...
SAX - Archive of obsolete content
starting with firefox 2, a sax parser is available to xul applications and
extensions.
... nsisaxlexicalhandler sax2
extension handler for lexical events (e.g.
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...
...if you are using the
extension console² you can easily filter out content related messages to see just chrome issues.
Using Firebug and jQuery (Screencast) - Archive of obsolete content
we're going to take an introductory look at the firebug firefox
extension and the jquery javascript library - combining the two to build a reusable bookmarklet that can manipulate digg posts and comments.
... related links: firebug firefox
extension jquery javascript library jquery selector documentation digg learning jquery: jquerify bookmarklet if you wish to use greasemonkey instead of a bookmarklet, then by all means, please do so.
-ms-accelerator - Archive of obsolete content
the -ms-accelerator css property is a microsoft
extension that sets or retrieves a string indicating whether the object represents a keyboard shortcut.
... in internet explorer 8 (ie8) the -ms-accelerator attribute is an
extension to css, and can be used as a synonym for accelerator in ie8 standards mode.
-ms-filter - Archive of obsolete content
the -ms-filter css property is a microsoft
extension that sets or retrieves the filter or collection of filters applied to an object.
...sed alternatives: dx filter standards-based alternative alpha opacity alphaimageloader <img> or background-image and related properties gradient background-image: linear-gradient() dropshadow text-shadow or box-shadow matrix transform, transform-origin in windows internet explorer 8, the -ms-filter attribute is an
extension to css, and can be used as a synonym for filter in ie8 standards mode.
-ms-ime-align - Archive of obsolete content
the -ms-ime-align css property is a microsoft
extension aligning the input method editor (ime) candidate window box relative to the element on which the ime composition is active.
... the
extension is implemented in microsoft edge and internet explorer 11.
-ms-text-autospace - Archive of obsolete content
the -ms-text-autospace css property is a microsoft
extension that specifies the autospacing and narrow space width adjustment of text.
... this property is an
extension to css, and can be used as a synonym for text-autospace in ie8 standards mode.
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 (c...
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.
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.
...moreover, the respective method (freeze(), seal(), or prevent
extension()) is immediately called on the fixed object.
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.
Archived open Web documentation - Archive of obsolete content
e4x ecmascript for xml (e4x) is a programming language
extension that adds native xml support to javascript.
...well if you combine the two, you can have inherited private variables: scope cheatsheet javascript with mozilla
extensions has both function-scoped vars and block-scoped lets.
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 ...
CardDAV - MDN Web Docs Glossary: Definitions of Web-related terms
carddav (vcard
extension to webdav) is a protocol standardized by the ietf and used to remote-access or share contact information over a server.
... learn more general knowledge carddav on wikipedia technical reference rfc 6352: vcard
extensions to web distributed authoring and versioning (webdav) ...
WebDAV - MDN Web Docs Glossary: Definitions of Web-related terms
webdav (web distributed authoring and versioning) is an http
extension that lets web developers update their content remotely from a client.
... webdav is rarely used alone, but two
extensions are very common: caldav (remote-access calendar) and carddav (remote-access address book).
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.
Getting started with React - Learn web development
note the use of ./ at the beginning of the path, and the .svg
extension at the end — these tell us that the file is local and that it is not a javascript file.
... we don't write a path or
extension when importing the react module — this is not a local file; instead, it is listed as a dependency in our package.json file.
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.
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.
... however, you won’t find a code editor
extension for everything you want to do — you’ll have to get some experience with the terminal eventually.
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.
... for vs code, one useful
extension is the prettier code formatter by esben petersen, which lets vscode automatically format code upon saving.
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.
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 preference...
...s 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.
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.
... related resources
extension versioning, update and compatibility.
HTTP logging
this is accomplished by splitting the log into up to 4 separate files (their filenames have a numbered
extension, .0, .1, .2, .3) the logging back end cycles the files it writes to, while ensuring that the sum of these files’ sizes will never go over the specified limit.
... there's a handy
extension for firefox called http header live that you can use to capture just the http request and response headers.
Simple Sunbird build
this will build the lightning
extension into src/../objdir-sb/mozilla/dist/xpi-stage/.
...building just lightning after you have completed a full build, if you would like to rebuild lightning you don't need to go through the whole build process: # enter the calendar directory in the object-directory cd src/../objdir-sb-release/calendar # make the lightning
extension make -c lightning references general build documentation comm-central ...
Reviewer Checklist
trailing whitespace (git diff and splinter view both highlight this, as does hg with the color
extension enabled).
... whitespace can be fixed easily in mercurial using the checkfiles
extension.
Cross Process Object Wrappers
for example, this frame script sends a dom node to chrome when the user clicks it, as the clicked property of the third argument: // frame script addeventlistener("click", function (event) { sendasyncmessage("my-e10s-
extension-message", {}, { clicked : event.target }); }, false); in the chrome script, the dom node is now accessible through a cross process object wrapper, as a property of the objects property of the message.
... the chrome script can get and set the wrapped object's properties and call its functions: // chrome script windowmm.addmessagelistener("my-e10s-
extension-message", handlemessage); function handlemessage(message) { let wrapper = message.objects.clicked; console.log(wrapper.innerhtml); wrapper.innerhtml = "<h2>modified by chrome!</h2>" wrapper.setattribute("align", "center"); } auto-generated cpows add-ons that have not declared themselves multiprocess compatible are set up with a number of compatibility shims.
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.
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.
...process scripts are most likely to be useful when an
extension wants to run some code only once in the content process, to access some global service: for example, to register an observer or a content policy.
Browser API
the html browser api is an
extension of the html <iframe> element that allows web apps to implement browsers or browser-like applications.
... 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.
How test harnesses work
the python harness communicates with the browser by inserting an
extension in the testing profile or uses marionette's wire protocol to drive the browser.
... python runner the python runner: sets up the testing environment sets up environment variables (mozrunner, currently) creates a profile (mozprofile via mozrunner) sets appropriate test preferences inserts a shim
extension in the profile (for non-marionette tests) 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/ins...
Integrated Authentication
the mozilla implementation of spnego can be found under
extensions/auth/.
... it used to live in
extensions/negotiateauth.
Code Samples
simply replace your
extensionid with your add-on's id.
... components.utils.import("resource://gre/modules/addonmanager.jsm"); addonmanager.getaddonbyid("your
extensionid", function(addon) { var addonlocation = addon.getresourceuri("").queryinterface(components.interfaces.nsifileurl).file.path; }); accessing file and version information components.utils.import("resource://gre/modules/addonmanager.jsm"); addonmanager.getaddonbyid("my-addon@foo.com", function(addon) { alert("my
extension's version is " + addon.version); alert("did i remember to include that file.txt file in my xpi?
CustomizableUI.jsm
note: if your
extension is compatible with versions of firefox below 29, i.e.
... parameters awindowpalette the palette (and by
extension, the window) in which customizableui should look.
Download
launcherpath string local file path of the application to be used to launch the target file, or null if the file should be launched with the default application associated with the contenttype property or the
extension of the target file.
...if the content type is not available, an attempt will be made to obtain it from the
extension of the target file.
WebRequest.jsm
the webrequest api is modeled on chrome's webrequest
extension api, which makes it easier to write cross-browser add-on code.
... "object" "xmlhttprequest" http headers https headers are represented as objects with two properties, name and value: name type description name string header name, for example "content-type" value string header value, for example "image/png" chrome incompatibilities although this api is modeled on chrome's webrequest
extension api, there are some differences.
XPCOMUtils.jsm
remarks this lets an
extension bundle its own javascript code modules within itself and have them load one another.
... for example, if an
extension named "my
extension" bundles foo.jsm and bar.jsm, and foo.jsm needs to load bar.jsm, it can do so like this: components.utils.import("resource://gre/modules/xpcomutils.jsm"); xpcomutils.importrelative(this, "bar.jsm"); in other words: importrelative will only work from other code modules (such as jsm files).
JavaScript code modules
for example, a module could be used by firefox itself as well as by
extensions, in order to avoid code duplication.
... mozilla labs js modules this page features a list of javascript modules, along with download links and documentation, that
extension developers can use in their code.
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 director...
...you can either use the locale switcher
extension, or set it in about:config.
L10n Checks
if you want to test the localization for de, run: check-l10n-completeness -i xpi my-
extension.xpi de to check all locales in an
extension: check-l10n-completeness -i xpi my-
extension.xpi language packs (xpis) mode l10n checks can compare two locales found in different xpi files.
..."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 miss...
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.
... please refer to mqtutorial and mq documentation for further uses of mq
extension to manage patches.
Writing localizable code
it is aimed at mozilla and
extension developers.
...using a directory structure like this eases the localization process without the source code and is especcially recommended to
extension authors.
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 ...
Reporting a Performance Problem
these addons might be using the
extension api in ways that were not meant to.
... you can see which of these addons are causing problems by adding the "moz-
extension" filter.
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,17...
...5,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 ...
A brief guide to Mozilla preferences
file a configuration file, usually with .cfg
extension, may be called from a default pref file via the general.config.filename preference.
...any use of this technique by software such as firefox
extension to override normal user preference will result in being added to the firefox blocklist or the preferences being forcibly removed.
Preferences
adding preferences to an
extension how to add preferences to an existing
extension.
... related topics xul, javascript, xpcom,
extensions, developing mozilla ...
McCoy
however, there are several external and unofficial tools which enable signing from command line: uhura - part of the mxtools package from softlights http://www.softlights.net/projects/mxtools/uhura.html signontheline - an
extension to mccoy - important: you have to checkout rev 222, later revisions are not working in 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.
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).
JSS Provider Notes
contents signed jar file installing the provider specifying the cryptotoken supported classes what's not supported signed jar file jss 3.2 implements several jce (java cryptography
extension) algorithms.
... apply for your own jce code-signing certificate following the procedure at how to implement a provider for the javatm cryptography
extension.
Mozilla-JSS JCA Provider notes
contents signed jar file installing the provider specifying the cryptotoken supported classes what's not supported signed jar file jss implements several jce (java cryptography
extension) algorithms.
... apply for your own jce code-signing certificate following the procedure at how to implement a provider for the javatm cryptography
extension.
NSS_3.11.10_release_notes.html
bug 291384: certutil -k behavior doesn't match usage bug 374247: modutil -disable command not disabling modules' slots bug 384459: certification path validation fails when authority key identifier
extension contains key identifier bug 385946: can't import certificate into cert database in fips mode (certutil).
... 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 public primary ca - g5 to nss bug 424152: add thawte primary root ca to nss bug 424169: add geotrust primary...
NSS_3.12.1_release_notes.html
cert_encodesubjectkeyid (see cert.h) encode certificate skid (subject key id)
extension.
...s not defined in any public header file bug 429716: debug builds of libpkix unconditionally dump socket traffic to stdout bug 430368: vfychain -t option is undocumented bug 430369: vfychain -o succeeds even if -pp is not specified bug 430399: vfychain -pp crashes bug 430405: error log is not produced by cert_pkixverifycert bug 430743: update ssltap to understand the tls session ticket
extension bug 430859: pkix: policy mapping fails verification with error invalid arguments bug 430875: document the policy for the order of cipher suites in ssl_implementedciphers.
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.21 release notes
new in nss 3.21 new functionality certutil now supports a --rename option to change a nickname (bug 1142209) tls extended master secret
extension (rfc 7627) is supported (bug 1117022) new info functions added for use during mid-handshake callbacks (bug 1084669) new functions in nss.h nss_optionset - sets nss global options nss_optionget - gets the current value of nss global options in secmod.h secmod_createmoduleex - create a new secmodmodule structure from module name string, module parameters string, nss spec...
...lgorithm is configured ssl_error_missing_extended_master_secret - error code for when the extended master secret is missing after having been negotiated ssl_error_unexpected_extended_master_secret - error code for receiving an extended master secret when previously not negotiated in sslt.h ssl_enable_extended_master_secret - configuration to enable the tls extended master secret
extension (rfc 7627) ssl_preinfo_version - used with sslpreliminarychannelinfo to indicate that a tls version has been selected ssl_preinfo_cipher_suite - used with sslpreliminarychannelinfo to indicate that a tls cipher suite has been selected ssl_preinfo_all - used with sslpreliminarychannelinfo to indicate that all preliminary information has been set notable changes in nss 3.21 nss n...
NSS 3.38 release notes
nss 3.38 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_38_rtm/src/ new in nss 3.38 new functionality added support for the tls record size limit
extension.
... new functions in secitem.h secitem_makeitem - allocate and make an item with the requested contents new macros in ssl.h ssl_record_size_limit - used to control the tls record size limit
extension notable changes in nss 3.38 fixed cve-2018-0495 in bug 1464971.
NSS 3.54 release notes
use arm cryptography
extension for sha256, when available.
... bugs fixed in nss 3.54 bug 1528113 - use arm cryptography
extension for sha256.
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 reque...
...sciitoname(subjectstr); break; case 'z': noisefilename = strdup(optstate->value); break; default: usage(progname); break; } } pl_destroyoptstate(optstate); if (cmd == unknown || !dbdir) { usage(progname); } /* for intermediate header file, choose filename as inputfile name with
extension ".header" */ strcpy(headerfilename, progname); strcat(headerfilename, ".header"); /* for intermediate encrypted file, choose filename as inputfile name with
extension ".enc" */ strcpy(encryptedfilename, progname); strcat(encryptedfilename, ".enc"); pr_init(pr_user_thread, pr_priority_normal, 0); /* open db for read/write and authenticate to it.
NSS Tech Notes
tn3: all about certificate
extensions.
... tn4: pulling certificate
extension information out of ssl certificates.
PKCS11 FAQ
if the subject dn does not include an email address, the certificate
extension subjectaltname must include an email address.
... the subjectaltname
extension is part of the x.509 v3 and pkix specifications.
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.
Scripting Java
all the functionality covered in this chapter should thus be considered an
extension.
...exception: the original exception thrown by the java method rhinoexception: the exception wrapped by the rhino runtime the instanceof operator can be used to query the type of an exception: try { java.lang.class.forname("nonexistingclass"); } catch (e) { if (e.javaexception instanceof java.lang.classnotfoundexception) { print("class not found"); } } rhino also supports an
extension to the try...catch statement that allows to define conditional catching of exceptions: function classforname(name) { try { return java.lang.class.forname(name); } catch (e if e.javaexception instanceof java.lang.classnotfoundexception) { print("class " + name + " not found"); } catch (e if e.javaexception instanceof java.lang.nullpointerexception) { print("cla...
Rhino shell
defineclass(classname) define an
extension using the java class named with the string argument classname.
... uses scriptableobject.defineclass() to define the
extension.
Shumway
it is currently available as an
extension and as a component in firefox's nightly builds that can be enabled through about:config (you need to find the shumway.disabled preference and set it to false).
...the simple method is to install the shumway
extension (or run a browser version with shumway included and enabled) and browse to your flash content with adobe flash player set "ask to activate" or "never activate" in firefox's add-ons menu (this will be listed as "shockwave flash" under the plugins tab).
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...
... js_getmethod obsolete since jsapi 23 js_getmethodbyid obsolete since jsapi 23 a spidermonkey
extension allows a native function to return an lvalue—that is, a reference to a property of an object: js_setcallreturnvalue2 obsolete since javascript 1.8.5 id a jsid is an identifier for a property or method of an object.
SpiderMonkey 24
e4x, an
extension to ecmascript adding xml support, has been removed.
... the
extension eventually became an evolutionary dead end, as tc39 chose not to incorporate it into ecmascript proper.
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.
Mozilla Projects
leak monitor leak monitor is a firefox
extension by l.
... david baron that helps
extension and chrome developers to find memory leaks.
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 xulrun...
...ner 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 ...
Bundling multiple binary components
background binary xpcom components are sometimes required to implement low-level features for
extensions.
...this can create a difficult situation for
extension developers trying to support multiple gecko versions (firefox 2 and 3, for example).
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.
Language bindings
it is meant for use by
extension developers who have exception handler blocks which want to "eat" an exception, but still want to report it to the console.components.utils.sandboxcomponents.utils.sandbox is used to create a sandbox object for use with evalinsandbox().components.utils.scheduleprecisegcthis method lets scripts schedule a garbage collection cycle.
...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 betw...
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.
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.
...these are javascript objects with properties: name - the plugin or
extension name version - the version of the
extension or plugin icon - the plugin or
extension icon disable - can be used by the nsiblocklistprompt to allows users to decide whether a soft-blocked add-on should be disabled blocked - true if the item is hard-blocked, false otherwise item - the nsiplugintag or addon object acount optional the number of addons.
nsIChannel
note: the content type can often be wrongly specified (for example wrong file
extension, wrong mime type, wrong document type stored on a server and so on.), and the caller most likely wants to verify with the actual data.
... 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.
nsIChromeRegistry
the
extension, ext, is one of: xul for a "content" package.
...the
extension, ext, is one of: xul for a "content" package.
nsIFeedContainer
common atom and rss fields are normalized, including some namespaced
extensions such as "dc:subject" and "content:encoded".
...see nsifeedresult.register
extensionprefix() for more information about prefixes.
nsIHttpServer
, deeper path registered with * another directory); if null, any current mapping for the given path is * removed * @throws ns_error_invalid_arg * if dir is non-null and does not exist or is not a directory, or if path * does not begin with and end with a forward slash */ void registerdirectory(in string path, in nsifile dir); /** * associates files with the given
extension with the given content-type when * served by this server, in the absence of any file-specific information * about the desired content-type.
... */ void registercontenttype(in string
extension, in string type); /** * sets the handler used to display the contents of a directory if * the directory contains no index page.
Using nsILoginManager
working with the login manager
extensions often need to securely store passwords to external sites, web applications, and so on.
...m> creating a site authentication login var authlogininfo = new nslogininfo( 'http://www.example.com', null, 'exampleco login', 'alice', 'secret321', "", "" ); this would correspond to a login on http://www.example.com when the server sends a reply such as: http/1.0 401 authorization required server: apache/1.3.27 www-authenticate: basic realm="exampleco login" creating a local
extension login var extlogininfo = new nslogininfo( 'chrome://firefoo', null, 'user registration', 'bob', '123secret', "", "" ); from a component creating a new info block is done slightly differently: var nslogininfo = new constructor("@org/manager/ci.init"); var extlogininfo = new aformsubmiturl, ausername, ausernamefield, ...
nsIMicrosummaryGenerator
for generators installed via some other mechanism (for example an
extension that dynamically creates generators), this uri is a urn in a form of the
extension's own choosing, with the only restriction being that the uri be globally unique.
... to ensure this, we recommend that such
extensions incorporate uuids created by nsiuuidgenerator into the urns of the generators they create.
nsIUpdate
extensionversion astring the add-on version of this update.
... used by the
extension system to track compatibility of installed add-ons with this update.
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.
nsIWindowWatcher
example for example, in a xul application or mozilla
extension, if the window object is unavailable (for example, when opening a window from xpcom component code), you might want to use this interface for opening a new window: var ww = components.classes["@mozilla.org/embedcomp/window-watcher;1"] .getservice(components.interfaces.nsiwindowwatcher); var win = ww.openwindow(null, "chrome://my
extension/content/about.xul", ...
... "aboutmy
extension", "chrome,centerscreen", null); note: versions of gecko before gecko 2.0 would ignore some of the chrome flags when opening a chrome window without an opener window, instead behaving as if the "all" flag was present.
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.
nsIXULAppInfo
has to be defined for advanced application features such as the
extension manager and update service.
...can be an empty string, but a valid value is required for xul applications using the
extension manager or update service.
XPCOM Interface Reference by grouping
misc nsisound nsiwifimonitor document nsiwebnavigation environment nsienvironment event nsieventlistenerinfo nsieventlistenerservice nsieventtarget exception nsiexception extention nsi
extensionmanager nsiinstalllocation external nsiexternalprotocolservice frame nsicontentframemessagemanager history nsishentry nsishistory idle nsiidleservice internal command nsicommandline nsicommandlineha...
... nsiwebprogresslistener nsiwebprogresslistener2 update nsiupdate nsiupdatechecker nsiupdatechecklistener nsiupdateitem nsiupdatemanager nsiupdatepatch nsiupdateprompt nsiupdatetimermanager nsiprogramminglanguage thunderbird credentials nsimsgaccountmanager
extension element nsieditormailsupport message nsidbchangeannouncer nsidbchangelistener nsimessenger nsimsgcompfields nsimsgcustomcolumnhandler nsimsgdatabase nsimsgdbhdr nsimsgdbview nsimsgdbviewcommandupdater nsimsgfolder nsimsgidentity nsimsgmessageservice nsimsgsendlater nsims...
Mozilla technologies
accessibility api implementation detailsthese pages contain documentation on mozilla specific implementation details of assistive technology apis.animated png graphicsapng is an
extension of the portable network graphics (png) format, adding support for animated images.
...at the moment, the transition from webshell to docshell is not fully completed, but the long-term goal is to remove webshell and switch over entirely to docshell.embedded dialog apifeed content access apifirefox 2 and thunderbird 2 introduce a series of interfaces that make it easy for
extension authors to access rss and atom feeds.life after xul: building firefox interfaces with htmlthis page gathers technical solutions to common problems encountered by teams shipping html-based interfaces inside firefox.morkmork is a database file format invented by david mccusker for the mozilla code since the original netscape database information was proprietary and could not be released open source...
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.
MailNews Filters
it would be really nice if we had a mechanism for
extensions to add their own filter actions.
... most if not all of the above pieces of code would be involved in the
extension mechanism.
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.
Finding the code for a feature
the first is the dom inspector
extension which i have routinely installed in all of my thunderbird installations.
... (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).
Access StringBundle from Overlay
the most efficient way to append these strings is by attaching them to an existing stringbundleset as such: <stringbundleset id="stringbundleset"> <stringbundle src="chrome://your_
extension/locale/overlay.properties" id="your-
extension-strings" /> </stringbundleset> now that your stringbundle is attached you can access it from javascript as follows: var str = document.getelementbyid("your-
extension-strings"); //get the stringbundle object itself str.getstring("propertyname"); //get a string (and do something with it) alternative way let string...
...bundleservice = cc["@mozilla.org/intl/stringbundle;1"].getservice(ci.nsistringbundleservice); let bundle = stringbundleservice.createbundle("chrome://your_
extension/locale/overlay.properties"); let str = bundle.getstringfromname("propertyname"); see nsistringbundleservice ...
Add Option to Context Menu
menupopup> </overlay> for thunderbird 3 <?xml version="1.0"?> <overlay id="sample" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <popup id="mailcontext"> <menuitem id="my_option" label="my option concise and cool label" oncommand="alert('hi')"/> </popup> </overlay> for thunderbird 2 and 3 in the same xpi if our
extension needs to support thunderbird 2 and 3 we need to make custom overlays for each version.
... note: if our
extension supports more mozilla applications (for example mozilla firefox and mozilla thunderbird) we need also specify application flag.
Theme Packaging
sample install.rdf file <?xml version="1.0"?> <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"> <em:id>{18b64b56-d42f-428d-a88c-baa413bc413f}</em:id> <em:version>1.0</em:version> <em:type>4</em:type> <!-- target application this
extension can install into, with minimum and maximum supported versions.
... 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 ...
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 me...
Toolkit version format
this format is used by the
extension manager, software update, and other parts of the platform.
... the following preferences: app.
extensions.version,
extensions.lastappversion versions returned by nsixulappinfo.
Examples
add image to iphoto an
extension that adds a contextual menu item to images that lets you easily add them to iphoto on mac os x.
... js-macosx an
extension that demonstrates javascript-cocoa bridge for mac os x.
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 + 'mysub...
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.
...the server looks for the media (mime) type registered by a plug-in, based on the file
extension, and starts sending the file to the browser.
Streams - Plugins
in general, this mode is more expensive, because the entire stream must be downloaded to a temporary file before use unless the stream comes from a local file or an http server that supports the byte-range
extension to http.
...the browser must download the entire stream to a temporary file before it can be used, unless the stream comes from a local file or an http server that supports the byte-range
extension to http.
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.
... host-integration overlays dom inspector is a general-purpose
extension, suitable for use with any mozilla toolkit host application.
UI Tour - Firefox Developer Tools
web
extensions are listed in the source list pane using the
extension's name.
...this option enables you to see how your web page looks if the user has disabled javascript via an
extension or a configuration setting.
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.
Network request list - Firefox Developer Tools
for example, "csp", "malware", "cors missing allow origin", "blocked by [name of
extension]".
... blocking specific urls if you want to view your page as it would look without a resource (e.g., if it were blocked by the browser or an
extension), you can block requests matching patterns you specify.
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.drawElementsInstancedANGLE() - Web APIs
possible values are: gl.unsigned_byte gl.unsigned_short when using the oes_element_index_uint
extension: gl.unsigned_int offset a glintptr specifying an offset in the element array buffer.
... examples var ext = gl.get
extension('angle_instanced_arrays'); ext.drawelementsinstancedangle(gl.points, 2, gl.unsigned_short, 0, 4); specifications specification status comment angle_instanced_arraysthe definition of 'angle_instanced_arrays' in that specification.
CanvasRenderingContext2D.drawWindow() - Web APIs
if you're using it from an
extension, you should switch to tabs.capturetab.
... ted mielczarek's tab preview
extension uses this technique in chrome to provide thumbnails of web pages, and the source is available for reference.
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.
CloseEvent - Web APIs
1010 missing
extension the client is terminating the connection because it expected the server to negotiate one or more
extension, but the server didn't.
... 2000–2999 reserved for use by websocket
extensions.
Element - Web APIs
" width="75" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="303.5" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">element</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties from its parent interface, node, and by
extension that interface's parent, eventtarget.
...available only to web
extensions.
Using Fetch - Web APIs
fetch also provides a single logical place to define other http-related concepts such as cors and
extensions to http.
... request bodies can be set by passing body parameters: const form = new formdata(document.getelementbyid('login-form')); fetch('/login', { method: 'post', body: form }); both request and response (and by
extension the fetch() function), will try to intelligently determine the content type.
File.type - Web APIs
it is assumed based on the file
extension; a png image file renamed to .txt would give "text/plain" and not "image/png".
...uncommon file
extensions would return an empty string.
FileSystemEntry.name - Web APIs
example this example shows a function called isfilewith
extension() which returns true if the specified filesystementry is both a file and the file's name ends with a given
extension.
... function isfilewith
extension(entry,
extension) { return (entry.isfile && entry.name.endswith("." +
extension)); } specifications specification status comment file and directory entries apithe definition of 'name' in that specification.
GlobalEventHandlers - Web APIs
specifications specification status comment selection apithe definition of '
extension to globaleventhandlers' in that specification.
... pointer lockthe definition of '
extension of document' in that specification.
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.
compareVersion - Web APIs
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
getVersion - Web APIs
extension, theme, and plug-in developers must switch away from install.js based packages to the new packaging scheme with an install.rdf manifest.
... in particular plugin developers should see how to package a plugin as an
extension.
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.msLaunchUri() - Web APIs
the mslaunchuri() method is a microsoft
extension to the navigator interface, which starts a service or app, such as an email client, that handles a given protocol.
... see also mslaunchuricallback microsoft api
extensions ...
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.
OVR_multiview2.framebufferTextureMultiviewOVR() - Web APIs
gl.color_attachment1 gl.color_attachment2 gl.color_attachment3 gl.color_attachment4 gl.color_attachment5 gl.color_attachment6 gl.color_attachment7 gl.color_attachment8 gl.color_attachment9 gl.color_attachment10 gl.color_attachment11 gl.color_attachment12 gl.color_attachment13 gl.color_attachment14 gl.color_attachment15 when using the webgl_draw_buffers
extension: ext.color_attachment0_webgl (same as gl.color_attachment0) ext.color_attachment1_webgl ext.color_attachment2_webgl ext.color_attachment3_webgl ext.color_attachment4_webgl ext.color_attachment5_webgl ext.color_attachment6_webgl ext.color_attachment7_webgl ext.color_attachment8_webgl ext.color_attachment9_webgl ext.color_attachment10_webgl ...
... ext.color_attachment11_webgl ext.color_attachment12_webgl ext.color_attachment13_webgl ext.color_attachment14_webgl ext.color_attachment15_webgl when using the webgl_depth_texture
extension: ext.depth_stencil_attachment: depth and stencil buffer data storage.
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.
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_debug_shaders.getTranslatedShaderSource() - Web APIs
syntax gl.get
extension('webgl_debug_shaders').gettranslatedshadersource(shader); parameters shader a webglshader to get the translated source from.
... examples var canvas = document.getelementbyid('canvas'); var gl = canvas.getcontext('webgl'); var shader = gl.createshader(gl.fragment_shader); gl.shadersource(shader, 'void main() { gl_fragcolor = vec4(gl_fragcoord.x, 0.0, 0.0, 1.0); }'); gl.compileshader(shader); var src = gl.get
extension('webgl_debug_shaders').gettranslatedshadersource(shader); console.log(src); // "void main(){ // (gl_fragcolor = vec4(gl_fragcoord.x, 0.0, 0.0, 1.0)); // }" specifications specification status comment webgl_debug_shadersthe definition of 'webgl_debug_shaders.gettranslatedshadersource' in that specification.
WEBGL_draw_buffers.drawBuffersWEBGL() - Web APIs
this method is part of the webgl_draw_buffers
extension.
... syntax void gl.get
extension('webgl_draw_buffers').drawbufferswebgl(buffers); parameters buffers an array of glenum constants defining drawing buffers.
WEBGL_lose_context.restoreContext() - Web APIs
syntax gl.get
extension('webgl_lose_context').restorecontext(); errors thrown invalid_operation if the context was not lost.
... examples with this method, you can simulate the webglcontextrestored event: var canvas = document.getelementbyid('canvas'); var gl = canvas.getcontext('webgl'); canvas.addeventlistener('webglcontextrestored', function(e) { console.log(e); }, false); gl.get
extension('webgl_lose_context').restorecontext(); specifications specification status comment webgl_lose_contextthe definition of 'webgl_lose_context.losecontext' in that specification.
WebGL2RenderingContext.drawElementsInstanced() - Web APIs
note: when using webgl 1, the angle_instanced_arrays
extension can provide this method, too.
...possible values are: gl.unsigned_byte gl.unsigned_short when using the oes_element_index_uint
extension: gl.unsigned_int offset a glintptr specifying an offset in the element array buffer.
WebGLRenderingContext.blendEquationSeparate() - Web APIs
must be either: gl.func_add: source + destination (default value), gl.func_subtract: source - destination, gl.func_reverse_subtract: destination - source, when using the ext_blend_minmax
extension: ext.min_ext: minimum of source and destination, ext.max_ext: maximum of source and destination.
...must be either: gl.func_add: source + destination (default value), gl.func_subtract: source - destination, gl.func_reverse_subtract: destination - source, when using the ext_blend_minmax
extension: ext.min_ext: minimum of source and destination, ext.max_ext: maximum of source and destination.
WebGLRenderingContext.framebufferTexture2D() - Web APIs
_attachment2 gl.color_attachment3 gl.color_attachment4 gl.color_attachment5 gl.color_attachment6 gl.color_attachment7 gl.color_attachment8 gl.color_attachment9 gl.color_attachment10 gl.color_attachment11 gl.color_attachment12 gl.color_attachment13 gl.color_attachment14 gl.color_attachment15 when using the webgl_draw_buffers
extension: ext.color_attachment0_webgl (same as gl.color_attachment0) ext.color_attachment1_webgl ext.color_attachment2_webgl ext.color_attachment3_webgl ext.color_attachment4_webgl ext.color_attachment5_webgl ext.color_attachment6_webgl ext.color_attachment7_webgl ext.color_attachment8_webgl ext.color_attachment9_webgl ext.color_attachment10_webgl ...
... ext.color_attachment11_webgl ext.color_attachment12_webgl ext.color_attachment13_webgl ext.color_attachment14_webgl ext.color_attachment15_webgl when using the webgl_depth_texture
extension: gl.depth_stencil_attachment: depth and stencil buffer data storage.
WebGLRenderingContext.texImage2D() - Web APIs
when using the webgl_depth_texture
extension: gl.depth_component gl.depth_stencil when using the ext_srgb
extension: ext.srgb_ext ext.srgb_alpha_ext when using a webgl 2 context, the following values are available additionally: gl.r8 gl.r16f gl.r32f gl.r8ui gl.rg8 gl.rg16f gl.rg32f gl.rg8ui gl.rg16ui gl.rg32ui gl.rgb8 gl.srgb8 gl.rgb565 gl.
... when using the webgl_depth_texture
extension: gl.unsigned_short gl.unsigned_int ext.unsigned_int_24_8_webgl (constant provided by the
extension) when using the oes_texture_float
extension: gl.float when using the oes_texture_half_float
extension: ext.half_float_oes (constant provided by the
extension) when using a webgl 2 context, the following values are available additionally: ...
WebGLRenderingContext.texSubImage2D() - Web APIs
when using the ext_srgb
extension: ext.srgb_ext ext.srgb_alpha_ext when using a webgl 2 context, the following values are available additionally: gl.red gl.rg gl.red_integer gl.rg_integer gl.rgb_integer gl.rgba_integer type a glenum specifying the data type of the texel data.
... when using the oes_texture_float
extension: gl.float when using the oes_texture_half_float
extension: gl.half_float_oes when using a webgl 2 context, the following values are available additionally: gl.byte gl.unsigned_short gl.short gl.unsigned_int gl.int gl.half_float gl.float gl.unsigned_int_2_10_10_10_rev gl.unsigned_int_10f_11f_11f_rev gl.unsigned_int_5_9_9_9_rev gl.unsigned_int_24_8 gl.float_32_unsigned_int_24_8...
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.
... webglrenderingcontext.get
extension() returns an
extension object.
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.
How to check the security state of an XMLHTTPRequest over SSL - Web APIs
notes: this code requires elevated privileges to run; you can only call it from a browser
extension or from a xulrunner application.
... by setting the mozbackgroundrequest property of the request object and modifying the example appropriately, you can create your own alert dialog to handle ssl exceptions in your firefox
extension or xulrunner application.
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.
... landmarks browser
extension specifications specification status accessible rich internet applications (wai-aria) 1.1the definition of 'aria: complementary role' in that specification.
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.
... landmarks browser
extension specifications specification status accessible rich internet applications (wai-aria) 1.1the definition of 'contentinfo landmark role' in that specification.
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.
... landmarks browser
extension specifications specification status accessible rich internet applications (wai-aria) 1.1the definition of 'aria form role' in that specification.
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.
... landmarks browser
extension specifications specification status accessible rich internet applications (wai-aria) 1.1the definition of 'aria navigtion role' in that specification.
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.
... landmarks browser
extension specifications specification status accessible rich internet applications (wai-aria) 1.1the definition of 'aria navigtion role' in that specification.
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.
... landmarks browser
extension specifications specification status accessible rich internet applications (wai-aria) 1.1the definition of 'aria region role' in that specification.
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.
... landmarks browser
extension specifications specification status accessible rich internet applications (wai-aria) 1.1the definition of 'aria search role' in that specification.
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).
-webkit-transform-3d - CSS: Cascading Style Sheets
the -webkit-transform-3d boolean css media feature is a chrome
extension whose value is true if vendor-prefixed css 3d transforms are supported.
... living standard initial standardization safari css reference 'media query
extensions' in that document.
<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.
list-style-type - CSS: Cascading Style Sheets
non-standard
extensions a few more predefined types are provided by mozilla (firefox), blink (chrome and opera) and webkit (safari) to support list types in other languages.
... see the compatibility table to check which browsers supports which
extension.
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.
...apple uses the .m3u8 format (an
extension of its .m3u playlist format) for index files — see below for an example: #ext-x-version:3 #extm3u #ext-x-targetduration:10 #ext-x-media-sequence:1 # old-style integer duration; avoid for newer clients.
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.
Index - Developer guides
22 mutation events advanced, dom, guide mutation events provide a mechanism for a web page or an
extension to get notified about changes made to the dom.
... 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.
<input type="tel"> - HTML: Hypertext Markup Language
autocorrect a safari
extension, the autocorrect attribute is a string which indicates whether or not to activate automatic correction while the user is editing this field.
... mozactionhint a mozilla
extension, supported by firefox for android, which provides a hint as to what sort of action will be taken if the user presses the enter or return key while editing the field.
<input type="text"> - HTML: Hypertext Markup Language
autocorrect a safari
extension, the autocorrect attribute is a string which indicates whether or not to activate automatic correction while the user is editing this field.
... mozactionhint a mozilla
extension, supported by firefox for android, which provides a hint as to what sort of action will be taken if the user presses the enter or return key while editing the field.
<input type="url"> - HTML: Hypertext Markup Language
autocorrect a safari
extension, the autocorrect attribute is a string which indicates whether or not to activate automatic correction while the user is editing this field.
... mozactionhint a mozilla
extension, supported by firefox for android, which provides a hint as to what sort of action will be taken if the user presses the enter or return key while editing the field.
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.
Microdata - HTML: Hypertext Markup Language
localization in some cases, search engines covering specific regions may provide locally-specific
extensions of microdata.
...this
extension was made to solve transliteration problems between the cyrillic and latin alphabets.
Common MIME types - HTTP
here is a list of mime types, associated by type of documents, ordered by their common
extensions.
...this table lists some important mime types for the web:
extension kind of document mime type .aac aac audio audio/aac .abw abiword document application/x-abiword .arc archive document (multiple files embedded) application/x-freearc .avi avi: audio video interleave video/x-msvideo .azw amazon kindle ebook format application/vnd.amazon.ebook .bin any kind of binary da...
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.
Expect-CT - HTTP
ct requirements can be satisfied via any one of the following mechanisms: x.509v3 certificate
extension to allow embedding of signed certificate timestamps issued by individual logs a tls
extension of type signed_certificate_timestamp sent during the handshake supporting ocsp stapling (that is, the status_request tls
extension) and providing a signedcertificatetimestamplist when a site enables the expect-ct header, they are requesting that the browser check that any certificate for that site appears in public ct logs.
... specifications specification title internet draft expect-ct
extension for http ...
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.
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.
Intl.DateTimeFormat.prototype.resolvedOptions() - JavaScript
if any unicode
extension values were requested in the input bcp 47 language tag that led to this locale, the key-value pairs that were requested and are supported for this locale are included in locale.
..."gregory" numberingsystem the values requested using the unicode
extension keys "ca" and "nu" or filled in as default values.
Intl.Locale.prototype.maximize() - JavaScript
other subtags after the "-u" in the locale indentifier are called
extension subtags and are not affected by the maximize() method.
...// note that the
extension tags (after "-u") remain unchanged.
Intl.Locale.prototype.minimize() - JavaScript
other subtags after the "-u" in the locale indentifier are called
extension subtags and are not affected by the minimize() method.
...// note that the
extension tags (after "-u") remain unchanged.
Intl.NumberFormat.prototype.resolvedOptions() - JavaScript
if any unicode
extension values were requested in the input bcp 47 language tag that led to this locale, the key-value pairs that were requested and are supported for this locale are included in locale.
... numberingsystem the value provided for this properties in the options argument, if present, or the value requested using the unicode
extension key "nu" or filled in as a default.
Intl.RelativeTimeFormat.prototype.resolvedOptions() - JavaScript
if any unicode
extension values were requested in the input bcp 47 language tag that led to this locale, the key-value pairs that were requested and are supported for this locale are included in locale.
... numberingsystem the value requested using the unicode
extension key "nu" or filled in as a default.
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.
JavaScript shells - JavaScript
jsconsole.com -- an open-source javascript console with the ability to easily link to particular expressions javascript shell (web page) - also available as part of the
extension developer's
extension jash: javascript shell - a dhtml based shell that gives you command line access to a web page.
... execute js - (no longer maintained) - firefox-
extension which provides an enhanced javascript-console, where you can comfortably enter and execute arbitrary javascript-code and modify functions.
Web app manifests
.png", "sizes": "192x192", "type": "image/png" }], "related_applications": [{ "platform": "play", "url": "https://play.google.com/store/apps/details?id=cheeaun.hackerweb" }] } deploying a manifest web app manifests are deployed in your html pages using a <link> element in the <head> of a document: <link rel="manifest" href="/manifest.webmanifest"> note: the .webmanifest
extension is specified in the media type registration section of the specification (the response of the manifest file should return content-type: application/manifest+json).
... browsers generally support manifests with other appropriate
extensions like .json (content-type: application/json).
Authoring MathML - MathML
binary programs are not appropriate to integrate them in a mozilla
extension or xul application.
... wysiywg editors firemath is an
extension for firefox that provides a wysiwyg mathml editor.
<math> - MathML
you can achieve that easily by adding the .xhtml
extension to your local files.
... for apache servers you can configure your .htaccess file to map
extensions to the correct mime type.
Codecs used by WebRTC - Web media technologies
the first is the video orientation (cvo) header
extension to the rtp protocol.
...neither g.711.0 (lossless compression), g.711.1 (wideband capability), nor any other
extensions to the g.711 standard are mandated by webrtc.
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.
...not yet supported by webrtc, but an
extension to the webrtc api to allow svc is in development.
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 str...
... 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.
Specification Deviations - SVG: Scalable Vector Graphics
this page lists those deviations/
extensions and our reasoning for them.
...note that this
extension does not mean that we add a css::cssstyledeclaration 'style' property to the dom of elements that do not implement the svgstylable interface.
Certificate Transparency - Web security
this can be accomplished via a number of different mechanisms: x.509v3 certificate
extension which embeds signed certificate timestamps directly into the leaf certificate a tls
extension of type signed_certificate_timestamp sent during the handshake ocsp stapling (that is, the status_request tls
extension) and providing a signedcertificatetimestamplist with one or more scts with the x.509 certificate
extension, the included scts are decided by the issuing ca.
...the advantage is that the server operator can customise the ct log sources providing the scts sent via the tls
extension/stapled ocsp response.
<xsl:stylesheet> - XSLT: Extensible Stylesheet Language Transformations
syntax <xsl:stylesheet version="number" xmlns:xsl="http://www.w3.org/1999/xsl/transform" id="name"
extension-element-prefixes="list-of-names" exclude-result-prefixes="list-of-names"> entire stylesheet </xsl:stylesheet> required attributes version specifies the version of xslt required by this stylesheet.
...
extension-element-prefixes specifies a space-separated list of any namespace prefixes for
extension elements in this document.
Index - XSLT: Extensible Stylesheet Language Transformations
15 for further reading needscontent, needshelp, transforming_xml_with_xslt, xml, xslt http://www.amazon.com/xslt-programme.../dp/0764543814 16 resources
extensions, needscontent, needsexample, needslivesample, xml, xsl no summary!
... 31 <xsl:fallback> element, reference, xslt, fallback the <xsl:fallback> element specifies what template to use if a given
extension (or, eventually, newer version) element is not supported.
Reddit Example - Archive of obsolete content
this is the complete add-on script: var data = require("sdk/self").data; var button = require("sdk/ui/button/action").actionbutton({ id: "reddit-panel", label: "reddit panel", icon: "./icon-16.png", onclick: function() { reddit_panel.show(); } }); var reddit_panel = require("sdk/panel").panel({ width: 240, height: 320, contenturl: "http://www.reddit.com/.mobile?keep_
extension=true", contentscriptfile: [data.url("jquery-2.1.0.min.js"), data.url("panel.js")] }); reddit_panel.port.on("click", function(url) { require("sdk/tabs").open(url); }); this code supplies two content scripts to the panel's constructor in the contentscriptfile option: the jquery library and the script that intercepts link clicks.
panel - Archive of obsolete content
opening a panel will close any panel created by the panel() constructor that is already open, even if that panel was opened by a different add-on sdk based
extension.
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 ...
Logging - Archive of obsolete content
but note that by default, calls to console.log() will not result in any output in the error console for any installed add-ons: this includes add-ons installed using the add-on builder or using tools like the
extension auto-installer.
Bookmarks - Archive of obsolete content
// an nsinavbookmarkobserver var myext_bookmarklistener = { onbeginupdatebatch: function() {}, onendupdatebatch: function() {}, onitemadded: function(aitemid, afolder, aindex) {}, onitemremoved: function(aitemid, afolder, aindex) {}, onitemchanged: function(abookmarkid, aproperty, aisannotationproperty, avalue) { my
extension.dosomething(); }, onitemvisited: function(abookmarkid, avisitid, time) {}, onitemmoved: function(aitemid, aoldparent, aoldindex, anewparent, anewindex) {}, queryinterface: xpcomutils.generateqi([components.interfaces.nsinavbookmarkobserver]) }; // an
extension var my
extension = { // this function is called when my add-on is loaded onload: function() { bmsvc.addobserver(myext_bookm...
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.
Running applications - Archive of obsolete content
var file = components.classes["@mozilla.org/file/local;1"] .createinstance(components.interfaces.nsilocalfile); file.initwithpath("c:\\myapp.exe"); file.launch(); references nsiprocess nsilocalfile if you need to launch an executable bundled in your xpi, see code snippets:file i/o#getting your
extension's folder.
JavaScript Daemons Management - Archive of obsolete content
advantages of this approch: abstraction passage of this object to javascript timers (both setinterval and settimeout) optimisation (avoiding closures) modularity the code the code of this framework is split into three files: daemon.js (the core) daemon-safe.js (an
extension of the core which adds a replacement of setinterval with a recursive invocation of settimeout) daemon-methods.js (a wide and highly scalable collection of methods) the only independent module is daemon.js: both the daemon-safe.js module and the daemon-methods.js module require daemon.js to work.
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 ...
PyDOM - Archive of obsolete content
related topics pyxpcom: create and use xpcom components with python python-spidermonkey pydom samples: sample applications that use pydom pythonext: a firefox/xulrunner
extension that can be used to install pydom ...
Remote XUL - Archive of obsolete content
the remote xul manager
extension lets you manage this whitelist, which is maintained using nsipermissionmanager, by creating entries of type "allowxulxbl", like this: components.classes["@mozilla.org/permissionmanager;1"] .getservice(components.interfaces.nsipermissionmanager) .add(uri, 'allowxulxbl', components.interfaces.nsipermissionmanager.allow_action); see using remote xul.
Supporting per-window private browsing - Archive of obsolete content
var os = components.classes["@mozilla.org/observer-service;1"] .getservice(components.interfaces.nsiobserverservice); os.addobserver(function (asubject, atopic, adata) { asubject.queryinterface(components.interfaces.nsisupportsprbool); // if another
extension has not already canceled entering the private mode if (!asubject.data) { /* you should display some user interface here */ asubject.data = true; // cancel the operation } }, "last-pb-context-exiting", false); forcing a channel into private mode usually, network channels inherit the privacy status of the document that created them, which means that they work correctly most of th...
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.
XML in Mozilla - Archive of obsolete content
wsdl (no longer supported) w3c note web services xbl mozilla's xbl reference xul mozilla's xul reference roadmap next big tasks would include support for xpointer xpointer() scheme (bug 32832), xinclude (bug 201754), xml catalogs (bug 98413), xforms (bug 97806; work being done on implementing this as an
extension), validating parser (bug 196355) and xml schemas.
Install script template - Archive of obsolete content
errorcode="+myregstatus); return myregstatus; } // write the suffix (
extension), (one value-key with no value) myregstatus = winreg.setvaluestring(suffixpath, suffix, "\0"); if (myregstatus != 0) { logcomment("moz registerplid: could not create the suffix value.
getFolder - Archive of obsolete content
: "chrome" "components" "current user" "defaults" "file:///" "os drive" "plugins" "preferences" "profile" "program" "temporary" "mac apple menu" "mac control panel" "mac desktop" "mac documents" "mac
extension" "mac fonts" "mac shutdown" "mac startup" "mac system" "mac trash" "mac preferences" "macosx default download" "macosx home" "macosx internet sites" "macosx local applications" "macosx local desktop" "macosx local documents" "macosx local frameworks" ...
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.
A XUL Bestiary - Archive of obsolete content
since any dynamic web development is dependent upon programmatic access to the web document (or xul interface), and since the dom is a standard and earlier notions of dynamic html were not, the term "dom" is used as a synonym for or instead of terms like "dynamic html" or "dhtml." the aom stands for the application object model, and is an
extension of the dom up into the interface defined in xul.
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.
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 ...
Commands - Archive of obsolete content
note that html also has a commands and controller system although you can't use it on unprivileged web pages, but you may use it from, for example, a browser
extension.
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 Remote XUL - Archive of obsolete content
the remote xul manager
extension lets you manage this whitelist, which is maintained using nsipermissionmanager, by creating entries of type "allowxulxbl", like this: components.classes["@mozilla.org/permissionmanager;1"] .getservice(components.interfaces.nsipermissionmanager) .add(uri, 'allowxulxbl', components.interfaces.nsipermissionmanager.allow_action); xul (pronounced like "zool"), which is short for xml-based user interface language, is an xml...
notificationbox - Archive of obsolete content
finding the current notification box within a firefox
extension, you can retrieve the current notification box for a specific tab by calling the global function getnotificationbox(): notifybox = chromewin.getnotificationbox(notifywindow) notifybox = getnotificationbox(notifywindow) // applies to current context's window object here, chromewin is the xul window (usually just window), and notifywindow is the web content window for the tab you want to find th...
preferences - Archive of obsolete content
examples <preferences> <preference id="pref_one" name="
extensions.my
extension.one" type="bool"/> <preference id="pref_two" name="
extensions.my
extension.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.my
extension.one" type="bool"/> ...
prefwindow - Archive of obsolete content
therefore, an example call to opensubdialog() would look like this: document.documentelement.opensubdialog("chrome://my
extension/content/options-sub.xul", "", null) issues when using prefpanes in prefwindow when you wish to put non-<prefpane> elements to prefwindow, you should place them after all of <prefpane>s.
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.
2006-11-10 - Archive of obsolete content
discussions developing an
extension like xmlhttprequest / nsidocument / mozilla_internal_api a discussion on how to develop an
extension similar to xmlhttprequest but for a different protocol than http, emulating the asynchronous aspect.
2006-11-24 - Archive of obsolete content
discussions tutorials: non c++ bindings for xpcom tutorials on how to interface with firefox using xpcom on a similar basis to how a developer can with internet explorer through it's com interface tutorals and references related to
extension development tutorials on developing
extensions which use the third party libraries for firefox references to mozilla api exposed javascript component + xmldocument not accessible a discussion on error: uncaught exception: permission denied to get property xmldocument.textcontent creating xpcom components a good discussion about "components.classes[cid] has no properties" error firefox http explanation about how firefox handles the http aspec...
2006-12-08 - Archive of obsolete content
saving binary data from nsixmlhttprequest a discussion on how to use nsixmlhttprequest object to query data from a url in an
extension implemented in javascript meetings none during this week.
Newsgroup summaries - Archive of obsolete content
formatmozilla.dev.apps.firefox-2006-09-29mozilla.dev.apps.firefox-2006-10-06mozilla.dev.apps.calendarmozilla.dev.tech.js-enginemozilla-dev-accessibilitymozilla-dev-apps-calendarmozilla-dev-apps-firefoxmozilla-dev-apps-thunderbirdmozilla-dev-buildsmozilla-dev-embeddingmozilla-dev-
extensionsmozilla-dev-i18nmozilla-dev-l10nmozilla-dev-planningmozilla-dev-platformmozilla-dev-qualitymozilla-dev-securitymozilla-dev-tech-js-enginemozilla-dev-tech-layoutmozilla-dev-tech-xpcommozilla-dev-tech-xul ...
The First Install Problem - Archive of obsolete content
example: [hkey_local_machine\software\mozillaplugins\]\@mycompany.com/myapplication,version=5.01\mimetypes\application/x-myapp] suffixes=app suffixes -- a subkey containing string values (reg_sz) representing all the suffixes (3 digit
extensions) supported by this module.
Atomic RSS - Archive of obsolete content
documentation selected articles atomic rss tim bray talks about using atom 1.0 as a micro format and
extension module for rss 2.0; keeping rss 2.0 as your sydication format but bringing in and using selected atom 1.0 elements.
RSS - Archive of obsolete content
atomic rss tim bray talks about using atom 1.0 as a micro format and
extension module for rss 2.0; keeping rss 2.0 as your sydication format but bringing in and using selected atom 1.0 elements.
install.rdf - Archive of obsolete content
copy the following text and paste it into a text file, then save that file as "install.rdf": <?xml version="1.0"?> <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"> <em:id>{themes_uuid}</em:id> <em:version>themes_version</em:version> <!-- target application this
extension can install into, with minimum and maximum supported versions.
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 4...
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 u...
Window.importDialog() - Archive of obsolete content
example var dialog = importdialog(null, "chrome://my
extension/content/dialog.xul", myobject); notes the xul passed to importdialog() is very similar to xul passed to window.opendialog(), with some limitations and caveats: only <dialog> top level elements are permitted.
XForms API Reference - Archive of obsolete content
interface exposing states about the bound instance node for a given control frozen interfaces nsixformsmodelelement the model interface experimental interfaces nsixformsdelegate the delegate interface for xforms:custom_controls nsixformsaccessors the accessors interface for xforms:custom_controls nsixformsnsmodelelement custom
extension(s) to the nsixformsmodelelement interface nsixformsnsinstanceelement custom
extension(s) to the instance element ...
XForms Styling - Archive of obsolete content
triggers use appearance="minimal" to be able to style buttons portability the mozilla xforms
extension is one of the few xforms processors which allow for styling of the xforms elements directly, using mostly standard css.
Web Standards - Archive of obsolete content
tools firebug
extension web developer
extension markup validation service (w3c) css validation service (w3c) examples mozilla 1.0 demos - showing off what can be done with web standards.
Gecko FAQ - Gecko Redirect 1
longdesc various metadata attributes: cite, datetime, lang, hreflang bidirectional text layout, which is only used in hebrew and arabic (ibm has begun work to add bidi support in a future release) style sheets css 1 - full support, except for: the application of styles to html column elements the ability to turn off author styles the names of certain mozilla
extension pseudo-classes lack the moz- prefix css 2 - partial support is expected and has already been built into gecko, including support for css2 positioning, but no commitment has been made to achieve a specific level of support dom level 0 level 1 core: full support making entityreferences available through dom1; per a provision of the dom1 spec for xml implementati...
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).
omni.ja (formerly omni.jar)
note: starting with firefox 10 and thunderbird 10, the file
extension .ja is used because windows system restore does not back up files with the .jar
extension, but it does back up .ja files.
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.
Links and Resources
html advanced validator (firefox
extension) by marc gueury this advanced html validator (based on w3c tidy and on opensp for sgml validation - just like w3c html validator) is a free, powerful, versatile, extended html validator.
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.
Browser chrome tests
the test file name must be prefixed with "browser_", and must have a file
extension of ".js".
Bugzilla
testopia - test case management
extension bugzilla.org - the project site wikipedia:bugzilla - general description of bugzilla (not specific to mozilla projects) bmo on wiki.mozilla.org - information about mozilla's customized bugzilla installation, including how to contribute to it tools bugzilla todos lists review and flag requests, patches to check in, unfulfilled requests you made of other people, and assigned bugs.
Creating MozSearch plugins
it should only be used if your intention is to distribute the search plugin packaged in a firefox
extension, or if you are creating plugins meant to be shipped by default in a firefox build.
Creating Sandboxed HTTP Connections
r) || aiid.equals(components.interfaces.nsichanneleventsink) || aiid.equals(components.interfaces.nsiprogresseventsink) || aiid.equals(components.interfaces.nsihttpeventsink) || aiid.equals(components.interfaces.nsistreamlistener)) return this; throw components.results.ns_nointerface; } }; quick note: storing the channel in a global (especially in an
extension) isn't a good idea, but was done to make the code easier to read.
Debugging on Windows
ways to start the debugger first of all, it's necessary to install a visual studio
extension to be able to follow child processes as they are created.
Debugging
reporting a performance problem ...using the gecko profiler
extension.
Makefile - variables
xpidl_name name of
extension to build see also configure.sh variables description build_project_arg command line/environment override configure_env_args command line/environment override directory variable dirs a list of subdirectories to build recursively.
Simple Thunderbird build
for example, to just rebuild the lightning calendar
extension: ./mach build comm/calendar/lightning for all other changes run the full rebuild: ./mach build problems building?
Gecko Logging
we rotate four log files with .0, .1, .2, .3
extensions.
Displaying Places information using views
the built-in views if you need to show the contents of bookmarks or history in your
extension or application, you may want to use the built-in places views, which are generic and will save you a lot of time writing basic functionality so that you can focus on building your
extension or application.
Error codes returned by Mozilla APIs
ns_error_xpath_parse_failure (0x80600002) ns_error_xpath_unknown_function (0x80600005) ns_error_xpath_bad_argument_count (0x8060000d) ns_error_xpath_bad_
extension_function (0x8060000e) ns_error_xpath_paren_expected (0x8060000f) ns_error_xpath_invalid_axis (0x80600010) ns_error_xpath_no_node_type_test (0x80600011) ns_error_xpath_bracket_expected (0x80600012) ns_error_xpath_invalid_var_name (0x80600013) ns_error_xpath_unexpected_end (0x80600014) ns_error_xpath_operator_expected (0x80600015) ns_error_xpath_unclosed_literal (0x8...
Multiple Firefox profiles
for example, you might want to have some
extensions installed for web development, but not for general-purpose web browsing.
Process scripts
if you do, you must call removedelayedprocessscript() when your
extension is disabled or removed the message-passing apis are the same: sendasyncmessage() is available in both directions, while sendsyncmessage() is available from content to chrome only process scripts are system-privileged, and have access to the components object.
Message manager
they are particularly useful for allowing chrome code, including the browser's code and
extension's code, to access web content while the browser is running web content in a separate process.
Translation phase
lightning lightning is a popular calendaring, scheduling and task management
extension.
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.
Fonts for Mozilla 2.0's MathML engine
the fonts may be installed by extracting the font files (which have the .otf
extension) from the zip archive, then following instructions for microsoft windows, or copying the files to a ~/library/fonts folder on mac os x, or to a ~/.fonts/ directory (which may need to be created) on unix/linux systems.
Mozilla DOM Hacking Guide
for the w3c dom (level 1, 2, 3) objects, for each object there is one "standards-compliant" interface, which is exactly the same as the w3c one, named nsidom<objectname>.idl, and a mozilla-specific
extension interface, named nsidomns<objectname>.idl, for compatibility with dom level 0.
Mozilla Web Developer FAQ
you can see the http headers sent by the server by using the livehttpheaders
extension or by using the web sniffer.
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).
GC and CC logs
on firefox for android you can use the cc-dump
extension to save the files to /sdcard.
Gecko Profiler FAQ
[ehsan] try clicking the toolbar icon for the
extension, expanding the settings section, and enter the secret cheat code “,” in the threads field and click on “apply (restart profiler)”.
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.
NSS Certificate Download Specification
if the certificates contain a basicconstraints certificate
extension that indicates they are ca certificates, and do not already exist in the local certificate database, they are added as untrusted cas.
Encrypt Decrypt MAC Keys As Session Objects
*/ infile = pr_open(infilename, pr_rdonly, 0); if (!infile) { pr_fprintf(pr_stderr, "unable to open \"%s\" for reading.\n", infilename); return secfailure; } pr_close(infile); /* for intermediate header file, choose filename as inputfile name with
extension ".header" */ strcpy(headerfilename, infilename); strcat(headerfilename, ".header"); /* for intermediate encrypted file, choose filename as inputfile name with
extension ".enc" */ strcpy(encryptedfilename, infilename); strcat(encryptedfilename, ".enc"); pr_init(pr_user_thread, pr_priority_normal, 0); switch (cmd) { case encrypt: /* if the intermedi...
Encrypt and decrypt MAC using token
*/ infile = pr_open(infilename, pr_rdonly, 0); if (!infile) { pr_fprintf(pr_stderr, "unable to open \"%s\" for reading.\n", infilename); return secfailure; } pr_close(infile); /* for intermediate header file, choose filename as inputfile name with
extension ".header" */ strcpy(headerfilename, infilename); strcat(headerfilename, ".header"); /* for intermediate encrypted file, choose filename as inputfile name with
extension ".enc" */ strcpy(encryptedfilename, infilename); strcat(encryptedfilename, ".enc"); pr_init(pr_user_thread, pr_priority_normal, 0); switch (cmd) { case encrypt: /* if the intermedi...
4.3.1 Release Notes
(default) sslsocket.ssl_renegotiate_unrestricted - renegotiate without restriction, whether or not the peer's client hello bears the renegotiation info
extension (like we always did in the past).
4.3 Release Notes
libpkix: an rfc 3280 compliant certificate path validation library (see pkixverify) pk11token.needslogin method (see needslogin) support hmacsha256, hmacsha384, and hmacsha512 (see hmactest.java) support for all nss 3.12 initialization options (see initializationvalues) new ssl error codes (see http://mxr.mozilla.org/security/sour...util/sslerrs.h) ssl_error_unsupported_
extension_alert ssl_error_certificate_unobtainable_alert ssl_error_unrecognized_name_alert ssl_error_bad_cert_status_response_alert ssl_error_bad_cert_hash_value_alert new tls cipher suites (see http://mxr.mozilla.org/security/sour...sslsocket.java): tls_rsa_with_camellia_128_cbc_sha tls_dhe_dss_with_camellia_128_cbc_sha tls_dhe_rsa_with_camellia_128_cbc_sha tls_rsa_...
NSS 3.12.4 release notes
bug 321755: implement crldistributionpoint
extension in libpkix bug 391434: avoid multiple encoding/decoding of pkix_pl_oid to and from ascii string bug 405297: problems building nss/lib/ckfw/capi/ with mingw gcc bug 420991: libpkix returns wrong nss error code bug 427135: add super-h (sh3,4) architecture support bug 431958: improve des and sha512 for x86_64 platform bug 433791: win16 support should be deleted from nss bug 449332: secu_parsecommand...
NSS 3.12.5 release_notes
ssl_renegotiate_unrestricted: renegotiate without restriction, whether or not the peer's client hello bears the renegotiation info
extension (as we always did in the past).
NSS 3.15.2 release notes
bug 884178 - add pk11_cipherfinal macro bugs fixed in nss 3.15.2 bug 734007 - sizeof() used incorrectly bug 900971 - nssutil_readsecmoddb() leaks memory bug 681839 - allow ssl_handshakenegotiated
extension to be called before the handshake is finished.
NSS 3.22.3 release notes
bugs fixed in nss 3.22.3 bug 1243641 - increase compatibility of tls extended master secret, don't send an empty tls
extension last in the handshake compatibility nss 3.22.3 shared libraries are backward compatible with all older nss 3.x shared libraries.
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.45 release notes
uld be marked as fips compatible bug 1555207 - helloretryrequestcallback return code for rejecting 0-rtt bug 1556591 - eliminate races in uses of pk11_setwrapkey bug 1558681 - stop using a global for anti-replay of tls 1.3 early data bug 1561510 - fix a bug where removing -arch xxx args from cc didn't work bug 1561523 - add a string for the new-ish error ssl_error_missing_post_handshake_auth_
extension this bugzilla query returns all the bugs fixed in nss 3.45: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&product=nss&target_milestone=3.45 compatibility nss 3.45 shared libraries are backward compatible with all older nss 3.x shared libraries.
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 3.51 release notes
bug 1611209 - correct swapped pkcs11 values of ckm_aes_cmac and ckm_aes_cmac_general bug 1612259 - complete integration of wycheproof ecdh test cases bug 1614183 - check if ppc __has_include(<sys/auxv.h>) bug 1614786 - fix a compilation error for ‘getfipsenv’ "defined but not used" bug 1615208 - send dtls version numbers in dtls 1.3 supported_versions
extension to avoid an incompatibility.
NSS 3.55 release notes
bug 1646324 - advertise pkcs#1 schemes for certificates in the signature_algorithms
extension.
NSS API Guidelines
it also provides general certificate-handling routines (create a certificate, verify, add/check certificate
extensions).
Encrypt Decrypt_MAC_Using Token
*/ infile = pr_open(infilename, pr_rdonly, 0); if (!infile) { pr_fprintf(pr_stderr, "unable to open \"%s\" for reading.\n", infilename); return secfailure; } pr_close(infile); /* for intermediate header file, choose filename as inputfile name with
extension ".header" */ strcpy(headerfilename, infilename); strcat(headerfilename, ".header"); /* for intermediate encrypted file, choose filename as inputfile name with
extension ".enc" */ strcpy(encryptedfilename, infilename); strcat(encryptedfilename, ".enc"); pr_init(pr_user_thread, pr_priority_normal, 0); switch (cmd) { case encrypt: /* if the intermedi...
NSS Sample Code Sample_3_Basic Encryption and MACing
*/ infile = pr_open(infilename, pr_rdonly, 0); if (!infile) { pr_fprintf(pr_stderr, "unable to open \"%s\" for reading.\n", infilename); return secfailure; } pr_close(infile); /* for intermediate header file, choose filename as inputfile name with
extension ".header" */ strcpy(headerfilename, infilename); strcat(headerfilename, ".header"); /* for intermediate encrypted file, choose filename as inputfile name with
extension ".enc" */ strcpy(encryptedfilename, infilename); strcat(encryptedfilename, ".enc"); pr_init(pr_user_thread, pr_priority_normal, 0); switch (cmd) { case encrypt: /* if the intermedi...
EncDecMAC using token object - sample 3
*/ infile = pr_open(infilename, pr_rdonly, 0); if (!infile) { pr_fprintf(pr_stderr, "unable to open \"%s\" for reading.\n", infilename); return secfailure; } pr_close(infile); /* for intermediate header file, choose filename as inputfile name with
extension ".header" */ strcpy(headerfilename, infilename); strcat(headerfilename, ".header"); /* for intermediate encrypted file, choose filename as inputfile name with
extension ".enc" */ strcpy(encryptedfilename, infilename); strcat(encryptedfilename, ".enc"); pr_init(pr_user_thread, pr_priority_normal, 0); switch (cmd) { case encrypt: /* if the intermediate header file already exists, delete it */ if (p...
NSS sources building testing
these can be found by looking at the files with the .def file
extension, inside the nss/lib directory hierarchy.
NSS cryptographic module
the nss cryptographic module uses the industry standard pkcs #11 v2.20 as its api with some
extensions.
NSS environment variables
[2|r|r]: ssl_renegotiate_requires_xtn (default) only allows renegotiation if the peer's hello bears the tls renegotiation_info
extension.
NSS reference
should a particular page require the use of an underscore, please see the documentation for the title override
extension.
Necko Architecture
mimetype - mime <-> file
extension mapping nkabout - about: protocol nkdata - data: protocol nkfile - file: protocol nkftp - ftp: protocol nkkeyword - keyword: protocol nkresrc - resource: protocol cnvts - stream converters stremcnv - stream converter service these libraries will change with time and illustrate the modularity of necko.
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.
Rhino scopes and contexts
a notion of a sealed object is a javascript
extension supported by rhino and it means that properties can not be added/deleted to the object and the existing object properties can not be changed.
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.
JSClass.flags
mxr id search for jsclass_has_private jsclass_private_is_nsisupports mozilla
extension.
JSGetObjectOps
further
extension to preserve api compatibility: if this function returns a pointer to jsxmlobjectops.base, not to jsobjectops, then the engine calls extended hooks needed for e4x.
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.
JS_SetOptions
mxr id search for jsoption_varobjfix jsoption_private_is_nsisupports mozilla
extension.
Shell global objects
issimdavailable returns true if simd
extensions are supported on this platform.
Exploitable crashes
microsoft released a debugger
extension tool in 2009 called "!exploitable".
Secure Development Guidelines
of(buf) - 1) return -1; } signedness issues: don’t mix signed and unsigned integers use unsigned integers for sizes, offsets, and indexes casting and truncation example: void vuln_funct() { u_int32_t size1 = 0xffffffff; u_int16_t size2 = size1; void *ptr = malloc(size2); if (!ptr) exit(exit_failure); memcpy(ptr, user_data, size1); } casting issues: sign
extension example: int main() { int32_t new_size = 0; int8_t size = 0xff; new_size = size; printf("0x%08x\r\n", new_size); } casting issues: sign
extension prevention be careful with signed integers use unsigned integers for sizes, offsets, and indexes denial of service: divide by zero example: int main() { int a, b; if (argc != 3) return 1; a = ...
Setting up an update server
update> </updates> if you've downloaded the mar you're using, you'll find the sha512 value in a file called sha512sums in the root of the release directory on archive.mozilla.org for a release or beta build (you'll have to search it for the file name of your mar, since it includes the sha512 for every file that's part of that release), and for a nightly build you'll find a file with a .checksums
extension adjacent to your mar that contains that information (for instance, for the mar file at https://archive.mozilla.org/pub/firefox/nightly/2019/09/2019-09-17-09-36-29-mozilla-central/firefox-71.0a1.en-us.win64.complete.mar, the file https://archive.mozilla.org/pub/firefox/nightly/2019/09/2019-09-17-09-36-29-mozilla-central/firefox-71.0a1.en-us.win64.checksums contains the sha512 for that file as well...
Implementation Details
under msaa/ia2, watch for event_hide under atk/at-spi, watch for children-changed:remove to help developers in that regard, there is memory leak monitor, a firefox
extension.
Feed content access API
firefox 2 and thunderbird 2 introduce a series of interfaces that make it easy for
extension authors to access rss and atom feeds.
History Service Design
this system provides additional performance, flexibility, and querying capabilities over the old one, for both end users and
extensions developers.
Manipulating bookmarks using Places
// an nsinavbookmarkobserver var myext_bookmarklistener = { onbeginupdatebatch: function() {}, onendupdatebatch: function() {}, onitemadded: function(aitemid, afolder, aindex) {}, onitemremoved: function(aitemid, afolder, aindex) {}, onitemchanged: function(abookmarkid, aproperty, aisannotationproperty, avalue) { my
extension.dosomething(); }, onitemvisited: function(abookmarkid, avisitid, time) {}, onitemmoved: function(aitemid, aoldparent, aoldindex, anewparent, anewindex) {}, queryinterface: xpcomutils.generateqi([components.interfaces.nsinavbookmarkobserver]) }; // an
extension var my
extension = { // this function is called when my add-on is loaded onload: function() { bmsvc.addobserver(myext_bookm...
nsIXMLHttpRequest
example code this is a simple example code for opening a simple http request from a xul application (like a mozilla
extension) without using observers: var req = components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createinstance(); req.open('post', "http://www.foo.bar:8080/nietzsche.do", true); req.send('your=data&and=more&stuff=here'); example 2 var {cu: utils, cc: classes, ci: instances} = components; cu.import('resource://gre/modules/services.jsm'); function xhr(url, cb) { let xhr = cc["@mozilla.
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.
nsIZipWriter
this example is also a good of example of the in autf8string azipentry argument of addentryfile and how it is used, this entry is very important, it is basically what to save the file as in the zip, you can take a file "blah.exe" and make it save in the zip as "hi and no
extension".
XPCOM reference
the contents herein are oriented primarily toward
extension developers and people embedding xpcom in other projects.
The Thread Manager
application/
extension javascript should consider using a chromeworker instead.") interfaces there are several interfaces that provide threading support: nsithreadmanager the thread manager itself lets you create threads.
Using nsIPasswordManager
working with password manager
extensions often need to securely store passwords to external sites, web applications, and so on.
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.
pyxpidl
yi) n/a (feature removed) -t creates a typelib of a specific version number n/a (feature removed, and probably never actually worked) -i add an entry to start of include path for #include "nsifoo.idl" -i (unchanged) -o specify the base name for output (-o /tmp/nsifoo for example) -o outputfile (this isn't just the base name, but needs to include the
extension; for example -o /tmp/nsifoo.idl) -e specify an explicit output file name (-e /tmp/nsifoo.idl for example) n/a (this is subsumed by -o now) -d write dependencies (requires -e) -d (unchanged) -m specify output mode n/a (feature removed; use header.py or typelib.py specifically) it's worth noting that the old output mode options for generating docu...
Activity Manager examples
adding a fully customized activity in complex scenarios,
extensions might implement their own version of the nsiactivityprocess, nsiactivitywarning and nsiactivityevent interfaces.
Use SQLite
if you'd like to use an sqlite database in your
extension you'll need to look over the storage docs for an api reference, however this code should get you started.
Thunderbird
thunderbird api documentation thunderbird api documentation
extension documentation tutorials and tips for building thunderbird
extensions view all...
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-virtua...
WebIDL bindings
an
extension poking at non-secured dom objects will see apis marked with [securecontext].
Using js-ctypes
we see that it needs to be defined like this: int winapi messagebox( _in_opt_ hwnd hwnd, _in_opt_ lpctstr lptext, _in_opt_ lpctstr lpcaption, _in_ uint utype ); so we read this article here on defining types and replicate it: declaring types var lib = ctypes.open("user32.dll"); or even without the
extension.
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_getproper...
Introduction to DOM Inspector - Firefox Developer Tools
the dom inspector is a mozilla
extension that you can access from the tools > web development menu in seamonkey, or by selecting the dom inspector menu item from the tools menu in firefox and thunderbird, or by using ctrl/cmd+shift+i in either application.
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
n you open the application panel’s manifest view on a page that doesn't have an app manifest successfully deployed, you'll get the following output shown: deploying a manifest 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).
Storage Inspector - Firefox Developer Tools
working with the storage inspector the following articles cover different aspects of using the network monitor: cookies local storage / session storage cache storage indexeddb
extension storage ...
Validators - Firefox Developer Tools
firefox
extensions for validation quick reference sidebar tabs install devedge toolbox sidebars for quick access to web development references.
ANGLE_instanced_arrays.drawArraysInstancedANGLE() - Web APIs
examples var ext = gl.get
extension('angle_instanced_arrays'); ext.drawarraysinstancedangle(gl.points, 0, 8, 4); specifications specification status comment angle_instanced_arraysthe definition of 'angle_instanced_arrays' in that specification.
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 valid...
Content Index API - Web APIs
the content index api is an
extension to service workers, which allows developers to add urls and metadata of already cached pages, under the scope of the current service worker.
DOMParser - Web APIs
domparser html
extension /* * domparser html
extension * 2012-09-04 * * by eli grey, http://eligrey.com * public domain.
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 ...
Navigator.clipboard - Web APIs
perhaps this code is being used in a browser
extension that displays the current clipboard contents, automatically updating periodically or when specific events fire.
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.
RTCDataChannel: error event - Web APIs
if (err.sentalert) { console.error(" sent dlts failure alert: ", err.receivedalert); } break; } // add source file name and line information console.error(" error in file ", err.filename, " at line ", err.linenumber, ", column ", err.columnnumber); }, false); the received event provides details in an rtcerror object called error; rtcerror is an
extension of the domexception interface.
RTCIceCandidate.usernameFragment - Web APIs
this avoids crosstalk among multiple ongoing ice sessions, but, more importantly, helps secure ice transactions (and all of webrtc by
extension) against attacks that might try to inject themselves into an ice exchange.
RTCPeerConnection.addTransceiver() - Web APIs
syntax rtptransceiver = rtcpeerconnection.addtransceiver(trackorkind, init); parameters trackorkind a mediastreamtrack to associate with the transceiver, or a domstring which is used as the kind of the receiver's track, and by
extension of the rtcrtpreceiver itself.
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 ...
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 concepts - Web APIs
which underlying stream (and by
extension, reader and controller) your code will use depends on how the stream was created in the first place (see the readablestream() constructor page).
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.
TextEncoder.prototype.encodeInto() - Web APIs
len) len=u8arrlen; putchars: for (; i<len; i=i+1|0) { char = encodedstring.charcodeat(i) |0; switch(char >>> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: read = read + 1|0; //
extension points: case 8: case 9: case 10: case 11: break; case 12: case 13: if ((i+1|0) < u8arrlen) { read = read + 1|0; break; } case 14: if ((i+2|0) < u8arrlen) { ...
TypeInfo - Web APIs
constants constant value derivation_restriction 1 derivation_
extension 2 derivation_union 4 derivation_list 8 specifications specification status comment document object model (dom) level 3 core specificationthe definition of 'typeinfo' in that specification.
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.
WEBGL_compressed_texture_astc.getSupportedProfiles() - Web APIs
examples var ext = gl.get
extension('webgl_compressed_texture_astc'); ext.getsupportedprofiles(); // ["ldr"] specifications specification status comment webgl_compressed_texture_astcthe definition of 'webgl_compressed_texture_astc' in that specification.
WEBGL_lose_context.loseContext() - Web APIs
syntax gl.get
extension('webgl_lose_context').losecontext(); examples with this method, you can simulate the webglcontextlost event: var canvas = document.getelementbyid('canvas'); var gl = canvas.getcontext('webgl'); canvas.addeventlistener('webglcontextlost', function(e) { console.log(e); }, false); gl.get
extension('webgl_lose_context').losecontext(); // webglcontextevent event with type "webglcontextlost" is logged.
WebGL2RenderingContext - Web APIs
to get an object of this interface, call getcontext() on a <canvas> element, supplying "webgl2" as the argument: var canvas = document.getelementbyid('mycanvas'); var gl = canvas.getcontext('webgl2'); webgl 2 is an
extension to webgl 1.
WebGLContextEvent - Web APIs
examples with the help of the webgl_lose_context
extension, you can simulate the webglcontextlost and webglcontextrestored events: var canvas = document.getelementbyid('canvas'); var gl = canvas.getcontext('webgl'); canvas.addeventlistener('webglcontextlost', function(e) { console.log(e); }, false); gl.get
extension('webgl_lose_context').losecontext(); // webglcontextevent event with type "webglcontextlost" is logged.
WebGLQuery - Web APIs
disjoint timer queries are available with the ext_disjoint_timer_query
extension only.
WebGLRenderingContext.blendEquation() - Web APIs
must be either: gl.func_add: source + destination, gl.func_subtract: source - destination, gl.func_reverse_subtract: destination - source when using the ext_blend_minmax
extension: ext.min_ext: minimum of source and destination, ext.max_ext: maximum of source and destination.
WebGLRenderingContext.checkFramebufferStatus() - Web APIs
when using the ovr_multiview2
extension, the following value can be returned additionally: ext.framebuffer_incomplete_view_targets_ovr: if baseviewindex is not the same for all framebuffer attachment points where the value of framebuffer_attachment_object_type is not none, the framebuffer is considered incomplete.
WebGLRenderingContext.drawElements() - Web APIs
possible values are: gl.unsigned_byte gl.unsigned_short when using the oes_element_index_uint
extension: gl.unsigned_int offset a glintptr specifying a byte offset in the element array buffer.
WebGLRenderingContext.framebufferRenderbuffer() - Web APIs
_attachment2 gl.color_attachment3 gl.color_attachment4 gl.color_attachment5 gl.color_attachment6 gl.color_attachment7 gl.color_attachment8 gl.color_attachment9 gl.color_attachment10 gl.color_attachment11 gl.color_attachment12 gl.color_attachment13 gl.color_attachment14 gl.color_attachment15 when using the webgl_draw_buffers
extension: ext.color_attachment0_webgl (same as gl.color_attachment0) ext.color_attachment1_webgl ext.color_attachment2_webgl ext.color_attachment3_webgl ext.color_attachment4_webgl ext.color_attachment5_webgl ext.color_attachment6_webgl ext.color_attachment7_webgl ext.color_attachment8_webgl ext.color_attachment9_webgl ext.color_attachment10_webgl ...
WebGLRenderingContext.hint() - Web APIs
when using the oes_standard_derivatives
extension: ext.fragment_shader_derivative_hint_oes: accuracy of the derivative calculation for the glsl built-in functions: dfdx, dfdy, and fwidth.
WebGLVertexArrayObject - Web APIs
when working with webglvertexarrayobject objects, the following methods are useful: webgl2renderingcontext.createvertexarray() webgl2renderingcontext.deletevertexarray() webgl2renderingcontext.isvertexarray() webgl2renderingcontext.bindvertexarray() webgl 1: the oes_vertex_array_object
extension allows you to use vertex array objects in a webgl 1 context.
WebGL model view projection - Web APIs
view matrix while some graphics libraries have a virtual camera that can be positioned and pointed while composing a scene, opengl (and by
extension webgl) does not.
WebRTC connectivity - Web APIs
a rollback restores the sdp offer (and the connection configuration by
extension) to the configuration it had the last time the connection's signalingstate was stable.
WebRTC API - Web APIs
establishment (ice): a protocol for network address translator (nat) traversal for offer/answer protocol session traversal utilities for nat (stun) uri scheme for the session traversal utilities for nat (stun) protocol traversal using relays around nat (turn) uniform resource identifiers an offer/answer model with session description protocol (sdp) session traversal utilities for nat (stun)
extension for third party authorization webrtc statistics webrtc statistics api specifications specification status comment webrtc 1.0: real-time communication between browsers candidate recommendation the initial definition of the api of webrtc.
WebSocket.send() - Web APIs
note: gecko's implementation of the send() method differs somewhat from the specification in gecko 6.0; gecko returns a boolean indicating whether or not the connection is still open (and, by
extension, that the data was successfully queued or transmitted); this is corrected in gecko 8.0.
Fundamentals of WebXR - Web APIs
opengl (and thus webgl by
extension) does not directly offer a camera view, using a library that simulates one on your behalf can make your job much, much easier, especially when building code that allows free movement through your virtual world.
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 reques...
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 ...
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?
-moz-orient - CSS: Cascading Style Sheets
though submitted to the w3c, with positive initial feedback, this property is not yet part of any specification; currently, this is a mozilla-specific
extension (that is, -moz-orient).
:-moz-focusring - CSS: Cascading Style Sheets
the :-moz-focusring css pseudo-class is a mozilla
extension that is similar to the :focus pseudo-class, but it only matches an element if it's currently focused and a focus ring or other indicator should be drawn around it.
exsl:object-type() - EXSLT
this function lets authors of named templates and
extension functions easily provide flexibility in parameter values.
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 reques...
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.
Event developer guide - Developer guides
these are special movements that can be made with a mouse or trackpad and can be interpreted to perform specific tasks.mutation eventsmutation events provide a mechanism for a web page or an
extension to get notified about changes made to the dom.
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.
<a>: The Anchor element - HTML: Hypertext Markup Language
can be used with or without a value: without a value, the browser will suggest a filename/
extension, generated from various sources: the content-disposition http header the final segment in the url path the media type (from the (content-type header, the start of a data: url, or blob.type for a blob: url) defining a value suggests it as the filename.
<img>: The Image Embed element - HTML: Hypertext Markup Language
abbreviation file format mime type file
extension(s) browser compatibility apng animated portable network graphics image/apng .apng chrome, edge, firefox, opera, safari bmp bitmap file image/bmp .bmp chrome, edge, firefox, internet explorer, opera, safari gif graphics interchange format image/gif .gif chrome, edge, firefox, internet explorer, opera, safari ico micr...
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.
Content negotiation - HTTP
even with the client hints
extension, it has not a complete knowledge of the capabilities of the browser.
Using HTTP cookies - HTTP
third-party cookies (or just tracking cookies) may also be blocked by other browser settings or
extensions.
Feature-Policy - HTTP
encrypted-media controls whether the current document is allowed to use the encrypted media
extensions api (eme).
Forwarded - HTTP
x-forwarded-for: 123.34.567.89 forwarded: for=123.34.567.89 x-forwarded-for: 192.0.2.43, "[2001:db8:cafe::17]" forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]" specifications specification title rfc 7239, section 4: forwarded forwarded http
extension ...
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).
Public-Key-Pins - HTTP
specifications specification title rfc 7469, section 2.1: public-key-pins public key pinning
extension for http ...
BigInt.prototype.toLocaleString() - JavaScript
d for thousands console.log(bigint.tolocalestring('de-de')); // → 123.456.789.123.456.789 // arabic in most arabic speaking countries uses eastern arabic digits console.log(bigint.tolocalestring('ar-eg')); // → ١٢٣٬٤٥٦٬٧٨٩٬١٢٣٬٤٥٦٬٧٨٩ // india uses thousands/lakh/crore separators console.log(bigint.tolocalestring('en-in')); // → 1,23,45,67,89,12,34,56,789 // the nu
extension key requests a numbering system, e.g.
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.
Intl.Locale() constructor - JavaScript
examples basic usage at its very simplest, the intl.locale constructor takes a locale identifier string as its argument: let us = new intl.locale('en-us'); using the locale constructor with an options object the constructor also takes an optional configuration object argument, which can contain any of several
extension types.
Intl.NumberFormat - JavaScript
and period for thousands console.log(new intl.numberformat('de-de').format(number)); // → 123.456,789 // arabic in most arabic speaking countries uses real arabic digits console.log(new intl.numberformat('ar-eg').format(number)); // → ١٢٣٤٥٦٫٧٨٩ // india uses thousands/lakh/crore separators console.log(new intl.numberformat('en-in').format(number)); // → 1,23,456.789 // the nu
extension key requests a numbering system, e.g.
Number.prototype.toLocaleString() - JavaScript
// german uses comma as decimal separator and period for thousands console.log(number.tolocalestring('de-de')); // → 123.456,789 // arabic in most arabic speaking countries uses eastern arabic digits console.log(number.tolocalestring('ar-eg')); // → ١٢٣٤٥٦٫٧٨٩ // india uses thousands/lakh/crore separators console.log(number.tolocalestring('en-in')); // → 1,23,456.789 // the nu
extension key requests a numbering system, e.g.
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.
import - JavaScript
certain bundlers may permit or require the use of the
extension; check your environment.
MathML
to force mathjax to use native mathml, try this mozilla add-on, this safari
extension or this greasemonkey script.
Web audio codec guide - Web media technologies
when mp3-format audio is stored inside an mpeg container, the resulting file is also referred to as just an "mp3 file" or simply "mp3." files with the ubiquitous .mp3
extension are stored in what is perhaps the most widely distributed audio file format in the world, which is in large part responsible for the digital audio revolution of the late 1990s and early 2000s.
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.
Progressive web apps (PWAs)
pwa vs code
extension - a collection of all essential code snippets you need to build progressive web apps right there in your vs code environment.
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, stro...
<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, s...
<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, str...
<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 follo...
<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, str...
<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-dasho...
<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, str...
<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, str...
<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 a...
<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, str...
<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 ...
<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, str...
<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, str...
<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, str...
<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-dasho...
<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, str...
<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, str...
<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, str...
<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, str...
SVG: Scalable Vector Graphics
some real eye-candy svg at svg-wow.org firefox
extension (grafox) to add a subset of smil animation support interactive photos manipulation html transformations using svg's foreignobject mapping, charting, games & 3d experiments while a little svg can go a long way to enhanced web content, here are some examples of heavy svg usage.
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.
Resources - XSLT: Extensible Stylesheet Language Transformations
xsl results firefox
extension (presently awaiting review) - allows one to experiment with xsl, by applying xsl stylesheets (which are manually entered, found via a url or on the file-system) to an xml document (the currently-loaded document or a manually entered/pasted one).
Web technology for developers
code snippets this is a quick list of useful code snippets (small code samples) available for developers of
extensions for the various mozilla applications.