Search completed in 1.26 seconds.
232 results for "Add-ons":
Your results are loading. Please wait...
Appendix C: Avoiding using eval in Add-ons - Archive of obsolete content
using eval in add-ons is almost always unnecessary, and many times even a security vulnerability.
... this article is aimed at presenting alternatives to common eval uses in add-ons and other javascript code.
... add-on authors are strongly encouraged to update their code to eliminate all instances of eval, no matter if the add-on is to be hosted in the mozilla add-ons gallery or not.
...And 5 more matches
Add-ons - Archive of obsolete content
archived add-ons documentation.
... add-on sdk using the add-on sdk, you can create firefox add-ons.
... you can use various standard web technologies: javascript, html, and css, to create the add-ons.
...And 4 more matches
Add-ons
add-ons allow developers to extend and modify the functionality of firefox.
... 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.
...other toolsets, such as overlay add-ons, bootstrapped add-ons, and the add-on sdk, are no longer supported.
...And 3 more matches
Developing add-ons - Archive of obsolete content
mozilla based software is typically extensible through add-ons.
... this page will help guide you to the information you need in order to create add-ons for firefox, thunderbird, or other software based on the mozilla platform, as well as how to distribute your add-ons.
... add-ons topics submitting an add-on to amo provides helpful information for add-on developers to help them properly package and deliver their add-ons.
... addons.mozilla.org (amo) api developers' guide the amo developers' guide describes how to use the amo api to fetch information about add-ons from the addons.mozilla.org site.
Migrating raw components to add-ons - Archive of obsolete content
components added in this way are invisible to users and cannot be managed through the firefox add-ons manager.
...as you'll see, add-ons give you much more flexibility than simply loading a component, but in order to get started, all you'll need is your directory structure and install manifest.
...if you would like to install firefox add-ons in an automated, programmatic way, we have documented a set of best practices.
Access debugging in add-ons - Firefox Developer Tools
we are planning to deprecate the use by firefox add-ons of the techniques described in this document.
... don't write new add-ons that use these techniques.
Add-ons - Firefox Developer Tools
developer tools that are not built into firefox, but ship as separate add-ons.
Index - Archive of obsolete content
9 add-ons add-ons, archive, extensions archived add-ons documentation.
... 13 content scripts add-on sdk many add-ons need to access and modify the content of web pages.
...instead, sdk add-ons need to factor the code that gets access to web content into separate scripts that are called content scripts.
...And 160 more matches
Index
MozillaTechXPCOMIndex
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.
... 8 generating guids add-ons, developing mozilla, developing_mozilla:tools, extensions, tools, xpcom 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.
...And 24 more matches
AddonManager
the addonmanager object is the global api used to access information about add-ons installed in the application and to manipulate them.
... autoupdatedefault boolean whether add-ons should auto-update by default (overrideable per add-on).
...starting in firefox 8, you can also set the value of the preference extensions.autodisabledscopes to prevent firefox from automatically installing add-ons from the specified scopes.
...And 15 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, webextension, 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, webextensions, distribution, publication, reviews, signing add-ons need to be signed before they can be installed into release and beta versions of firefox.
...And 11 more matches
Index - Archive of obsolete content
ArchiveMozillaXULIndex
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 10 more matches
Install Manifests - Archive of obsolete content
firefox 1.5 has checking to ensure that your id falls into one format or the other and will refuse to install add-ons that have malformed ids.
...if you do not provide an id, the add-ons site will generate an id for your add-on automatically.
... examples <em:version>2.0</em:version> <em:version>1.0.2</em:version> <em:version>0.4.1.2005090112</em:version> firefox 1.5 / xulrunner 1.8 - add-ons that do not use a valid version format will not be installed.
...And 9 more matches
Appendix A: Add-on Performance - Archive of obsolete content
add-ons can have a noticeable performance impact on firefox.
... this is evident when opening a firefox profile that has many add-ons installed; some profiles can take minutes to load, which is a serious inconvenience for users that gives them a negative view of firefox.
... add-on developers need to make sure that they minimize their add-ons' performance impact, and here are a few simple guidelines that should be followed to achieve that.
...And 9 more matches
jpm - Archive of obsolete content
jpm is a command-line tool that enables you to test, run, and package add-ons.
... install a different version of firefox as of firefox 48, it is not possible to use unsigned add-ons (i.e.
... jpm xpi package your add-on as an xpi file, which is the install file format for firefox add-ons.
...And 8 more matches
Add-on Manager
the add-on manager is responsible for managing all of the add-ons installed in the application.
... through its apis information about all installed add-ons can be retrieved and new add-ons can be installed.
... the apis are designed to be generic and support many different types of add-ons.
...And 8 more matches
cfx - Archive of obsolete content
enables you to test, run, and package add-ons.
... cfx xpi package your add-on as an xpi file, which is the install file format for firefox add-ons.
...you can specify an existing profile using the --profiledir option, and this gives you access to that profile's history, bookmarks, and other add-ons.
...And 7 more matches
amIWebInstaller
toolkit/mozapps/extensions/amiwebinstaller.idlscriptable this interface is used to allow web pages to start installing add-ons.
... methods installaddonsfromwebpage() installs an array of add-ons at the request of a webpage.
...e, in nsidomwindow awindow, in nsiuri areferer, [array, size_is(ainstallcount)] in wstring auris, [array, size_is(ainstallcount)] in wstring ahashes, [array, size_is(ainstallcount)] in wstring anames, [array, size_is(ainstallcount)] in wstring aicons, in amiinstallcallback acallback, optional in pruint32 ainstallcount optional ); parameters amimetype the mimetype for the add-ons.
...And 7 more matches
Add-on Repository
the add-on repository is responsible for finding available add-ons; it provides an interface for interacting with the addons.mozilla.org (amo) site.
... its api provides urls that can be visited to browse the repository's add-ons.
... the api also offers two ways to search for and retrieve an array of addon instances: retrieverecommendedaddons(), which returns a list of recommended add-ons, and searchaddons(), which performs a search of the repository.
...And 6 more matches
Interfacing with the Add-on Repository
you an use the code module to get lists of add-ons and even install new add-ons.
... this article provides some sample code that queries the recommended add-ons list on amo and lets the user click a button to install an add-on from the list.
... enabling the recommendation feature in current builds of firefox 4, the recommendation api doesn't work because the preference for the url to query to get recommended add-ons is not included by default; see bug 628785.
...And 6 more matches
Index
70 thunderbird extensions add-ons, extensions, thunderbird categori 71 adding items to the folder pane this tutorial examines how to add items to an existing folder pane view.
... 72 adding views to the folder pane add-ons, draft, extensions, guide, needscontent, thunderbird this is a stub page for a tutorial for thunderbird 3.
... 74 building a thunderbird extension 1: introduction add-ons, extensions, thunderbird thunderbird is a community managed open-source email application.
...And 6 more matches
Zombie compartments
they can be caused by bugs in firefox itself, or by bugs in firefox add-ons.
...in the results, you'll find a js-main-runtime-compartments tree (whcih you may need to expand further) that lists all system (firefox and add-ons) and user (website) compartments, these compartments are also listed in more detail in the explicit allocations section.
... zombie compartments sometimes, due to bugs in firefox, the add-on sdk and/or add-ons, compartments are created that are never destroyed.
...And 6 more matches
url - Archive of obsolete content
for example: var url = require("sdk/url").url("https://developer.mozilla.org/add-ons?example=true&visible=yes#top"); console.log(url.scheme); // https userpass the username:password part of the url, null if not present.
...for example: var url = require("sdk/url").url("https://developer.mozilla.org/add-ons?example=true&visible=yes#top"); console.log(url.host); // developer.mozilla.org port the port number of the url, null if none was specified.
...for example: var url = require("sdk/url").url("https://developer.mozilla.org/add-ons?example=true&visible=yes#top"); console.log(url.path); // /add-ons?example=true&visible=yes#top hostname the domain of the url, as a string.
...And 5 more matches
Extension Versioning, Update and Compatibility - Archive of obsolete content
add-on versioning add-ons should specify their versions using the toolkit version format.
... how applications determine compatibility when installing add-ons applications look at the targetapplication entries in the add-on's install.rdf.
... overriding compatibility checking for testing purposes you can tell the application to somewhat ignore compatibility checks when installing add-ons.
...And 5 more matches
about:debugging (before Firefox 68) - Firefox Developer Tools
at the moment it supports three main sorts of targets: restartless add-ons, tabs, and workers.
... when about:debugging opens, on the left-hand side, you'll see a sidebar enabling you to switch between the two main views: one for add-ons and one for workers.
... whether or not system add-ons appear in the list on this page depends on the setting of the devtools.aboutdebugging.showsystemaddons preference.
...And 5 more matches
Index - Web APIs
WebAPIIndex
1025 how to create a dom tree ajax, add-ons, dom, extensions, jxon, needsupdate, xml this page describes how to use the dom core api in javascript to create and modify dom objects.
... 1138 element.openorclosedshadowroot api, add-ons, element, extensions, mozilla, needs privileges, non-standard, property, reference, webextensions, openorclosedshadowroot, shadow dom the element.openorcloseshadowroot read-only property represents the shadow root hosted by the element, regardless if its mode is open or closed.
... 2171 installtrigger api, add-ons, apps, extensions, interface, non-standard, reference the installtrigger interface is an interesting outlier in the apps api; it's included in this api but are inherited from the old mozilla xpinstall technology for installing add-ons.
...And 5 more matches
SDK and XUL Comparison - Archive of obsolete content
security if they're not carefully designed, firefox add-ons can open the browser to attack by malicious web pages.
... although it's possible to write insecure add-ons using the sdk, it's not as easy, and the damage that a compromised add-on can do is usually more limited.
... restartlessness add-ons built with the sdk can be installed without having to restart firefox.
...And 4 more matches
package.json - Archive of obsolete content
the package.json file contains manifest data for your add-on, providing not only descriptive information about the add-on for presentation in the add-ons manager, but other metadata required of add-ons.
...these json objects will be used to localizations for the add-on's meta data shown within the add-ons manager.
...these json objects will be used to create a preferences interface for the add-on in the add-ons manager unless the preferencesurl field is specified.
...And 4 more matches
Bootstrapped extensions - Archive of obsolete content
when the extension becomes enabled using the add-ons manager window.
... notes on modifying the application user interface chrome.manifest in bootstrapped add-ons you can use a chrome.manifest file in bootstrapped add-ons to: make your add-on's content available via a chrome:// url (using the content, locale, and skin instructions in the manifest).
... not all chrome.manifest instructions are supported in bootstrapped add-ons, for example you still cannot register xul overlays from a bootstrapped add-on.
...And 4 more matches
How to convert an overlay extension to restartless - Archive of obsolete content
mappings, so that you can access your files with custom paths such as: resource://myaddon/filename.ext chrome://myaddon/content/filename.ext step 2: no more resource:// uris for files internal to your bundle unfortunately, resource mappings in your chrome.manifest were not usable in restartless add-ons until mozilla finally fixed this bug in firefox 38, which looked bad, but only because mozilla is still using resource:// uris internally and in examples.
...the resource:// protocol actually bleeds into content which allows webpages to detect installed add-ons using the protocol, which is not particularly fantastic (just the static file contents, not any loaded script/data).
...prior to firefox 10, the chrome.manifest file you rely on wasn't loaded automatically for restartless add-ons.
...And 4 more matches
Theme changes in Firefox 2 - Archive of obsolete content
mozapps/extensions/extensions.css css for the add-ons manager window.
... updated to support the new features of the firefox 2 add-ons manager.
... 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 4 more matches
Index - Firefox Developer Tools
5 add-ons web development, web development:tools developer tools that are not built into firefox, but ship as separate add-ons.
... 15 browser toolbox debug, firefox, javascript the browser toolbox enables you to debug add-ons and the browser's own javascript code rather than just web pages like the normal toolbox.
... 70 use the inspector api inspector, reference, référence(2), tools firefox add-ons may access the following objects from the chrome://browser/content/devtools/inspector/inspector.xul context: 71 use the inspector from the web console guide, inspector, tools the element that's currently selected in the page inspector can be referenced in the web console using the variable $0.
...And 4 more matches
Getting Started (jpm) - Archive of obsolete content
the add-on sdk includes a command-line tool that you use to initialize, run, test, and package add-ons.
... prerequisites to create add-ons for firefox using the sdk, you'll need: firefox version 38 or later.
...this is the installable file format for firefox add-ons.
...And 3 more matches
Add-on SDK - Archive of obsolete content
using the add-on sdk, you can create firefox add-ons.
... you can use various standard web technologies: javascript, html, and css, to create the add-ons.
... the sdk includes javascript apis, which you can use to create add-ons and tools for creating, running, testing, and packaging add-ons.
...And 3 more matches
Getting Started with Firefox Extensions - Archive of obsolete content
all extensions are add-ons, but add-ons can also be themes, plugins, or language packs.
...the mozilla add-ons repository (amo) holds an extensive number of extensions with a wide variety of functions: content filtering (adblock plus, noscript), web application interaction (delicious bookmarks, ebay companion) and web development (dom inspector, firebug).
... extensions now exist in 3 different forms: add-ons sdk extensions (also known as jetpacks), bootstrapped extensions and traditional extensions.
...And 3 more matches
The Essentials of an Extension - Archive of obsolete content
<em:name>xul school hello world</em:name> <em:description>welcome to xul school!</em:description> <em:version>0.1</em:version> <em:creator>appcoast</em:creator> <em:homepageurl>https://developer.mozilla.org/docs/xul_school</em:homepageurl> this is the data that is displayed before and after the extension is installed, that you can see in the add-ons manager.
...users can disable version checks through preferences or installing add-ons like the add-on compatibility reporter.
... beginning with firefox 11, add-ons will default to compatible and firefox will mostly ignore the version range.
...And 3 more matches
Common causes of memory leaks in extensions - Extensions
while bug 695480 should prevent most of these compartment leaks, add-ons still need to be aware of the practices that caused these leaks, as the fix causes many add-ons which would have otherwise caused a leak to instead throw errors when attempting to access nodes from documents which no longer exist.
... for some examples found in real-world add-ons, see bug 712733, bug 725875, and bug 727552.
... problems in bootstrapped (restartless) add-ons bootstrapped extensions use a bootstrap.js compartment.
...And 3 more matches
XUL Migration Guide - Archive of obsolete content
user interface components xul-based add-ons typically implement a user interface using a combination of two techniques: xul overlays and xul windows.
... using the supported apis the sdk provides a set of high level apis providing some basic user interface components and functionality commonly required by add-ons.
...for example, action buttons appear by default in the main firefox toolbar (although users may relocate them by toolbar customization) because it makes for a better user experience for add-ons to expose their interfaces in a consistent way.
...And 2 more matches
simple-prefs - Archive of obsolete content
you can store booleans, integers, and string values, and users can configure these preferences in the add-ons manager.
... this gives users a consistent way to access and modify preferences across different add-ons.
... title this is used as a label for the preference in the add-ons manager user interface.
...And 2 more matches
Developing for Firefox Mobile - Archive of obsolete content
with the add-on sdk you can develop add-ons that run on this new version of firefox mobile as well as on the desktop version of firefox.
... this tutorial explains how to run sdk add-ons on an android device connected via usb to your development machine.
... it's possible to use the android emulator to develop add-ons for android without access to a device, but it's slow, so for the time being it's much easier to use the technique described below.
...And 2 more matches
Localization - Archive of obsolete content
it doesn't, yet, support localization of css or content scripts, or the add-on's title and description that appear in the add-ons manager.
...uilder", "license": "mpl 2.0", "author": "me", "version": "0.1", "title": "monster builder", "id": "monster-builder@me.org", "description": "build your own monster" } using localized strings in preferences by including a "preferences" structure in your add-on's "package.json" file, you can define preferences for your add-on that the user can see and edit using firefox's add-ons manager.
...these are strings which appear alongside the preference in the add-ons manager, to help explain to the user what the preference means.
...And 2 more matches
Setting Up a Development Environment - Archive of obsolete content
it's not common to sign extensions because most users will trust the official add-ons site (amo) rather than rely on extension signatures.
...a good place to look for them is the mozilla add-ons site, and there's also a good development extension list here.
...some of them can be very useful for add-on development and overlap with the add-ons listed.
...And 2 more matches
Useful Mozilla Community Sites - Archive of obsolete content
amo amo (mozilla add-ons) is the official mozilla repository for add-ons.
... it allows you to upload, search and download all types of add-ons for mozilla applications.
... one of the main advantages of using amo is that it handles updates automatically for published add-ons.
...And 2 more matches
Setting up an extension development environment - Archive of obsolete content
tip: you can install either the developer profile or devprefs add-ons to handle setting these preferences automatically, and skip the rest of this section.
...in particular, add-ons should never change this preference.
...for example, rather than having content myextension jar:chrome/myextension.jar!/content/ use content myextension chrome/content/ preventing the first launch extension selector requires gecko 8.0(firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) starting in firefox 8, on the first launch of a new version of firefox, it presents user interface letting users select which third party add-ons to keep.
...And 2 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.
...due to the large volume of user complaints regarding hidden settings being changed against their will, and not being restored after the add-ons responsible are disabled, mozilla will take any steps necessary to mitigate the impact of offending add-ons.
...other settings violations designed to restrict user choice will result in stronger action, such as blacklisting of the add-ons in question.
...And 2 more matches
Index of archived content - Archive of obsolete content
.htaccess ( hypertext access ) 2015 mdn fellowship program api navigator navigator.moznotification add-ons add-on sdk builder guides content scripts communicating with other scripts communicating using "port" communicating using "postmessage" cross-domain content scripts interacting with page scripts loading content scripts reddit example port self ...
...upport 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 extens...
...t in seamonkey 2 firefox addons developer guide hiding browser chrome hotfix extension how to convert an overlay extension to restartless inline options install manifests installing extensions and themes from web pages interaction between privileged and non-privileged pages jetpack processes legacy add-ons legacy extensions for firefox for android api accounts.jsm browserapp addtab closetab deck getbrowserfordocument getbrowserforwindow gettabforbrowser get...
...And 2 more matches
Building a Theme - Archive of obsolete content
the file preview.png is shown as a preview of the theme in the themes panel of the add-ons window.
...for the purposes of just testing our .xpi file we can just drag it into the add-ons manager via "tools -> add-ons manager", or open it using "file -> open file...".
... using addons.mozilla.org mozilla add-ons is a distribution site where you can host your theme for free.
...And 2 more matches
Frequently Asked Questions for Lightweight themes
once a theme is installed, it is saved in the add-ons manager, where you can enable or disable them as you wish.
... simply go to the tools > add-ons menu and click on the appearance tab.
... once a theme is installed, it is saved in the add-ons manager, where you can enable or disable them as you wish.
...And 2 more matches
Addon
the interface can represent many different kinds of add-ons and as such, some of the methods and properties are considered "required" and others "optional," which means that the optional methods or property may not exist on addon instances for some types of add-ons.
...for some add-ons this will change immediately based on the appdisabled and userdisabled properties; for others it will only change after an application restart.
...operations my be restricted based on system policies (e.g., the system administrator may not allow certain add-ons to be uninstalled), add-on type (e.g., themes may not be disabled), or add-on state (e.g., an incompatible add-on cannot be enabled).
...And 2 more matches
Browser Console - Firefox Developer Tools
however, rather than logging this information for a single content tab, it logs information for all content tabs, for add-ons, and for the browser's own code.
... however, it displays such messages from: web content hosted by all browser tabs the browser's own code add-ons.
... messages from add-ons the browser console displays messages logged by all firefox add-ons.
...And 2 more matches
Module structure of the SDK - Archive of obsolete content
commonjs is the underlying infrastructure for both the sdk and the add-ons you build using the sdk.
... except for scripts that interact directly with web content, all the javascript code you'll write or use when developing add-ons using the sdk is part of a commonjs module, including: sdk modules: the javascript modules which the sdk provides, such as panel and page-mod.
... external modules: reusable modules developed and maintained outside the sdk, but usable by sdk-based add-ons.
... to import external modules, treat them like local modules: copy them somewhere under your add-ons "lib" directory and reference them with a path relative to the importing module.
Testing the Add-on SDK - Archive of obsolete content
cfx testex --filter <addon_example_folder_name>: a suite of tests which run test code for some example add-ons.
... cfx testaddons --filter <addon_folder_name>: a suite of tests which run add-ons, which are themseleves tests.
... this suite builds add-ons which are tests (ie: their main.js script's merely run tests and close firefox when their tests are done), and runs them as cfx run would.
... with mach there are two commands: ./mach mochitest -f jetpack-addon <optional_addon_path>: this runs the test add-ons mentioned for cfx testaddons and gulp test:addons with the older sdk/loader/cuddlefish used with cfx.
private-browsing - Archive of obsolete content
opting into private browsing add-ons built using the sdk must opt into private browsing by setting the following key in their package.json file: "permissions": {"private-browsing": true} if an add-on has not opted in, then the high-level sdk modules will not expose private windows, or objects (such as tabs) that are associated with private windows: the windows module will not list any private browser windows, generate any ev...
... created using the context-menu will not be shown in context menus that belong to private browser windows the page-mod module will not attach content scripts to documents belonging to private browser windows any panel objects will not be shown if the active window is a private browser window the selection module will not include any selections made in private browser windows add-ons that have opted in will see private windows, so they will need to use the private-browsing module to check whether objects are private, so as to avoid storing data derived from such objects.
... additionally, add-ons that use low-level modules such as window/utils may see private browser windows with certain functions, even if they have not explicitly opted into private browsing.
...it returns true only if the object is: a private window, or a tab belonging to a private window, or a worker that's associated with a document hosted in a private window any window, tab, or worker if the browser has been configured to never remember history (options->privacy->history) add-ons can use this api to decide whether or not to store user data.
Tools - Archive of obsolete content
articles listed here provide a reference for the sdk's tools: cfx enables you to test, run, and package add-ons.
... jpm jpm is a command-line tool that enables you to test, run, and package add-ons.
...enables you to run and test add-ons for firefox mobile (aka fennec).
... package.json the package.json file contains manifest data for your add-on, providing not only descriptive information about the add-on for presentation in the add-ons manager, but other metadata required of add-ons.
Security best practices in extensions - Archive of obsolete content
some items mentioned are strict guidelines, meaning that if you don't follow them then your add-on will not be approved on mozilla add-ons.
... apis and other data handling web content is more than just pages, and more and more add-ons are interacting with web services via an application programming interface (api).
...it is not unheard of in add-ons as well, and can provide a useful way to avoid code duplication and accelerate development.
...another thing you should do is namespace it just in case other add-ons include it.
Multiple Firefox profiles
a profile in firefox is the collection of settings, customizations, add-ons, and other personalizations that a user has made or installed into their copy of firefox.
...having different profiles would help separate work and personal life, or allow each family member to have his or her own set of bookmarks, settings, and add-ons.
...while using the nightly channel, you may encounter some add-ons that have become temporarily incompatible with new api changes, until the add-on developer has a chance to update them.
... you can remove such add-ons from your profile for nightly use while keeping them for use with other profiles.
InstallListener
only called for add-ons that need to be downloaded.
...only called for add-ons that need to be downloaded.
...only called for add-ons that need to be downloaded.
...only called for add-ons that need to be downloaded.
Translation phase
projects the mozilla projects and their l10n workflows are divided into these groups: mozilla applications, mozilla websites, and add-ons.
... addons.mozilla.org (amo) a portal for all users interested in finding add-ons for their local mozilla applications.
... add-ons l10n for add-ons is handled by at least two other organizations/services called babelzilla and adofex.
... they both have created comprehensive programs and l10n tools for localizing any and all third-party add-ons for mozilla applications.
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%)...
... some add-ons are identified by a name, such as tree style tab.
... for add-ons that use separate windows, such as chatzilla, the memory usage of those windows will show up in this sub-tree.
... for add-ons that use xul overlays, such as adblock plus, the memory usage of those overlays will not show up in this sub-tree; it will instead be in the non-add-on sub-trees and won't be identifiable as being caused by the add-on.
Mozilla
in addition, you'll find helpful articles about how the code works, how to build add-ons for mozilla applications and the like.
... add-ons add-ons allow developers to extend and modify the functionality of firefox.
...for example, by using components.results.ns_error_not_initialized firefox here you can learn about how to contribute to the firefox project and you will also find links to information about the construction of firefox add-ons, using the developer tools in firefox, and other topics.
...they can be caused by bugs in firefox itself, or by bugs in firefox add-ons.
Browser Toolbox - Firefox Developer Tools
the browser toolbox enables you to debug add-ons and the browser's own javascript code rather than just web pages like the normal toolbox.
... use the browser toolbox for add-ons that are neither.
... you will be presented with a dialog like this (it can be removed by setting the devtools.debugger.prompt-connection property to false): click ok, and the browser toolbox will open in its own window: you'll be able to inspect the browser's chrome windows and see, and be able to debug, all the javascript files loaded by the browser itself and by any add-ons that are running.
...you can use the inspector's node picker to select that panel, and examine and modify its content: you can use the same technique to debug popups created by add-ons.
Content Scripts - Archive of obsolete content
many add-ons need to access and modify the content of web pages.
...instead, sdk add-ons need to factor the code that gets access to web content into separate scripts that are called content scripts.
... almost all the examples presented in this guide are available as complete, but minimal, add-ons in the addon-sdk-content-scripts repository on github.
Content Processes - Archive of obsolete content
many add-ons have to interact with content.
... the problem with the multiprocess model is that add-ons and content are now in different processes, and scripts in one process cannot interact directly with scripts in another.
... as explained earlier, firefox doesn't yet use separate processes for tabs or add-ons, so instead, each content script is loaded in a sandbox.
SDK API Lifecycle - Archive of obsolete content
deprecation process deprecation in the chosen release, the sdk team will communicate the module's deprecation: update the module's stability index to be "deprecated" include a deprecation notice in the release notes, the add-ons blog, and the jetpack google group.
... the amo validator will throw errors when deprecated modules are used, and these add-ons will therefore fail amo review.
...the sdk team will remove the corresponding documentation, and communicate the removal in the usual ways: the release notes, the add-ons blog, and the jetpack google group.
cfx to jpm - Archive of obsolete content
the add-on sdk includes a command-line tool that you use to initialize, run, test, and package add-ons.
... add-on incompatibilities in most respects, add-ons created with cfx will work fine with jpm.
...for example: addons.mozilla.org uses it to distinguish between new add-ons and updates to existing add-ons, and the simple-storage module uses it to figure out which stored data belongs to which add-on.
Getting started (cfx) - Archive of obsolete content
see: getting started with jpm cfx to jpm prerequisites to create add-ons for firefox using the sdk, you'll first need to follow the instructions to install and activate the sdk.
...this is the installable file format for firefox add-ons.
... summary in this tutorial we've built and packaged an add-on using three commands: cfx init to initialize an empty add-on template cfx run to run a new instance of firefox with the add-on installed, so we can try it out cfx xpi to package the add-on into an xpi file for distribution these are the three main commands you'll use when developing sdk add-ons.
Multiple item extension packaging - Archive of obsolete content
for multiple item packages, all internal add-ons need to be signed, but the container doesn't need to be signed.
... this means that the contained add-ons need to be submitted to amo individually for signing.
... additionally, the container add-on id must not be the same as the id of any of the contained add-ons.
Chapter 1: Introduction to Extensions - Archive of obsolete content
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.
... the add-ons manager handles the following tasks: safely installs and uninstalls add-ons makes sure add-ons are compatible with the version of firefox you're using manages a whitelist of sites trusted for installing add-ons helps troubleshoot add-ons by disabling them and offering a safe mode confirms and runs updates provides access to add-ons' settings dialogs provides access to add-ons' support sites development environment amenities initially, there wasn't adequate documentation available, and extension developers were largely left to fend for themselves1; however, now there's a considerable store of knowledge.
... this lowers the threshold both to using and to developing extensions; that fact, combined with firefox's rapidly growing popularity, has created a positive feedback loop, with the number of extension users and extension developers growing explosively—there are now more than 7000 extensions and themes published at the firefox add-ons site (https://addons.mozilla.org).
Mozilla Documentation Roadmap - Archive of obsolete content
it includes links to tutorials and documentation, development tools, and most notably, the mozilla add-ons forum.
... the mozilla add-ons blog.
... this blog is maintained by the add-ons team at mozilla, and it's a great way to stay up to date with amo development and add-on review policies.
Overlay extensions - Archive of obsolete content
the privileged javascript apis described here can still be used in these newer types of add-ons.
... firefox add-ons developer guide a guide to developing overlay extensions.
... extension preferences how to specify the preferences for your extension that will appear in the add-ons manager.
Firefox and the "about" protocol
here is a complete list of urls in the about: pseudo protocol: about: page description about:about provides an overview of all about: pages available for your current firefox version about:addons add-ons manager about:buildconfig displays the configuration and platform used to build firefox about:cache displays information about the memory, disk, and appcache about:checkerboard switches to the checkerboarding measurement page, which allows to detect checkerboarding issues about:config provides a way to inspect and change firefox preferences and sett...
... about:crashes lists all crashes, which happened during the runtime of firefox (in case the user enabled the crash reporter) about:credits lists all contributors to the firefox project about:debugging switches to the developer tools debugging page, which allows you to debug add-ons, tabs and service workers about:devtools summarizes the developer tools and provides links to documentation for each tool about:downloads displays all downloads done within firefox about:home start page of firefox when opening a new window about:license displays licensing information about:logo firefox logo about:memory provi...
...des a way to display memory usage, save it as report and run the gc and cc about:mozilla special page showing a message from "the book of mozilla" about:networking displays networking information about:newtab start page when opening a new tab about:performance displays memory and performance information about firefox subprocesses/add-ons/tabs about:plugins displays information about installed plugins about:policies lists out the firefox for enterprise policies about:preferences firefox settings (also available through firefox menu > options) about:privatebrowsing start page when opening a private window about:profiles display and manage firefox profiles about:protections privacy...
Firefox
here you can learn about how to contribute to the firefox project and you will also find links to information about the construction of firefox add-ons, using the developer tools in firefox, and other topics.
... learn how to create add-ons for firefox, how to develop and build firefox itself, and how the internals of firefox and its subprojects work.
... linux compatibility matrixthe following table lists the available library versions for the mozilla.org-distributed firefox builds dependencies, and/or to build firefox.multiple firefox profilesa profile in firefox is the collection of settings, customizations, add-ons, and other personalizations that a user has made or installed into their copy of firefox.
CustomizableUI.jsm
this is often when the window has opened, but in the case of add-ons, could fire when the node has just been registered with customizableui after an add-on update or disable/enable sequence.
...this is useful for add-ons that get disabled and then re-enabled (e.g., when they update).
... source_external string "external", a constant indicating the widget is externally provided (e.g., by add-ons or other items not part of the builtin widget set).
amIWebInstallListener
the default implementation displays a confirmation dialog when add-ons are ready to install and uses the observer service to notify when installations are blocked.
... methods onwebinstallblocked() called when the website is not allowed to directly prompt the user to install add-ons.
... onwebinstallrequested() called when a website wants to ask the user to install add-ons.
XPCOM
here is how to make the same component in python using pyxpcom.fun with xbl and xpconnectgenerating guidsguids are used in mozilla programming for identifying several types of entities, including xpcom interfaces (this type of guids is callled iid), components (cid), and legacy add-ons—like extensions and themes—that were created prior to firefox 1.5.
... add-ons can (and should) be identified with ids of the form extensionname@organization.tld since firefox 1.5.generic factorymost xpcom factories can be very simple.
...it allows developers to link only against the frozen xpcom method symbols and maintain compatibility with multiple versions of xpcom.xpcom guidethese articles provide tutorials and usage documentation for xpcom, including how to use it in your own projects and how to build xpcom components for your firefox add-ons and the like.xpcom ownership guidelines...naturally.
Theme Packaging
you must have a top-level chrome.manifest file which registers the chrome for the theme (as before) and also an install.rdf manifest that specifies metadata that is displayed in the appearance section of the add-ons manager.
... preview.png is a preview image which will show when double-clicked on a theme in the appearance section of the add-ons manager.
...48x48) png (may contain alpha transparency) which will show up in the appearance section of the add-ons manager.
Thunderbird extensions
also see thunderbird 57-60 add-ons guide for changes introduced in thunderbird 60.
... gloda is extremely powerful and is used heavily by add-ons such as thunderbird conversations.
...ecause there has been significant api rewrite over the past years making most techniques considerably easier) thunderbird api docs (mostly a collection of out-of-date pages, relevance is rather dubious) general links finding the code for a feature mozillazine articles on thunderbird community / communications thunderbird specific : add-ons section on developer.thunderbird.net thunderbird communication channels add-on developers forum/mailing list #maildev irc channel more general : mozillazine extension development forum general developer channels related topics xul, javascript, xpcom, themes, developing mozilla categori ...
about:debugging - Firefox Developer Tools
at the moment it supports three main sorts of targets: restartless add-ons, tabs, and workers.
... the add-ons section in about:debugging lists all web extensions that are currently installed.
... note: this list may include add-ons that came preinstalled with firefox.
Guides - Archive of obsolete content
sdk infrastructure module structure of the sdk the sdk, and add-ons built using it, are of composed from reusable javascript modules.
... xul versus the sdk a comparison of the strengths and weaknesses of the sdk, compared to traditional xul-based add-ons.
simple-storage - Archive of obsolete content
this module works similarly to dom storage on the web, except that it's only available for add-ons.
...because jpm run by default uses a fresh profile each time it runs, simple storage won't work with add-ons executed using jpm run - that is, stored data will not persist from one run to the next.
widget - Archive of obsolete content
first, your users will be accustomed to interacting with add-ons via widgets and the add-on bar.
...in your own add-ons, you will probably want to create your content scripts in separate files and pass their urls using the contentscriptfile property.
High-Level APIs - Archive of obsolete content
modules listed on this page implement high-level apis for building add-ons: creating user interfaces, interacting with the web, and interacting with the browser.
... indexed-db exposes the indexeddb api to add-ons.
console - Archive of obsolete content
there are two system preferences that can be used to override this default: extensions.sdk.console.loglevel: if set, this determines the logging level for all installed sdk-based add-ons.
... this includes add-ons being developed using the extension auto-installer.
Using third-party modules (jpm) - Archive of obsolete content
the add-on sdk includes a command-line tool that you use to initialize, run, test, and package add-ons.
...module developers can publish sdk modules to npm, and add-on developers can install them from npm and build them into their add-ons.
Tutorials - Archive of obsolete content
getting started installation how to install the jpm tool, which you will use for developing add-ons.
... mobile development develop add-ons for firefox mobile on android.
Extension Packaging - Archive of obsolete content
including add-ons in a customized application a customized application can include add-ons, including extensions and themes, by placing the unpacked (that is, not the xpi files, but the packages' contents) in the <appdir>/distribution/extensions directory.
...add-ons packaged in this way will not be visible to the user.
Extension Etiquette - Archive of obsolete content
ideally, the location would be below the add-ons item, grouped with the other extension-related commands (menuitem:insertafter="javascriptconsole,devtoolsseparator").
... coding practices namespace conflicts there are many namespaces which extensions often must share with other consumers, be they other add-ons, web code, or the browser itself.
Appendix B: Install and Uninstall Scripts - Archive of obsolete content
add-ons normally run code at startup, and as it is covered in the main tutorial, all you need is a load event handler and a little code.
...this appendix covers these cases with simple code that should work for most add-ons.
Appendix D: Loading Scripts - Archive of obsolete content
most add-ons and xul runner applications provide their primary functionality by loading and executing javascript code.
... because there are such a diverse array of add-ons, and because the needs of developers have grown organically over time, the gecko runtime provides a number of means to dynamically load and execute javascript files.
Handling Preferences - Archive of obsolete content
the standard way of opening a preferences window is to open the add-ons manager, select the add-on, and then click on the preferences button.
...",dialog=no" : ",modal"); this._preferenceswindow = window.opendialog( "chrome://xulschoolhello/content/preferenceswindow.xul", "xulschoolhello-preferences-window", features); } this._preferenceswindow.focus(); }, this code is based on the code that opens preference windows from the add-ons manager.
Intercepting Page Loads - Archive of obsolete content
note: performance is very important when it comes to add-ons and page loads.
... if you are building a web filtering extension, you should keep in mind that xul windows such as the dom inspector window and the add-ons manager window allow (limited) web navigation.
List of Mozilla-Based Applications - Archive of obsolete content
ar assay data based on xul liaison groupware client for novell’s email and collaboration server previously called mozngw linbox kiosk browser (fr) web browser dedicated browser for french prefecture and town hall litl internet computer for home uses spidermonkey and gecko lizilayers gis application 3liz also creates some gis firefox add-ons logitech harmony remote software software for remote control device uses gre or xulrunner longman dictionary of contemporary english cd-rom lotus notes / sametime groupware the latest version of ibm lotus notes and sametime can embed xul applications lucidor e-book reader lx-office accounting tool looks like it makes at ...
...ed for elderly people with dementia but other applications mac os x operating system makes use of some mpl files such as libsecurity_asn1 maemo browser browser for maemo internet tablet development name is microb magooclient business process management tool uses mozilla rhino mantra security tool mccoy secure update tool for add-ons xulrunner application mediacoder media converter transcoder for video, audio, and even devices such as zen, zune, pocketpcs, ipods, and psps mekhala browser part of the khmeros linux distro midbrowser mobile web browser mockery mockup creation tool built on xulrunner mongodb database project uses spidermonkey ...
Menu - Archive of obsolete content
ArchiveMozillaJetpackUIMenu
many users, especially those new to firefox, don't realize the distinction between add-ons and the browser itself.
... no one likes it when add-ons clutter her tools menu willy-nilly.
Jetpack - Archive of obsolete content
jetpack jetpack is a project to make it easy to build firefox add-ons using common web technologies.
... get started visit the getting started tutorial download the add-on sdk (formerly called the jetpack sdk) documentation check out the documentation, including tutorials, examples, guides, and api reference join the jetpack community follow jetpack on the mozilla add-ons blog report a bug check out the open bugs discuss jetpack grab the source code join us in #jetpack on irc.mozilla.org ...
Venkman Introduction - Archive of obsolete content
if you don't already have venkman or would like to upgrade, you can easily get the latest version from firefox add-ons.
...first, from within the browser you want to host the debugger application, visit the firefox add-ons page and click on the "install" link for the most recent version.
Venkman - Archive of obsolete content
getting venkman firefox and thunderbird the latest version of javascript debugger is available from firefox add-ons.
...also available from firefox add-ons as an extension.
Shipping a plugin as a Toolkit bundle - Archive of obsolete content
bundle structure toolkit bundles can be used for all add-ons including extensions, themes and plugins.
... the plugin must have a name to identify the plugin to the user in the list of add-ons.
Theme changes in Firefox 4 - Archive of obsolete content
use of the iconsize attribute on toolbar elements add-ons use the iconsize attribute to determine which icon they should display when a button is placed in a specific toolbar.
... note: add-ons always use a 24x24 pixels icon when the button is displayed in the toolbar customization palette.
Chrome registration
s.jar!/locale/pippki/ content global-platform jar:toolkit.jar!/content/global-platform/ platform skin global classic/1.0 jar:classic.jar!/skin/classic/global/ override chrome://global/content/neterror.xhtml jar:embedder.jar!/global/content/neterror.xhtml content inspector jar:inspector.jar!/content/inspector/ instructions supported in bootstrapped add-ons the following instructions are supported in bootstrapped extensions: manifest content locale skin override debugging a chrome manifest file the chrome list extension shows all registered chrome.
... gecko 1.9.2 note the contents.rdf manifest format is no longer supported at all starting with gecko 1.9.2; add-ons already installed using this format will continue to work but can no longer be installed.
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.
... note: since firefox 2.0.0.7, use of the -install-global-extension and -install-global-theme command line arguments have been restricted to only allow installing add-ons that are on local disks or mapped drives.
Index
found 172 pages: # page tags and summary 1 firefox firefox, landing, mozilla here you can learn about how to contribute to the firefox project and you will also find links to information about the construction of firefox add-ons, using the developer tools in firefox, and other topics.
... 143 multiple firefox profiles beginner, firefox, guide, intro, profiles, qa a profile in firefox is the collection of settings, customizations, add-ons, and other personalizations that a user has made or installed into their copy of firefox.
Cross Process Object Wrappers
so as a general rule, add-ons should avoid passing cpows into non-addon code.
...cript 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 this reason, add-ons that try to access content objects in fresh <browser> elements may run into trouble.
...so as a general rule, add-ons should avoid passing cpows into non-addon code.
JavaScript code modules
standard code modules addonmanager.jsm an interface to install, manage, and uninstall add-ons.
... addonrepository.jsm provides a search of add-ons in the repository.
Index
21 localizing extension descriptions add-ons, extensions, guide, internationalization, localization this article provides details on how to go about localizing the descriptions of mozilla add-ons, as well as for other metadata about your add-on.
... 22 localizing extension metadata on addons.mozilla.org add-ons, extensions, internationalization, localization amo supports localized metadata for each extension.
Localizing extension descriptions
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.
... localizing before gecko 1.9 before gecko 1.9, add-on developers must go through a special process to define localized add-on descriptions for add-ons targeting toolkit-based apps (such as firefox or thunderbird).
Initial setup
locale switcher or quick locale switcher both locale switcher and quick locale switcher are add-ons for mozilla applications.
...you can install either by searching for them in firefox's add-ons manager or following these links.
McCoy
applications periodically look for and install updates to their add-ons.
...it is up to you how you use your keys, either using one key for all add-ons or one key per add-on would seem sensible choices.
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.
Observer Notifications
lightweight-theme-change-requested json sent to indicate that the user has chosen a new theme in the add-ons manager, but before the change takes effect.
... addoninfo an empty object that add-ons can use to send data to the main process.
amIInstallTrigger
return value install() starts a new installation of a set of add-ons.
... boolean install( in nsivariant aargs, in amiinstallcallback acallback optional ); parameters aargs the add-ons to install.
nsIDOMWindowInternal
this interface no longer has any members; it exists solely to prevent add-ons that reference it from failing completely.
... add-ons should be updated to use nsidomwindow instead.
Firefox Developer Tools
about:debugging debug add-ons, content tabs, and workers running in the browser.
... browser console see messages logged by the browser itself and by add-ons, and run javascript code in the browser's scope.
TypeError: can't access dead object - JavaScript
the javascript exception "can't access dead object" occurs when firefox disallows add-ons to keep strong references to dom objects after their parent document has been destroyed to improve in memory usage and to prevent memory leaks.
... to improve in memory usage and to prevent memory leaks, firefox disallows add-ons to keep strong references to dom objects after their parent document has been destroyed.
Image file type and format guide - Web media technologies
.pjp chrome, edge, firefox, internet explorer, opera, safari png portable network graphics image/png .png chrome, edge, firefox, internet explorer, opera, safari svg scalable vector graphics image/svg+xml .svg chrome, edge, firefox, internet explorer, opera, safari tiff tagged image file format image/tiff .tif, .tiff none built-in; add-ons required webp web picture format image/webp .webp chrome, edge, firefox, opera the abbreviation for each format links to a longer description of the format, its capabilities, and detailed browser compatibility information; including which versions introduced support and specific special features that may have been introduced later.
... long ago, some browsers supported tiff images in web content; today, however, you need to use special libraries or browser add-ons to do so.
Builder - Archive of obsolete content
the add-on builder was a web-based development environment that allowed developers to create add-ons using the sdk apis, but without needing to use the jpm command line tool.
Interacting with page scripts - Archive of obsolete content
by default, content scripts loaded by add-ons and scripts loaded by web pages are insulated from each other: content scripts can't interact directly with page scripts or access javascript objects they create page scripts can't interact directly with content scripts or access objects they create.
Private Properties - Archive of obsolete content
among other things, add-ons should not be able to access variables that are supposed to be private.
Program ID - Archive of obsolete content
for example: addons.mozilla.org uses it to distinguish between new add-ons and updates to existing add-ons, and the simple-storage module uses it to figure out which stored data belongs to which add-on.
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.
hotkeys - Archive of obsolete content
it's very easy to use combinations that clash with hotkeys defined for firefox or for other add-ons.
indexed-db - Archive of obsolete content
experimental exposes the indexeddb api to add-ons.
l10n - Archive of obsolete content
localized strings are supplied by the add-on developer in .properties files stored in the add-ons "locale" directory.
page-mod - Archive of obsolete content
.js") }); the content script replaces the page contents, but restores the original contents when it receives detach: // eaten.js var oldinnerhtml = window.document.body.innerhtml; window.document.body.innerhtml = "eaten!"; self.port.on("detach", function() { window.document.body.innerhtml = oldinnerhtml; }); try running the add-on, loading some pages, and then disabling the add-on in the add-ons manager.
page-worker - Archive of obsolete content
in your own add-ons, you will probably want to create your content scripts in separate files and pass their urls using the contentscriptfile property.
tabs - Archive of obsolete content
converting to xul tabs to convert from the high-level tab objects used in this api to the low-level xul tab objects used in the tabs/utils api and by traditional add-ons, use the viewfor() function exported by the viewfor module.
places/bookmarks - Archive of obsolete content
the module does not automatically sync up a bookmark instance with ongoing changes to that item in the database from the same add-on, other add-ons, or the user.
preferences/event-target - Archive of obsolete content
this enables add-ons to listen to change events to the system-wide settings.
preferences/service - Archive of obsolete content
this enables add-ons to get and set system-wide settings.
remote/parent - Archive of obsolete content
by default, add-ons run in the chrome process and can't directly access web content.
ui/frame - Archive of obsolete content
constructing frames the frame constructor takes one mandatory option, which is a url pointing to an html document supplied under your add-ons "data" directory.
Low-Level APIs - Archive of obsolete content
many add-ons are likely to want to use modules from this category.
jpm-mobile - Archive of obsolete content
enables you to run and test add-ons for firefox mobile (aka fennec).
Storing annotations - Archive of obsolete content
responding to overquota events add-ons have a limited quota of storage space.
Creating Reusable Modules - Archive of obsolete content
module developers can publish sdk modules to npm, and add-on developers can install them from npm and build them into their add-ons.
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.
Unit Testing - Archive of obsolete content
base64 = require("./base64"); var button = require("sdk/ui/button/action").actionbutton({ id: "base64", label: "base64", icon: "./icon-16.png", onclick: function() { encoded = base64.btoa("hello"); console.log(encoded); decoded = base64.atob(encoded); console.log(decoded); } }); to run this example you'll also have to have an icon file named "icon-16.png" saved in your add-ons "data" directory.
Rosetta - Archive of obsolete content
|*| |*| november 12, 2014 |*| |*| https://developer.mozilla.org/add-ons/code_snippets/rosetta |*| https://developer.mozilla.org/user:fusionchess |*| |*| this framework is released under the gnu public license, version 3 or later.
StringView - Archive of obsolete content
ipt/reference/global_objects/number/isinteger |*| \*/ if (!number.isinteger) { number.isinteger = function isinteger (nval) { return typeof nval === "number" && isfinite(nval) && nval > -9007199254740992 && nval < 9007199254740992 && math.floor(nval) === nval; }; } /*\ |*| |*| stringview mdndeveloper network |*| |*| revision #12, march 21st, 2017 |*| |*| https://developer.mozilla.org/add-ons/code_snippets/stringview |*| https://developer.mozilla.org/docs/user:fusionchess |*| https://github.com/madmurphy/stringview.js |*| |*| this framework is released under the gnu lesser general public license, version 3 or later.
Hotfix Extension - Archive of obsolete content
this document has been moved to the add-ons wiki.
Chapter 5: Let's build a Firefox extension - Archive of obsolete content
install extensions for firefox from the mozilla add-ons website.
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.
Appendix F: Monitoring DOM changes - Archive of obsolete content
while they are still viable for add-ons targeting only the latest firefox, those wishing to support older browsers will need to provide fallbacks.
Appendix E: DOM Building and Insertion (HTML & XUL) - Archive of obsolete content
many add-ons need to dynamically generate dom content, either xul or html, from their scripts.
JavaScript Object Management - Archive of obsolete content
« previousnext » chrome javascript in this section we'll look into how to handle javascript data effectively, beginning with chrome code, in ways which will prevent pollution of shared namespaces and conflicts with other add-ons resulting from such global namespace pollution.
XPCOM Objects - Archive of obsolete content
there is no comprehensive list of these (that we know of), and that's understandable since it would be a very long list, and it can be extended by add-ons.
XUL School Tutorial - Archive of obsolete content
epting 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 roadmap useful mozilla community sites appendices appendix a: add-on performance appendix b: install and uninstall scripts appendix c: avoiding using eval in add-ons appendix d: loading scripts appendix e: dom building and html insertion appendix f: monitoring dom changes the xul school project was developed by appcoast (formerly glaxstar).
Performance best practices in extensions - Archive of obsolete content
see the zombie compartments page, especially the proactive checking of add-ons section.
Promises - Archive of obsolete content
on failed", e); } } }); can be converted to a pure promise-based equivalent as such: request("login", { username: user, password: password }) .then(response => { if (response.messages) return publish({ username: user, messages: response.messages }); }) .then(null, (e) => { self.reporterror("publication failed", e); }); file io file io in add-ons should be done via the os.file api, which provides a simple, but powerful, interface for reading, writing, and manipulating both text and binary files.
Adding preferences to an extension - Archive of obsolete content
please note that if you are using code from this tutorial to add to an existing extension, you must uninstall and reinstall your extension to enable the preferences button for your extension in the add-ons list.
Localizing an extension - Archive of obsolete content
« previousnext » see also how to localize html pages, xul files, and js/jsm files from bootstrapped add-ons: bootstrapped extensions :: localization (l10n) xul school localization tutorial: dtd/entities method and properties method ...
Structure of an installable bundle - Archive of obsolete content
/chrome.manifest chrome registration manifest (>=1.8) /components/* xpcom components (*.js, *.dll), and interface files from *.xpt (>=1.7) /defaults/preferences/*.js default preferences (>=1.7) /plugins/* npapi plugins (>=1.8) /chrome/icons/default/* window icons (>=1.8) /icon.png extension icon, for display in the add-ons manager, 32px × 32px (>=1.9.2) /icon64.png extension icon, for display in the add-ons manager, 64px × 64px (>=2.0) /options.xul extension options, for display in the add-ons manager (>=7.0) ...
JavaScript Client API - Archive of obsolete content
this document is somewhat outdated, and the api isn't well-supported for use from add-ons; tread carefully.
Measuring add-on startup performance - Archive of obsolete content
main happens very early in the startup process and should not be affected by add-ons being installed.
Mozilla Application Framework in Detail - Archive of obsolete content
it is often used to install mozilla-based applications and browser add-ons, but can just as easily be used to create installations for third party software that use the browser as a delivery device on any platform.
Extensions - Archive of obsolete content
using this dialog, a user just launches a webapp and opens the add-ons dialog.
Supporting private browsing mode - Archive of obsolete content
add-ons that don't properly respect private browsing mode will be rejected.
disablefastfind - Archive of obsolete content
this is used to prevent the find bar from being displayed when it's not supported by the content (such as in the add-ons manager tab).
tabContainer - Archive of obsolete content
this is useful for add-ons that need to use events related to tabs in the browser window.
Localization - Archive of obsolete content
« previousnext » see also how to localize html pages, xul files, and js/jsm files from bootstrapped add-ons: bootstrapped extensions :: localization (l10n) ...
Manifest Files - Archive of obsolete content
it is recommended to upload extensions to the mozilla add-ons site, where users can locate them for installation.
Property Files - Archive of obsolete content
« previousnext » see also how to localize html pages, xul files, and js/jsm files from bootstrapped add-ons: bootstrapped extensions :: localization (l10n) ...
tabbrowser - Archive of obsolete content
this is useful for add-ons that need to use events related to tabs in the browser window.
window - Archive of obsolete content
this is used to prevent the find bar from being displayed when it's not supported by the content (such as in the add-ons manager tab).
2006-11-3 - Archive of obsolete content
localization of amo and some other pages of mozilla.com suggestion on localizing popular add-ons as well as web pages at mozilla.com.
External resources for plugin creation - Archive of obsolete content
gin - 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 ...
Common Firefox theme issues and solutions - Archive of obsolete content
"about" pages about:addons disabled add-on icons are not grey scale in tools > add-ons, the icons of disabled icons need to be converted to grey scale.
Create Your Own Firefox Background Theme - Archive of obsolete content
creating a theme footer image in older versions of firefox, or newer versions with certain add-ons installed, the footer image is displayed as the background of the bottom of the browser window, behind the add-on and find bars.
Scratchpad - Archive of obsolete content
this is useful if you are working on firefox itself or developing add-ons.
Archive of obsolete content
2015 mdn fellowship program add-ons archived add-ons documentation.
Game monetization - Game development
add-ons and dlcs add-ons and downloadable content are a good way to provide extra value to an already released game, but remember that you'll have to offer decent, entertaining content to attract people to buy it.
Mozilla Firefox - MDN Web Docs Glossary: Definitions of Web-related terms
first released in november 2004, firefox is completely customizable with themes, plug-ins, and add-ons.
How do you make sure your website works properly? - Learn web development
resources like webpagetest.org or browser add-ons like yslow can tell you a few interesting things: grades go from a to f.
Getting started with Ember - Learn web development
ember with add-ons emberjs has a plugin architecture, which means that add-ons can be installed and provide additional functionality without much, if any, configuration.
ChromeWorkers and the Chrome worker loader
that makes it available not only to the application itself, but also to add-ons.
Accessibility Features in Firefox
extensions are small add-ons which can change your browser experience as you see fit.
CSUN Firefox Materials
extensions are small add-ons which can change your browser experience as you see fit.
Links and Resources
this html advanced validator may also be downloaded from firefox add-ons: html validator.
Creating a Firefox sidebar
an extension an extension is a kind of add-ons that adds new functionalities to firefox.
Creating a spell check dictionary add-on
although the restartless format for dictionary add-ons were introduced in gecko 10, dictionary updates only works starting from gecko 18.
Contributing to the Mozilla code base
project skills documentation/onboarding firefox browser (core layers) c++ firefox developers documentation firefox (front-end) javascript and/or html/css firefox developers documentation devtools javascript and/or html/css contribute to devtools add-ons javascript and/or html/css contribute to add-ons firefox focus for android java contribute to firefox focus for android firefox for fire tv java contribute to firefox for fire tv firefox preview (mobile browser, codename: "fenix") kotlin contribute to firefox preview firefox for ios swift contribute to firefox for ios fire...
Frame script loading and lifetime
this is a problem especially for restartless add-ons; because when a new version of the add-on is installed, the old frame scripts will not be unloaded.
AddonListener
addonlisteners can be registered with addaddonlistener() and will then receive notification of changes to the add-ons currently installed.
UpdateInfo
updateinfo objects hold information about available versions of add-ons and are generated as a result of an update check performed by addonupdatechecker.
AsyncShutdown.jsm
example at some point during shutdown, the add-on manager needs to ensure that all add-ons have safely written their data to disk, before writing its own data.
API-provided widgets
from bootstrapped add-ons).
JNI.jsm
the most common use for this module is in add-ons and other works on firefox for android (fennec).
JavaScript OS
platform and add-ons) to interact with the host operating system.
OS.File for the main thread
use with extreme caution: this api may be useful for application developers but must not be used by add-ons, as it changes the state of the complete application.
OSFile.jsm
os.file is designed for efficient, unrestricted, manipulation of files by firefox itself and by add-ons.
L10n Checks
if you want to test the localization for de, run: check-l10n-completeness browser/locales/l10n.ini ../l10n/ de add-ons (xpi) mode l10n checks gathers the locales to compare from the chrome.manifest file inside the xpi file.
Localizing with Koala
go to tools > add-ons.
QA phase
set your language using the quick locale switcher or locale switcher add-ons by navigating to tools->language->your localization's language code.
GC and CC logs
alternatives there are two add-ons that can be used to create and analyze cc graphs.
nglayout.debug.disable xul fastload
in particular, add-ons should never change this preference..
Preferences
this api is not available for add-ons, but if you're working on a gecko application, this api is the preferred way to access preferences.
Shumway
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).
Mozilla Projects
applications periodically look for and install updates to their add-ons.
History Service Design
objectives the primary objectives of the new history service implementation in places are: improve access to browsing history allow association of useful metadata with urls flexible query system for both end-users and add-ons developers clean architecture for ease of code reuse and maintainability the most known and visible feature of history are views.
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.
Creating XPCOM components
add-ons should try to use the new add-on sdk as much as possible; however, there may be cases when it's unavoidable.
XPCOM guide
MozillaTechXPCOMGuide
these articles provide tutorials and usage documentation for xpcom, including how to use it in your own projects and how to build xpcom components for your firefox add-ons and the like.
Components.utils.Sandbox
this property is optional, but very useful for tracking memory usage of add-ons and other javascript compartments.
nsIComponentManager
this method was introduced in gecko 8 to let bootstrapped add-ons provide content at chrome:// uris.
nsIDragService
add-ons should use the standard datatransfer drag and drop api instead.
nsIStringBundleService
see also code snippets : miscellaneous : using string bundles from javascript how to localize html pages, xul files, and js/jsm files from bootstrapped add-ons.
nsITextInputProcessor
therefore they sometimes caused impossible scenarios in automated tests (what's tested with such events?) and js-ime and/or js-keyboard on firefox os or add-ons may dispatch events with wrong rules.
nsIUpdate
used by the extension system to track compatibility of installed add-ons with this update.
nsIUpdateItem
note: add-ons can specify a targetapplication id of toolkit@mozilla.org in their install manifest for compatibility with all apps using a specific release of the toolkit.
Add to iPhoto
note: this extension uses carbon routines, which can no longer be used in firefox add-ons now that firefox is a 64-bit application.
The Web Developer Menu - Firefox Developer Tools
on os x and linux, it's under the "tools" menu: on windows 7, it's under the "firefox" menu: you'll see that the menu is split into three sections: the first section lists tools that are hosted in the toolbox, which is a dedicated window for developer tools the second section lists integrated tools that are not hosted in the toolbox, as well as any tools installed as add-ons (you'll see in the windows screenshot above that i've installed the firefox os simulator) the third section, "get more tools", is a link to more web development add-ons for firefox ...
Introduction to DOM Inspector - Firefox Developer Tools
note: starting with firefox 3, the dom inspector is not included in firefox by default; instead, you must download and install it from the mozilla add-ons web site.
DOM Inspector - Firefox Developer Tools
(thunderbird users browsing amo in firefox should save the installation link, or visit the dom inspector for thunderbird page.) thunderbird 2 dom inspector for thunderbird 2 is available from thunderbird add-ons.
How to - Firefox Developer Tools
access debugging in add-onsbreaking on exceptionsdebug eval sourcesdisable breakpointsexamine, modify, and watch variableshighlight and inspect dom nodesignore a sourceopen the debuggerpretty-print a minified filesearchset a breakpointset a conditional breakpointset watch expressionsstep through codeuse a source mapuse watchpoints ...
Use the Inspector API - Firefox Developer Tools
firefox add-ons may access the following objects from the chrome://browser/content/devtools/inspector/inspector.xul context: window.inspector defined in inspector-panel.js.
Console messages - Firefox Developer Tools
logging messages logged from shared workers, service workers, add-ons, and chrome workers are not shown by default.
Document - Web APIs
WebAPIDocument
document.documenturiobject (mozilla add-ons only!) returns the nsiuri object representing the uri of the document.
EventTarget.addEventListener() - Web APIs
this parameter is useful for code found in add-ons, as well as the browser itself.
InstallTrigger - Web APIs
the installtrigger interface is an interesting outlier in the apps api; it's included in this api but are inherited from the old mozilla xpinstall technology for installing add-ons.
Navigator.mozIsLocallyAvailable() - Web APIs
the navigator.mozislocallyavailable() method allows add-ons to determine whether or not a given resource is available.
Using Web Workers - Web APIs
chrome workers are a firefox-only type of worker that you can use if you are developing add-ons and want to use workers in extensions and have access to js-ctypes in your worker.
Web Workers API - Web APIs
chrome workers are a firefox-only type of worker that you can use if you are developing add-ons and want to use workers in extensions and have access to js-ctypes in your worker.
Window.sidebar - Web APIs
WebAPIWindowsidebar
returns a sidebar object which contains several methods for registering add-ons with the browser.
Accessibility Information for Web Authors - Accessibility
the html advanced validator may also be downloaded from firefox add-ons: html validator.
Event reference
this article offers a list of events that can be sent; some are standard events defined in official specifications, while others are events used internally by specific browsers; for example, mozilla-specific events are listed so that add-ons can use them to interact with the browser.
Mouse gesture events - Developer guides
note: these gesture events are available to add-ons and other browser chrome code, but are never sent to regular web page content.
Index - Developer guides
WebGuideIndex
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.
<img>: The Image Embed element - HTML: Hypertext Markup Language
WebHTMLElementimg
.pjp chrome, edge, firefox, internet explorer, opera, safari png portable network graphics image/png .png chrome, edge, firefox, internet explorer, opera, safari svg scalable vector graphics image/svg+xml .svg chrome, edge, firefox, internet explorer, opera, safari tiff tagged image file format image/tiff .tif, .tiff none built-in; add-ons required webp web picture format image/webp .webp chrome, edge, firefox, opera the abbreviation for each format links to a longer description of the format, its capabilities, and detailed browser compatibility information; including which versions introduced support and specific special features that may have been introduced later.
MIME types (IANA media types) - HTTP
.pjp chrome, edge, firefox, internet explorer, opera, safari png portable network graphics image/png .png chrome, edge, firefox, internet explorer, opera, safari svg scalable vector graphics image/svg+xml .svg chrome, edge, firefox, internet explorer, opera, safari tiff tagged image file format image/tiff .tif, .tiff none built-in; add-ons required webp web picture format image/webp .webp chrome, edge, firefox, opera the abbreviation for each format links to a longer description of the format, its capabilities, and detailed browser compatibility information; including which versions introduced support and specific special features that may have been introduced later.
Firefox user agent string reference - HTTP
in the past, specific plug-ins, add-ons or extensions added user agent parts to notify sites they were installed.
Index - XPath
WebXPathIndex
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.