Search completed in 1.16 seconds.
ChromeWorkers and the Chrome worker loader
to complement the open web worker functionality, mozilla has introduced the
chromeworker interface, which provides this capability within application
chrome.
... this documentation covers
chrome workers and the
chrome worker module loader.
...
chrome worker modulesthe preferred way to define and load modules for
chrome workers is to use the
chrome worker module loader.
Chrome registration
what is
chrome?
...
chrome is the set of user interface elements of the application window that are outside the window's content area.
... toolbars, menu bars, progress bars, and window title bars are all examples of elements that are typically part of the
chrome.
...And 38 more matches
nsIWebBrowserChrome
embedding/browser/webbrowser/nsiwebbrowser
chrome.idlscriptable corresponds to the top-level, outermost window containing an embedded gecko web browser.
...s last changed in gecko 0.9.6 method overview void destroybrowserwindow(); void exitmodaleventloop(in nsresult astatus); boolean iswindowmodal(); void setstatus(in unsigned long statustype, in wstring status); void showasmodal(); void sizebrowserto(in long acx, in long acy); attributes attribute type description
chromeflags unsigned long the
chrome flags for this browser
chrome.
... the implementation should reflect the value of this attribute by hiding or showing its
chrome appropriately.
...And 29 more matches
Limitations of chrome scripts
this page describes patterns that used to work in the
chrome process that will no longer work in multiprocess firefox.
...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.
... without the shim all apis in the
chrome process that provide direct access to content objects will no longer work.
...And 24 more matches
The Chrome URL - Archive of obsolete content
« previousnext » the following section will describe how to refer to xul documents and other
chrome files.
... the
chrome url xul files can be referenced with a regular http url (or any type of url) just like html files.
... however, packages that are installed into mozilla's
chrome system can be referenced with special
chrome urls.
...And 14 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://myextension/content/about.xul", "aboutmyextension", "
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://myextension/content/about.xul", "aboutmyextension", "
chrome,centerscreen", null); window object note the win variable in the above section, which is assigned the return value of window.open.
...And 14 more matches
nsIChromeRegistry
chrome/public/nsi
chromeregistry.idlscriptable provides access to the
chrome registry; you can use this to get information about
chrome documents that have been registered.
... inherits from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) implemented by: @mozilla.org/
chrome/
chrome-registry;1 as a service: var
chromeregistry = components.classes["@mozilla.org/
chrome/
chrome-registry;1"] .getservice(components.interfaces.nsi
chromeregistry); method overview void canonify(in nsiuri a
chromeurl); obsolete since gecko 1.8 void checkfornew
chrome(); nsiuri convert
chromeurl(in nsiuri a
chromeurl); boolean wrappersenabled(in nsiuri auri); violates the xpcom interface guidelines constants constant value description none 0 partial 1 full 2 methods canonify() obsolete since gecko 1.8 (firefo...
...x 1.5 / thunderbird 1.5 / seamonkey 1.0) note: this method is obsolete; use convert
chromeurl() instead.
...And 13 more matches
Chrome Authority - Archive of obsolete content
the api used to gain
chrome access is currently an experimental feature of the sdk, and may change in future releases.
... using
chrome authority the most powerful low-level modules are run with "
chrome privileges", which gives them access to the infamous components object, which grants unfettered access to the host system.
...to obtain these privileges, the module must declare its intent with a statement like the following: var {cc, ci} = require("
chrome"); the "
chrome" built-in pseudo module is provided by the "toolkit/loader" module.
...And 7 more matches
registerChrome - Archive of obsolete content
register
chrome registers
chrome with the
chrome registry.
... method of install object syntax int register
chrome( switch, srcdir, xpipath); parameters the register
chrome method has the following parameters: switch switch is the
chrome switch indicating what type of file is being registered.
...one final option for the switch parameter is delayed_
chrome, which registers the switch only after a relaunch of the browser.
...And 6 more matches
Browser chrome tests
the browser
chrome test suite is an automated testing framework designed to allow testing of application
chrome windows using javascript.
... running the browser
chrome tests to run mochitest, first build mozilla with your changes; then run ./mach mochitest -f browser this will launch your build and open a "browser
chrome tests" window, and report the results in the ui and to stdout.
... for example, to run the tests in browser/base/content/test the command would be: ./mach mochitest -f browser browser/base/content/test/ or without mach test_path=<path_to_the_tests> make -c <objdir> mochitest-browser-
chrome to run tests in debugger the following should work ./mach mochitest -f browser --debugger gdb browser/base/content/test/ run ./mach help mochitest-browser for more options.
...And 5 more matches
ChromeWorker
summary if you're developing privileged code, and would like to create a worker that can use js-ctypes to perform calls to native code, you can do so by using
chromeworker instead of the standard worker object.
...examples of
chromeworker's using js-ctypes are availabe on github and are linked to from the see also section below.
... to use a postmessage with callback version of
chromeworker that features promises, see promiseworker.
...And 5 more matches
Metro browser chrome tests - Archive of obsolete content
the metro browser
chrome test suite is an automated testing framework designed to allow testing of the immersive version of firefox for windows 8 and above using javascript.
...running the metro browser
chrome tests to run mochitest, first build mozilla with your changes; then run ./mach mochitest-metro this will launch metro browser
chrome tests in the default immersive browser.
...if the path points to the root tests directory, then all metro browser
chrome tests will be run.
...And 3 more matches
Specifying Startup Chrome Window - Archive of obsolete content
main
chrome window in order to specify the main
chrome window of your xulrunner application, you'll need to add a preferences file to your application directory structure and add a preference named toolkit.default
chromeuri to that file.
...it's directory structure is as follows: xulmine ├───
chrome ├───components └───defaults └───preferences in defaults/preferences, there is a file named xulmine.js.
... its contents are: pref("toolkit.default
chromeuri", "
chrome://xulmine/content/xulmine.xul"); the toolkit.default
chromeuri preference specifies that the xul window at
chrome://xulmine/content/xulmine.xul is the main application window.
...And 3 more matches
monochrome - CSS: Cascading Style Sheets
the mono
chrome css media feature can be used to test the number of bits per pixel in the mono
chrome frame buffer of the output device.
... syntax the mono
chrome feature is specified as an <integer> representing the number of bits per pixel in the mono
chrome frame buffer.
... if the device is not a mono
chrome device, the value is zero.
...And 3 more matches
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.
...this can be accomplished by augmenting the behavior of the xulbrowserwindow object's hide
chromeforlocation() method.
... note: don't simply replace the hide
chromeforlocation() method; this will likely hurt the functionality of firefox itself as well as other extensions.
...And 2 more matches
Chromeless - Archive of obsolete content
[this project may not be active — check github https://github.com/mozilla/
chromeless]
chromeless is a mozilla labs project in its early stages.
...
chromeless apps have access to a collection of javascript apis that provide them with deep desktop integration.
... one of the core capabilities of the
chromeless platform is the ability to safely embed untrusted web applications inside these applications.
...And 2 more matches
Chrome-only API reference
this page lists apis that only run in gecko
chrome code (and sometimes in other privileged circumstances).
... note: most of the apis exposed to the web in general are also usable in
chrome code: see web apis for a list of these.
...it currently works in (privileged)
chrome code on firefox desktop (version 47 and above).
chromeworkerif you're developing privileged code, and would like to create a worker that can use js-ctypes to perform calls to native code, you can do so by using
chromeworker instead of the standard worker object.
...And 2 more matches
nsIWebBrowserChrome2
embedding/browser/webbrowser/nsiwebbrowser
chrome2.idlscriptable an extension to nsiwebbrowser
chrome.
... 1.0 66 introduced gecko 1.9 inherits from: nsiwebbrowser
chrome last changed in gecko 1.9 (firefox 3) method overview void setstatuswithcontext(in unsigned long statustype, in astring statustext, in nsisupports statuscontext); methods setstatuswithcontext() called when the status text in the
chrome needs to be updated.
... this method may be called instead of nsiwebbrowser
chrome.setstatus().
...And 2 more matches
chrome - Archive of obsolete content
this module should not be confused with the "
chrome" global variable that webextensions can use to access apis.
... the
chrome module gives an add-on sdk add-on access to the components object, which in turn gives it access to a large set of privileged low-level firefox apis.
...
chrome is a built-in pseudo module of the toolkit loader.
... see the
chrome authority tutorial for more details.
Debugging Chrome
--disable-accelerated-2d-canvas will disable gpu canvas google has a page on using pix on
chrome.
...i copied the d3d9.dll into both c:\users\jrmuizel\appdata\local\google\
chrome sxs\application\22.0.1186.0 and c:\users\jrmuizel\appdata\local\google\
chrome sxs\application\.
...i did trace_file=foo.txt and it created the trace file in "c:\users\jrmuizel\appdata\local\google\
chrome sxs\application\22.0.1183.0\foo.txt".
... i needed to run
chrome using --no-sandbox.
Chrome-only CSS reference
this page lists css properties that are only available in gecko
chrome code (and sometimes in other privileged circumstances, eg.
... ua stylesheets.) note: most of the css properties exposed to the web in general are also usable in
chrome stylesheets: see the css documentation for a list of these.
...it only works in
chrome code, and only on mac os x.:-moz-lwthemethe :-moz-lwtheme pseudo-class matches in
chrome documents when the root element's lightweightthemes attribute is true and a theme is selected.:-moz-lwtheme-brighttextthe :-moz-lwtheme-brighttext pseudo-class matches in
chrome documents when :-moz-lwtheme is true and a lightweight theme with a bright text color is selected.:-moz-lwtheme-darktextthe :-moz-lwtheme-darktext pseudo-class matches in
chrome documents when :-moz-lwtheme is true and a lightweight theme with a dark text color is selected.::-moz-tree-cellactivated by the properties attribute.::-moz-tree-cell-textactivated by the properties attribute.::-moz-tree-ce...
...t rows and apply styles to tree rows.::-moz-tree-row(hover)the ::-moz-tree-row(hover) css pseudo-class will match an element if the mouse cursor is presently hovering over a tree row.::-moz-tree-separatoractivated by the properties attribute.::-moz-tree-twistyactivated by the properties attribute.css -moz-bool-pref() @supports functionthe -moz-bool-pref() @supports condition is available to gecko
chrome and ua stylesheets to check if a boolean preference is enabled.css <display-xul> component</display-xul>firefox supports the following -moz- prefixed xul display values:overflow-clip-boxthe overflow-clip-box css property specifies relative to which box the clipping happens when there is an overflow.
nsIWebBrowserChromeFocus
embedding/browser/webbrowser/nsiwebbrowser
chromefocus.idlscriptable implemented by the same object as nsiembeddingsitewindow.
... it represents the focus up-calls from mozilla to the embedding
chrome.
... inherits from: nsisupports last changed in gecko 1.7 method overview void focusnextelement(); void focusprevelement(); methods focusnextelement() set the focus at the next focusable element in the
chrome.
...focusprevelement() set the focus at the previous focusable element in the
chrome.
toolkit.defaultChromeURI - Archive of obsolete content
type: string specified by: default prefs of xulrunner applications default: none example: pref("toolkit.default
chromeuri", "
chrome://myapp/content/"); the toolkit.default
chromeuri preference allows simple xulrunner-based applications to open a new window when the application is launched.
... the preference specifies the uri of a
chrome window to be opened.
... see also: xulrunner:specifying startup
chrome window, toolkit.default
chromefeatures, toolkit.singletonwindowtype.
Chrome Worker Modules
the preferred way to define and load modules for
chrome workers is to use the
chrome worker module loader.
...you only need to do it once for each worker, from within the
chrome worker itself: importscripts("resource://gre/modules/workers/require.js"); note: although you only need to do this once for each worker, it doesn't hurt if you do it more than once.
... that have been exported // assuming that mymodule.js is installed to resource://gre/modules/mymodule.js let module = require("resource://gre/modules/mymodule.js") foo(module.key); // module.key == "this is public"; // however, secretkey is not exported and cannot be used for the installation of resources, please see the documentation on moz.build (if your code is part of the platform) or on
chrome manifests (if your code is part of an add-on).
Gecko Chrome
this page contains information specific to
chrome code running in gecko.
...
chrome-only api referencethis page lists apis that only run in gecko
chrome code (and sometimes in other privileged circumstances.)
chrome-only css referencethis page lists css properties that are only available in gecko
chrome code (and sometimes in other privileged circumstances, eg.
... ua stylesheets.)
chrome-only events referencethis page lists events that are only available in gecko
chrome code (and sometimes in other privileged circumstances, eg.
nsIDOMChromeWindow
dom/interfaces/base/nsidom
chromewindow.idlscriptable this interface is implemented on the window object in
chrome.
...tattentionwithcyclecount(in long acyclecount); void maximize(); void minimize(); void notifydefaultbuttonloaded(in nsidomelement defaultbutton); void restore(); void setcursor(in domstring cursor); attributes attribute type description browserdomwindow nsibrowserdomwindow the related nsibrowserdomwindow instance which provides access to yet another layer of utility functions by
chrome script.
... messagemanager nsi
chromeframemessagemanager read only.
nsIWebBrowserChrome3
embedding/browser/webbrowser/nsiwebbrowser
chrome3.idlscriptable an extension to nsiwebbrowser
chrome2.
... 1.0 66 introduced gecko 2.0 inherits from: nsiwebbrowser
chrome2 last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview astring onbeforelinktraversal(in astring originaltarget, in nsiuri linkuri, in nsidomnode linknode, in prbool isapptab); methods onbeforelinktraversal() determines the appropriate target for a link.
...see also nsiwebbrowser
chrome2 ...
installChrome - Web APIs
install
chrome installs new skin or locale packages in netscape 6 and mozilla.
... method of installtrigger object syntax int install
chrome( type, url, name ) parameters the install
chrome method has the following parameters: type type can be installtrigger.skin or installtrigger.locale.
...description install
chrome is a special method for installing new
chrome in netscape 6 and mozilla.
Using XPCOM without chrome - Archive of obsolete content
using sdk xpcom with the low-level module sdk/platform/xpcom , it's possible to exclude
chrome and xpcomutils in some cases.
... examples bookmarks observer normally, a bookmark observer would require
chrome components and xpcomutils as described in the following links: (observing changes to bookmarks and tags) , (creating event targets).
InstallTrigger.installChrome - Archive of obsolete content
installtrigger.install
chrome trigger scripts are typically invoked by javascript event handlers on hyperlinks.
...<a href="#" onclick="installtrigger.install
chrome( installtrigger.skin, 'http://wildskins/newblue.xpi', 'newblue/1.0');"> install the new blue theme</a> ...
disablechrome - Archive of obsolete content
« xul reference home disable
chrome type: boolean set this attribute to true to disable
chrome in the window.
... this is used to hide
chrome when showing in-browser ui such as the about:addons page, and causes the toolbars to be hidden, with only the tab strip (and, if currently displayed, the add-on bar) left showing.
toolkit.defaultChromeFeatures - Archive of obsolete content
type: string specified by: default prefs of xulrunner applications default: "
chrome,dialog=no,all" example: pref("toolkit.default
chromefeatures", "
chrome,resizable=no,dialog=no"); the toolkit.default
chromefeatures preference allows simple xulrunner-based applications to specify what features are passed to window.open() when the main application window is opened.
... see also: xulrunner:specifying startup
chrome window, dom:window.open, toolkit.default
chromeuri, toolkit.singletonwindowtype.
chrome.manifest - Archive of obsolete content
copy the following text and paste it into a text file, then save that file as "
chrome.manifest": skin global my_theme jar:
chrome/my_theme.jar!/global/ skin mozapps my_theme jar:
chrome/my_theme.jar!/mozapps/ skin messenger my_theme jar:
chrome/my_theme.jar!/messenger/ skin messenger-newsblog my_theme jar:
chrome/my_theme.jar!/messenger-newsblog/ skin communicator my_theme jar:
chrome/my_theme.jar!/communicator/ skin help my_theme jar:
chrome/my_theme.jar!/help/ skin navigator my_theme jar:
chrome/my_theme.jar!/navigator/ skin editor my_theme jar:
chrome/my_theme.jar!/editor/ ...
Chrome-only Events reference
this page lists events that are only available in gecko
chrome code (and sometimes in other privileged circumstances, eg.
Using IndexedDB in chrome
globalproperties": ["indexeddb"] } var principal = cc["@mozilla.org/systemprincipal;1"].createinstance(ci.nsiprincipal); var sandbox = components.utils.sandbox(principal, options); // the sandbox will have access to indexeddb var sandboxscript = 'var req = indexeddb.open("my-database");'; components.utils.evalinsandbox(sandboxscript, sandbox); before firefox 33, you would access indexeddb from
chrome code using the initwindowless method of the nsiindexeddatabasemanager service.
Chapter 5: Let's build a Firefox extension - Archive of obsolete content
optional - install firebug and
chromebug
chromebug is used by the firebug development team to develop firebug.
... you can use it to help debug firefox extensions as well as to inspect and learn how the firefox ui (
chrome) is constructed.
... you can learn more about
chromebug and download it at http://getfirebug.com/wiki/index.php/
chromebug_user_guide you may also find this extension to be valuable: extension developer https://addons.mozilla.org/firefox/addon/7434 developing extensions: what you need to know let’s delve into
chrome, something you’ll need to know about in order to develop extensions.
...And 49 more matches
IDBObjectStore - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbobjectstore
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
... full support 8samsung internet android full support 1.5 full support 1.5 no support 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitadd
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full support 12firefox full support 16 full support 16 no support 10 — 16prefixed pref...
...And 36 more matches
Permissions - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpermissions
chrome full support 43edge full support 79firefox full support 46ie no support ...
... noopera full support yessafari no support nowebview android full support 43
chrome android full support 43firefox android full support 46opera android full support yessafari ios no support nosamsung internet android full support 4.0accelerometer permission
chrome full support 62edge full support 79firefox ?
... safari no support nowebview android full support 62
chrome android full support 62firefox android ?
...And 36 more matches
XUL Structure - Archive of obsolete content
for this reason, mozilla provides a method of installing content locally and registering the installed files as part of its
chrome system.
... this allows a special url form, called a
chrome:// url, to be used.
... by accessing a file using a
chrome url, the files receive elevated privileges to access local files, access preferences and bookmarks and perform other privileged operations.
...And 35 more matches
Index - Archive of obsolete content
70
chrome the
chrome module gives an add-on sdk add-on access to the components object, which in turn gives it access to a large set of privileged low-level firefox apis.
... 151
chrome authority no summary!
... 168 using xpcom without
chrome bookmarks,
chrome, sdk, xpcom no summary!
...And 32 more matches
The Essentials of an Extension - Archive of obsolete content
the
chrome.manifest file
chrome is the set of user interface elements of the application window that are outside of a window's content area.
... toolbars, menu bars, progress bars, and window title bars are all examples of elements that are typically part of the
chrome.
... taken from
chrome registration.
...And 31 more matches
Manifest Files - Archive of obsolete content
« previousnext » in this section, we'll see how to put
chrome and xul files into a package and create the manifest files for them.
...packages may be installed into mozilla and referenced with
chrome urls.
...manifest files a manifest file describes a package and maps its location on disk to a
chrome url.
...And 29 more matches
Choosing the right approach - Learn web development
browser compatibility desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsettimeout
chrome full support 30edge full support 12firefox full support 1 full support ...
... full support 52notes notes setinterval now defined on windoworworkerglobalscope mixin.ie full support 4opera full support 4safari full support 1webview android full support 4.4
chrome android full support 30firefox android full support 4 full support 4 full support 52notes notes setinterval now defined on windoworworkerglobalscope mixin.opera android full support ...
... 10.1safari ios full support 1samsung internet android full support 3.0supports parameters for callback
chrome full support yesedge full support 12firefox full support yesie full support 10opera full support yessafari ?
...And 29 more matches
Selection API - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetselection experimental
chrome full support 1edge full support 12firefox full support 1notes full support ...
...notes the globaleventhandlers.onselectionchange and globaleventhandlers.onselectstart event handlers are supported as of firefox 52.ie full support 9opera full support 9safari full support 1webview android full support 1
chrome android full support 18firefox android full support 4notes full support 4notes notes the globaleventhandlers.onselectionchange and globaleventhandlers.onselectstart event handlers are supported as of firefox 52.opera android full support ...
... 10.1safari ios full support 1samsung internet android full support 1.0addrange experimental
chrome full support 1edge full support 12firefox full support yesie ?
...And 28 more matches
BluetoothCharacteristicProperties - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbluetoothcharacteristicproperties experimental
chrome full support 56notes full support 56notes notes
chromeos and macos only.
...to change preferences in
chrome, visit
chrome://flags.
...l support ≤79notes notes windows 10.firefox no support noie no support noopera full support yessafari no support nowebview android no support no
chrome android full support 56firefox android no support noopera android full support yessafari ios no support nosamsung internet android full support 6.0authenticatedsignedwrites e...
...And 27 more matches
How to convert an overlay extension to restartless - Archive of obsolete content
well, xul overlays and windows, jsm files,
chrome & resource mappings with localization, default preferences, but no xpcom components of your own.
...the examples will also assume that you know how to properly add instructions to your add-on's
chrome.manifest to add and remove resource,
chrome, locale, & etc.
... 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.
...And 25 more matches
Building a Theme - Archive of obsolete content
an example of the content within a typical xpi file for a theme: example.xpi: /install.rdf /
chrome.manifest /preview.png /icon.png /
chrome/ browser/ communicator/ global/ mozapps/ we'll want to create a file structure similar to the one above for our tutorial, so let's begin by creating a folder for your theme somewhere on your hard disk (e.g.
...inside your new theme folder, create two new empty text files, one called
chrome.manifest and the other called install.rdf.
...the location differs by operating system: linux: /usr/lib/mozillafirefox/
chrome/classic.ja or /usr/lib/firefox-*.*.*/omni.ja windows: \program files\mozilla firefox\omni.ja mac os x: /applications/firefox.app/contents/macos/omni.ja now, open (or unzip) this file into the directory you created.
...And 21 more matches
Cross Process Object Wrappers
this document describes cross process object wrappers (cpows), which enable
chrome code to synchronously access content in multiprocess firefox.
... in multiprocess firefox,
chrome code runs in a different process from web content.
... so
chrome code can't directly interact with web content: instead, it must factor out the code that interacts with web content into separate scripts that are called frame scripts.
...And 21 more matches
IDBTransaction - Web APIs
(bug 888598) transactions can have one of three modes: constant value description read_only "readonly" (0 in
chrome) allows data to be read but not changed.
... read_write "readwrite" (1 in
chrome) allows reading and writing of data in existing data stores to be changed.
... version_change "versionchange" (2 in
chrome) allows any operation to be performed, including ones that delete and create object stores and indexes.
...And 20 more matches
WebIDL bindings
[
chromeonly] this extended attribute can be specified on any method, attribute, or constant on an interface or on an interface as a whole.
... interface members flagged as [
chromeonly] are only exposed in
chrome windows (and in particular, are not exposed to webpages).
...these members are exposed to
chrome script working with a content object via xrays.
...And 19 more matches
<textarea> - HTML: Hypertext Markup Language
autocapitalize this is a non-standard attribute supported by webkit on ios (therefore nearly all browsers running on ios, including safari, firefox, and
chrome), which controls whether and how the text value should be automatically capitalized as it is entered/edited by the user.
... note: in browsers other than firefox, such as
chrome, the disabled textarea content may be selectable and copyable.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettextarea
chrome full support yesedge full support 12firefox full support yesnotes full support ...
...And 19 more matches
SeaMonkey - making custom toolbar (SM ver. 1.x) - Archive of obsolete content
go to the directory where you installed seamonkey, then go to the
chrome directory there.
...the console displays the location of seamonkey's
chrome directory.
... explanation: the
chrome directory contains program files that are part of seamonkey itself, together with other files that are provided by extensions.
...And 18 more matches
Index
for practical advice on dealing with wrappers, see safely accessing content dom from
chrome.
...but sometimes, venkman gives too much noise (because it also profiles
chrome code).
... 68 withjsmodulesand
chrome moved to howto 69 xpcshell reference automated testing, developing mozilla, javascript, javascript:tools, tools, xpcom:language bindings, xpconnect the command-line syntax for xpcshell is: 70 xpcshell test manifest expressions qa, testing xpcshell unit tests are run by specifying them in a manifest file.
...And 18 more matches
IDBIndex - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbindex
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
... full support 8samsung internet android full support 1.5 full support 1.5 no support 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitcount
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full support 12firefox full support 16 full support 16 no support 10 — 16prefixed pr...
...And 17 more matches
appearance (-moz-appearance, -webkit-appearance) - CSS: Cascading Style Sheets
the -moz-appearance and -webkit-appearance properties are non-standard versions of this propery, used (respectively) by gecko (firefox) and by webkit-based (e.g., safari) and blink-based (e.g.,
chrome, opera) browsers to achieve the same thing.
... button-bevel; /* partial list of available values in webkit/blink (as well as gecko and edge) */ -webkit-appearance: media-mute-button; -webkit-appearance: caret; values standard keywords value demo browser description none div{ color: black; -moz-appearance:none; -webkit-appearance:none; appearance:none; } <div>lorem</div> firefox
chrome safari edge no special styling is applied.
... menulist-button div { color: black; -moz-appearance: menulist-button; -webkit-appearance: menulist-button; } <div>lorem</div> firefox
chrome safari edge the element is styled as a button that would indicate a menulist can be opened.
...And 17 more matches
IDBDatabase - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbdatabase
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
... full support 8samsung internet android full support 1.5 full support 1.5 no support 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitabort event
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full support 12firefox full support 16 full support 16 no support 10 — 16prefi...
...And 16 more matches
WebAssembly - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jswebassembly
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung int...
...ernet android full support 7.0nodejs full support 8.0.0compileerror
chrome full support 57edge full support 16firefox full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full suppor...
...And 16 more matches
WebAssembly
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jswebassembly
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung int...
...ernet android full support 7.0nodejs full support 8.0.0compileerror
chrome full support 57edge full support 16firefox full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full suppor...
...And 16 more matches
Install Manifests - Archive of obsolete content
abouturl the
chrome:// url of the extension's about dialog box.
... examples <em:abouturl>
chrome://myext/content/about.xul</em:abouturl> bootstrap a boolean value that tells the application whether the extension is boot-strappable.
... examples <em:homepageurl>https://www.example.com/</em:homepageurl> iconurl a
chrome:// url to an icon to display in the add-ons list.
...And 15 more matches
Creating XPI Installer Modules - Archive of obsolete content
a xpi file typically contains the resources to be installed (in this case the barley.jar we want to have installed in the mozilla/bin/
chrome/ directory) and an install script that guides the installation process.
... under the
chrome/ directory, you'll notice that in addition to the package subdirectories, there are now also a handful of jar files, or java archives (see figure below).
...
chrome/ us/ us.jar chatzilla/ chatzilla.jar
chrome.rdf
chromelist.txt classic/ classic.jar comm/ comm.jar content-packs/ content-packs.jar embed-sample/ embed-sample.jar en-us/ en-us.jar en-mac/ en-mac.jar en-unix/ en-unix.jar en-win/ en-win.jar help/ help.jar inspector/ inspector.jar installed-
chrome.txt messenger/ messenger.jar ...
...And 15 more matches
A XUL Bestiary - Archive of obsolete content
chrome some of the most powerful and frequently misunderstood features of xul and the mozilla browser have to do with
chrome.
... the term
chrome is used in different contexts to mean different things.
... in general,
chrome refers to a xul interface and all of its supporting files;
chrome means the xul content and structure, plus the css skin, plus whatever localization and platform-specific files are part of that xul interface.
...And 15 more matches
Xray vision
the javascript code that along with the c++ core, implements the browser itself is called
chrome code and runs using system privileges.
... if
chrome-privileged code is compromised, the attacker can take over the user's computer.
... as well as these two levels of privilege,
chrome code can create sandboxes.
...And 15 more matches
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.
...we need the namespace to be a global object that it can be used everywhere in the window
chrome.
...for instance, you could replace a method in any object in the firefox
chrome, so that it behaves differently than how it normally does.
...And 14 more matches
Creating a Firefox sidebar extension - Archive of obsolete content
package structure emptysidebar \-
chrome |- content |- locale | \- en-us \- skin create all folders, except for skin.
...
chrome/locale/emptysidebar.dtd <!entity emptysidebar.title "emptysidebar"> <!entity openemptysidebar.commandkey "e"> <!entity openemptysidebar.modifierskey "shift accel"> the content folder includes our sidebar, the emptysidebar.xul is shown in example 3.
...
chrome/content/emptysidebar.xul <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css" ?> <?xml-stylesheet href="
chrome://browser/skin/browser.css" type="text/css" ?> <!doctype page system "
chrome://emptysidebar/locale/emptysidebar.dtd"> <page id="sbemptysidebar" title="&emptysidebar.title;" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" > <vbox flex="1"> <label id="atest" value="&emptysidebar.title;" /> </vbox> </page> new extensions can be registered in the menus or popups, firefox uses overlays for extending menus.
...And 14 more matches
Installer Script - Archive of obsolete content
var cf = getfolder("
chrome"); 43.
... register
chrome(content | delayed_
chrome, getfolder(cf,"toolkit.xpi"),"content/global/"); 44.
... register
chrome(content | delayed_
chrome, getfolder(cf,"browser.xpi"),"content/communicator/"); 45.
...And 14 more matches
Getting started with XULRunner - Archive of obsolete content
here is the subfolder structure: + myapp/ | +-+
chrome/ | | | +-+ content/ | | | | | +-- main.xul | | | | | +-- main.js | | | +--
chrome.manifest | +-+ defaults/ | | | +-+ preferences/ | | | +-- prefs.js | +-- application.ini | +--
chrome.manifest notice that there are 5 files in the folder structure: application.ini,
chrome.manifest (2), prefs.js, and main.xul.
... the /
chrome/
chrome.manifest file is optional, but might be useful for backward compatibility.
... note: in xulrunner 2.0, the
chrome.manifest is now used to register xpcom components in addition to its previous uses.
...And 14 more matches
XUL Migration Guide - Archive of obsolete content
by using the sdk's low-level apis you can directly modify the browser
chrome.
...however, you can include a
chrome.manifest file in your add-on and it will be included in the generated xpi.
... my-addon/
chrome/ content/ locale/ skin/
chrome.manifest data/ lib/ package.json there are limitations on what you can do in this manifest file: for example, you can't register overlays, resource: uris, or components.
...And 13 more matches
Message manager overview
in multiprocess firefox there are (at least) two processes: the
chrome process, also called the parent process, runs the browser ui (
chrome) code and code inserted by extensions one or more content processes, also called child processes.
... message managers are designed to enable
chrome-privileged javascript code in one process to communicate with
chrome-privileged javascript code in a different process.
... at the top level, there are two different sorts of message managers: frame message managers: these enable
chrome process code to load a script into a browser frame (essentially, a single browser tab) in the content process.
...And 13 more matches
FileSystemEntry - Web APIs
you can use the filesystem: scheme on google
chrome to see all the files and folders that are stored in the origin of your app.
...
chrome shows a read-only list of all the files and folders stored the origin of your app.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystementry experimental
chrome full support 8alternate name full support 8alternate name alternate name uses the non-standard name: entryedge full suppo...
...And 13 more matches
PasswordCredential - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpasswordcredential experimental
chrome full support 51edge full support ≤79firefox ?
... webview android full support 51
chrome android full support 51firefox android ?
... samsung internet android full support 5.0passwordcredential() constructor non-standard
chrome full support 51edge full support ≤79firefox ?
...And 13 more matches
@font-feature-values - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet@font-feature-values
chrome no support noedge no support nofirefox full support 34 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support 9.1webview android no support no
chrome android no support nofirefox android full support 34 full support 34 full support 24disabled disabled from version 24: this feature is behind the layout.css.font-features.enabled preference (needs to be set to true).
... to change preferences in firefox, visit about:config.opera android no support nosafari ios full support 9.3samsung internet android no support no@annotation
chrome no support noedge no support nofirefox full support 34 full support 34 full support 24disabled disabled from version 24: this feature is behind the layout.css.font-features.enabled preference (needs to be set to true).
...And 13 more matches
Media container formats (file types) - Web media technologies
codec name (short) full codec name browser compatibility1 3gp third generation partnership firefox for android adts audio data transport stream firefox2 flac free lossless audio codec
chrome 56, edge 16, firefox 51, safari 11 mpeg / mpeg-2 moving picture experts group (1 and 2) — mpeg-4 (mp4) moving picture experts group 4
chrome 3, edge 12, firefox, internet explorer 9, opera 24, safari 3.1 ogg ogg
chrome 3, firefox 3.5, edge 173 (desktop only), internet explorer 9, opera 10.50 quicktime (mov) apple quicktime movie only o...
...lder versions of safari, plus other browsers that supported apple's quicktime plugin webm web media
chrome 6, edge 173 (desktop only), firefox 4, opera 10.6, safari (webrtc only) [1] unless otherwise specified, both mobile and desktop browser compatibility is implied if a browser is listed here.
... video codecs supported by 3gp codec browser support
chrome edge firefox safari avc (h.264) yes1,2 h.263 yes1 mpeg-4 part 2 (mp4v-es) yes1 vp8 yes1 [1] firefox only supports 3gp on openmax-based devices, which currently means the boot to gecko (b2g) platform.
...And 13 more matches
XULRunner tips - Archive of obsolete content
the following prefs must also be set to make the xpinstall dialog, extension manager, and theme manager work: pref("xpinstall.dialog.confirm", "
chrome://mozapps/content/xpinstall/xpinstallconfirm.xul"); pref("xpinstall.dialog.progress.skin", "
chrome://mozapps/content/extensions/extensions.xul?type=themes"); pref("xpinstall.dialog.progress.
chrome", "
chrome://mozapps/content/extensions/extensions.xul?type=extensions"); pref("xpinstall.dialog.progress.type.skin", "extension:manager-themes"); pref("xpinstall.dialog.progress.type.
chrome", "extension...
...:manager-extensions"); pref("extensions.update.enabled", true); pref("extensions.update.interval", 86400); pref("extensions.dss.enabled", false); pref("extensions.dss.switchpending", false); pref("extensions.ignoremtimechanges", false); pref("extensions.logging.enabled", false); pref("general.skins.selectedskin", "classic/1.0"); // nb these point at amo pref("extensions.update.url", "
chrome://mozapps/locale/extensions/extensions.properties"); pref("extensions.getmoreextensionsurl", "
chrome://mozapps/locale/extensions/extensions.properties"); pref("extensions.getmorethemesurl", "
chrome://mozapps/locale/extensions/extensions.properties"); if your application is based on gecko 2.0, you need to register a component through the new component registration because the extension manager uses fuel, nam...
... useful
chrome urls most of these require branding.
...And 12 more matches
nsIFaviconService
for a given page will give you a uri that, when displayed in
chrome, will result in the given page's favicon.
...for pages where we don't have a favicon, this will be a
chrome uri of the default icon for a web page.
...for
chrome, this will do nothing and return the input uri.
...And 12 more matches
Fullscreen API - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfullscreen deprecated
chrome full support 71 full support 71 full support 15alternate name alternate name uses the non-standard n...
... full support 6alternate name alternate name uses the non-standard name: webkitisfullscreenwebview android full support 71 full support 71 full support ≤37alternate name alternate name uses the non-standard name: webkitisfullscreen
chrome android full support 71 full support 71 full support 18alternate name alternate name uses the non-standard name: webkitisfullscreenfirefox android full support 64 full support ...
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfullscreenelement
chrome full support 53prefixed full support 53prefixed prefixed implemented with the vendor prefix: webkitedge full support ...
...And 12 more matches
Index - Web APIs
the earlier versions of
chrome and ie default to "inherit".
... starting in
chrome 43, the default is "off" and "inherit" is no longer supported.
... 1330 file and directory entries api support in firefox api,
chrome, compatibility, file system api, file and directory entries api, files, firefox, guide, offline, web compatibility, google, google
chrome the original file system api was created to let browsers implement support for accessing a sandboxed virtual file system on the user's storage device.
...And 12 more matches
Browser detection using the user agent - HTTP
in 2017,
chrome unflagged experimental lookbehind support in regular expressions, but no other browser supported it.
... so, you might have thought to do this: // this code snippet splits a string in a special notation if (navigator.useragent.indexof("
chrome") !== -1){ // yes!
... much less performant, but works*/ var splitupstring = function(str){ return str.replace(/[a-z]/g,"z$1").split(/z(?=[a-z])/g); }; } console.log(splitupstring("foobare")); // ["foob", "are"] console.log(splitupstring("jqwhy")); // ["jq", "w", "hy"] the above code would have made several incorrect assumptions: it assumed that all user agent strings that include the substring "
chrome" are
chrome.
...And 12 more matches
Web video codec guide - Web media technologies
it's worth noting, however, that at least for firefox and
chrome, the levels are actually ignored at this time when performing software decoding, and the decoder just does the best it can to play the video given the settings provided.
...r 10 4:0:0 (greyscale) or 4:2:0 high 8 or 10 4:0:0 (greyscale), 4:2:0, or 4:4:4 professional 8, 10, or 12 4:0:0 (greyscale), 4:2:0, 4:2:2, or 4:4:4 hdr support yes variable frame rate (vfr) support yes browser compatibility feature
chrome edge firefox internet explorer opera safari av1 support 70 75 67 no 57 no container support isobmff[1], mpeg-ts, mp4, webm rtp / webrtc compatible yes supporting/maintaining organization alliance for open media specification https:...
... 8 to 10 4:0:0 (greyscale), 4:2:0, and 4:2:2 high 4:4:4 predictive 8 to 14 4:0:0 (greyscale), 4:2:0, 4:2:2, and 4:4:4 hdr support yes; hybrid log-gamma or advanced hdr/sl-hdr; both are part of atsc variable frame rate (vfr) support yes browser compatibility feature
chrome edge firefox internet explorer opera safari avc/h.264 support 4 12 35[1] 9 25 3.2 container support 3gp, mp4, webm rtp / webrtc compatible yes supporting/maintaining organization mpeg / itu specification https://mpeg.chiariglione.o...
...And 12 more matches
Complete - Archive of obsolete content
the xpi contains: install.rdf information about the extension
chrome.manifest registration data for firefox etc.
... install.js installation script for seamonkey
chrome directory containing the extension code
chrome/allcustom.jar the extension jar defaults/preferences directory containing a preferences file inside the jar there are three directories: content xul, javascript and other content that does not depend on the locale or theme locale files for each locale skin files for each theme version checks firefox etc.
...to tell the application that the files it needs are in a jar, there are changes to
chrome.manifest (for firefox etc.) and to install.js (for seamonkey).
...And 11 more matches
Sunbird Theme Tutorial - Archive of obsolete content
registering your theme to register your theme, create a plain text file named <tt>
chrome.manifest</tt>.
... copy and paste the content from here (just one line): skin calendar testing
chrome/calendar/ change <tt>testing</tt> to your theme's one-word internal name.
...in the program directory, go to the <tt>
chrome</tt> directory.
...And 11 more matches
Common Firefox theme issues and solutions - Archive of obsolete content
in order to work around this issue, you need to either rename any of the following files that are in your
chrome://browser/skin/ folder and fix any references to those files, or copy them to the folder
chrome://browser/skin/lion/: keyhole-circle.png toolbar.png toolbarbutton-dropmarker.png tabbrowser/alltabs-box-bkgnd-icon.png tabview/tabview.png places/toolbar.png linux linux select box fields are showing both drop arrow and spinner arrows on linux: the styling of drop down select box fields ma...
... the problem is commonly caused by a -moz-appearance:menulist style rule in
chrome://global/skin/menulist.css.
...the fix is to make sure any style rule that references #appmenu-button also has a comparable reference to #appmenu-toolbar-button in
chrome://browser/skin/browser.css.
...And 11 more matches
Communicating with frame scripts
chrome code and frame scripts communicate back and forth using a messaging api which can include json-serializable objects as arguments.
... the api is mostly symmetrical, with one major exception: frame scripts can send asynchronous or synchronous messages to
chrome, but
chrome can only send asynchronous messages to content.
... this is an intentional design decision made to prevent content code from making
chrome code unresponsive.
...And 11 more matches
BasicCardResponse - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbasiccardresponse
chrome no support noedge no support ≤18 — 79firefox full support 56notes disabled full support ...
... webview android no support no
chrome android full support 57firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true) and th...
... samsung internet android full support 7.0billingaddress
chrome no support noedge no support ≤18 — 79firefox full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled prefere...
...And 11 more matches
MSGestureEvent - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmsgestureevent non-standard
chrome no support noedge no support 12 — 79firefox no support noie full support ...
... 10opera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support nomsgestureevent() constructor non-standard
chrome no support noedge no support 12 — 79firefox no support no...
...ie full support 10opera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support noexpansion non-standard
chrome no support noedge no support 12 — 79firefox no supp...
...And 11 more matches
URLUtilsReadOnly - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung interneturlutilsreadonly
chrome no support noedge no support nofirefox full support 57 full support ...
....5 — 57notes notes firefox has a bug whereby single quotes contained in urls are escaped when accessed via url apis (see bug 1386683).ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 57 full support 57 no support 4 — 57notes notes firefox has a bug whereby single quotes contained in urls are escaped when accessed via url apis (see bug 1386683).opera android ...
... no support nosafari ios no support nosamsung internet android no support nohash experimental
chrome no support noedge no support nofirefox full support 38 full support 38 no support 3.5 — 38notes notes before firefox 38, firefox returned the hash percent encoded.
...And 11 more matches
Strategies for carrying out testing - Learn web development
for example, if you live in western europe or north america, you will know that a lot of people use windows and mac desktops/laptops, where the main browsers are
chrome, firefox, safari, ie, and edge.
... lots of people use ios and android, so you probably also want to test the latest versions of ios safari, the last couple of versions of the old android stock browser, and
chrome and firefox for ios and android.
... this gives us the following support chart so far: a grade:
chrome and firefox for windows/mac, safari for mac, edge and ie for windows (last two versions of each), ios safari for iphone/ipad, android stock browser (last two versions) on phone/tablet,
chrome and firefox for android (last two versions) on phone tablet b grade: ie 9 for windows c grade: n/a if you live somewhere else, or are working on a site that will serve somewhere else (e.g.
...And 10 more matches
BluetoothRemoteGATTDescriptor - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbluetoothremotegattdescriptor experimental
chrome full support 57notes full support 57notes notes macos only.
...to change preferences in
chrome, visit
chrome://flags.
... full support 57notes notes windows 10.safari no support nowebview android no support no
chrome android full support 57firefox android no support noopera android full support 44safari ios no support nosamsung internet android full support 7.0characteristic experimentalc...
...And 10 more matches
JavaScript modules - JavaScript
browser support use of native javascript modules is dependent on the import and export statements; these are supported in browsers as follows: import desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsimport
chrome full support 61edge full support 16 full support 16 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 48safari full support 10.1webview android full support 61
chrome android full support 61firefox android full support 60 full support 60 no support 54 — 60disabled disabled from version 54 until version 60 (exclusive): this feature is behind the dom.modulescripts.enabled preference.
...see node's ecmascript modules documentation for more details.disabled from version 8.5.0: this feature is behind the --experimental-modules runtime flag.dynamic import
chrome full support 63edge full support 79firefox full support 67 full support 67 no support 66 — 67disabled disabled from version 66 until version 67 (exclusive): this feature is behind the javascr...
...And 10 more matches
Creating a Window - Archive of obsolete content
the simplest xul file has the following structure: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="findfile-window" title="find files" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <!-- other elements go here --> </window> this window will not do anything since it doesn't contain any ui elements.
... <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> this line is used to specify the style sheets to use for the file.
...if you are only in the development stage, you can just type the url (whether a
chrome:, file: or other url type) into the location bar in a mozilla browser window.
...And 9 more matches
Skinning XUL Files by Hand - Archive of obsolete content
by the way, in contrast to the term skin, "
chrome" refers to the skin and the content and whatever localization and platform-specific files are necessary for a particular part of the application or window.
... the skin is just the style or appearance of an interface, where the
chrome is the style, content, and structure.
... the
chrome is everything in the front end of an application.
...And 9 more matches
Limitations of frame scripts
however, some apis that work in the
chrome process will not work in a frame script.
...file i/o should all be done in the
chrome process.
... services.search services.downloads
chrome windows anything that needs to use
chrome windows will not work in the content process.
...And 9 more matches
IDBKeyRange - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbkeyrange
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yesbound
chrome ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yesincludes
chrome ...
...And 9 more matches
Key Values - Web APIs
[5]
chrome 67 and firefox 63 now correctly interpret the right alt key for keyboard layouts which map that key to altgr.
... see firefox bug bug 900750 and
chrome bug 25503 for further details.
... gdk_key_zoomout (0x1008ff8c) qt::key_zoomout (0x010000f7) keycode_zoom_out (169) [1] in google
chrome 52, the cancel key incorrectly returns the key code "pause".
...And 9 more matches
MediaMetadata - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmediametadata experimental
chrome full support 57edge no support nofirefox full support 71ie no support ...
... webview android no support no
chrome android full support 57firefox android ?
... samsung internet android full support 7.0mediametadata() constructor experimental
chrome full support 57edge no support nofirefox full support 71ie no support noopera full support yessafari ?
...And 9 more matches
min-width - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmin-width
chrome full support 1edge full support 12firefox full support 1notes full support ...
...opera supports applying min-width to table elements.safari full support 1webview android full support 4.4
chrome android full support 18firefox android full support 4notes full support 4notes notes css 2.1 leaves the behavior of min-width with table undefined.
... firefox supports applying min-width to table elements.opera android full support 14safari ios full support 1samsung internet android full support 1.0auto
chrome full support 21notes full support 21notes notes
chrome uses auto as the initial value for min-width.edge full support 12notes full support 12notes notes edge uses auto as the initial value for min-width.firefox full support 34 full support ...
...And 9 more matches
Bootstrapped extensions - Archive of obsolete content
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).
... replace existing
chrome:// uris with your content (using the override instruction).
... 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 8 more matches
Chapter 3: Introduction to XUL—How to build a more intuitive UI - Archive of obsolete content
fixme: explain how setting this option and use next listings if we want to run firefox displaying none of its gui and only the contents of a certain xul file, we can launch firefox and set the option: -
chrome file_url.xul another way, as shown in listing 1, is to use the window.opendialog() method, which can be used only within a xul window.
... window.opendialog('another.xul', '_blank','
chrome,all,dialog=no'); listing 1: opening a window without the firefox gui xul as an xml application listing 2 shows an example of a gui definition file marked up in xul (a "xul document").
... <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet href="
chrome://global/skin/"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <!-- contents go here.
...And 8 more matches
Getting Started - Archive of obsolete content
for this reason we suggest that you install a second copy into a second directory (make sure that you use a different profile as stated in the release notes) extract the
chrome the
chrome is stored in \mozilla\
chrome and the individual modules are stored in jar files.
...extract classic.jar into \classic (\mozilla\
chrome\classic), but make sure to keep the directory structure.
...to point mozilla at the correct files we need to open up \mozilla\
chrome\installed-
chrome.txt in a text editor.
...And 8 more matches
Install Scripts - Archive of obsolete content
components include new
chrome packages, skins and plugins.
...for the find files dialog, we will install the files into the
chrome directory.
...for the
chrome directory, the directory identifier is '
chrome'.
...And 8 more matches
Deploying XULRunner - Archive of obsolete content
components which are part of the application
chrome/ ...
...
chrome which is part of the application ...
...copy xulrunner/ to this directory when deploying with xulrunner 2.0 and above do the following: move
chrome.manifest to the root directory, and adjust resource paths inside
chrome.manifest accordingly with xulrunner 9.0 or 10.0 you may need to copy "mozutils.dll" and/or "mozcrt19.dll" from the xulrunner directory to the root directory.
...And 8 more matches
Limitations of frame scripts
however, some apis that work in the
chrome process will not work in a frame script.
... this is one of a pair of articles: the other one lists limitations of
chrome scripts.
... services.search services.downloads
chrome windows anything that needs to use
chrome windows will not work in the content process.
...And 8 more matches
Message manager overview
in the initial version of multiprocess firefox there are two processes: the
chrome process, also called the parent process, runs the browser ui (
chrome) code and code inserted by extensions the content processes, also called the child processes, run all web content.
...at the top level, there are two different sorts of message managers: frame message managers: these enable
chrome process code to load a script into a browser frame (essentially, a single browser tab) in the content process.
...if
chrome code wants to run code in the content process so it can access web content, this is usually the sort of message manager to use.
...And 8 more matches
XPCOM changes in Gecko 2.0
starting in gecko 2, however, components are registered using manifest files, similarly to how
chrome is registered.
... in fact, the same
chrome manifest file will be used to register components.
...for extensions, this is the same
chrome.manifest currently used to register
chrome.
...And 8 more matches
nsIWebBrowser
embedders use this interface during initialization to associate the new web browser instance with the embedders
chrome and to register any listeners.
...method overview void addwebbrowserlistener(in nsiweakreference alistener, in nsiidref aiid); void removewebbrowserlistener(in nsiweakreference alistener, in nsiidref aiid); attributes attribute type description containerwindow nsiwebbrowser
chrome the
chrome object associated with the browser instance.
... the embedder must create one
chrome object for each browser object that is instantiated.
...And 8 more matches
PhotoCapabilities - Web APIs
example the following example, extracted from
chrome's image capture / photo resolution sample, uses the results from getphotocapabilities() to modify the size of an input range.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetphotocapabilities experimental
chrome full support 59edge full support ≤79firefox ?
... webview android full support 59
chrome android full support 59firefox android ?
...And 8 more matches
Web audio codec guide - Web media technologies
imum bit rate for stereo sound 96 kbps at 48 khz sample rate compression lossy maximum audio channels 48 (plus 16 low frequency enhancement channels) audio frequency bandwidth 0 hz - 96 khz (standard audio channels) 0 hz - 120 hz (lfe channels) latency 20 ms to 405 ms browser compatibility feature
chrome edge firefox internet explorer opera safari aac support yes[2] yes yes[1] 9 yes 3.1 container support mp4, adts, 3gp rtp / webrtc compatible yes licensing for streaming or distributing aac-encoded content: no license required; developers of co...
...this capability was introduced on each platform in different firefox releases: aac support in firefox using external library, by platform platform first firefox version with aac support windows (vista and later) 22 android 20 linux (depends on gstreamer) 26 macos 35 [2]
chrome supports aac only in mp4 containers, and only supports aac's main profile.
... browser compatibility feature
chrome edge firefox internet explorer opera safari alac support no no no no no yes container support mp4 rtp / webrtc compatible no licensing open license (apache license 2.0); source code available on github amr (adaptive multi-rate) the ada...
...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 microsoft icon image/x-icon .ico, .cur
chrome, edge, firefox, internet explorer, opera, safari jpeg ...
...joint photographic expert group image image/jpeg .jpg, .jpeg, .jfif, .pjpeg, .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...
... 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, 4, 8, and 16 each pixel consists of a single d-bit value indicating the brightness of the greyscale pixel.
...And 8 more matches
Interaction between privileged and non-privileged pages - Archive of obsolete content
sending data from unprivileged document to
chrome an easy way to send data from a web page to an extension is by using custom dom events.
... note: if you're using html5's postmessage() to send a message from unprivileged code to privileged code, adding 'true' to the end of your event listener in your privileged
chrome code will allow the message to be received.
... document.addeventlistener("message", function(e) { yourfunction(e); }, false, true); sending data from
chrome to unprivileged document to "answer" the web page (e.g., return code), your extension can set an attribute or attach child elements on the event target element (<myextensiondataelement/> in this example).
...And 7 more matches
Index of archived content - Archive of obsolete content
querystring request selection self simple-prefs simple-storage system tabs timers ui url widget windows low-level apis /loader
chrome console/plain-text console/traceback content/content content/loader content/mod content/symbiont content/worker core/heritage core/namespace core/promise dev/panel event/core event/target frame/hidden-fr...
... add a context menu item add a menu item to firefox adding a button to the toolbar annotator creating annotations displaying annotations implementing the widget overview storing annotations
chrome authority creating event targets creating reusable modules developing for firefox mobile display a popup getting started (jpm) getting started (cfx) list open tabs listen for page load listening for load and 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 examples and demos from articles file i/o ...
...And 7 more matches
Index - Archive of obsolete content
54
chromemargin xul, xul attribute, xul reference no summary!
... 96 disable
chrome xul, xul attribute, xul reference no summary!
... 138 hide
chrome xul attributes, xul reference no summary!
...And 7 more matches
Custom toolbar button - Archive of obsolete content
99/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description about="urn:mozilla:install-manifest" em:name="custom button" em:description="my custom toolbar button" em:creator="my name" em:id="custom-toolbar-button@example.com" em:version="1.0" em:homepageurl="http://developer.mozilla.org/en/docs/custom_toolbar_button" em:iconurl="
chrome://custombutton/content/icon.png" > <em:targetapplication><!-- firefox --> <description em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" em:minversion="1.4" em:maxversion="*" /> </em:targetapplication> <em:targetapplication><!-- thunderbird --> <description em:id="{3550f703-e582-4d05-9a08-453d09bdfdc6}" em:minversion="1.5" em:...
...create a plain text file named
chrome.manifest.
... copy the following content, and paste it into the new file: content custombutton
chrome/ style
chrome://global/content/customizetoolbar.xul
chrome://custombutton/content/button.css # firefox overlay
chrome://browser/content/browser.xul
chrome://custombutton/content/button.xul # thunderbird mail overlay
chrome://messenger/content/messenger.xul
chrome://custombutton/content/button.xul # thunderbird compose overlay
chrome://messenger/content/messengercompose/messengercompose.xul
chrome://custombutton/content/button.xul # thunderbird address book overlay
chrome://messenger/content/addressbook/addressbook.xul
chrome://custombutton/content/button.xul # sunbird overlay
chrome://calendar/content/calendar.xul
chrome://custombutton/content/button.xul optionally remove the sections for toolbars t...
...And 7 more matches
window - Archive of obsolete content
to set an icon for the window, create a platform-specific icon file <windowid>.ico and/or <windowid>.xpm and place or install these files into the <mozilla-directory>/
chrome/icons/default/ directory.
... without including the css file at "
chrome://global/skin/", the window will not be stylized and will be invisible and glitchy when opened as a dialog.
... attributes accelerated,
chromemargin, disable
chrome, disablefastfind, drawintitlebar, fullscreenbutton, height, hide
chrome, id, lightweightthemes, lightweightthemesfooter, screenx, screeny, sizemode, title, width, windowtype examples <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <!-- run this example using copy & paste in this live xul editor: https://github.com/km-200/xul --> <!-- extremely recommended to keep this css include!!
...And 7 more matches
Script security
this javascript code, which is commonly referred to as
chrome code, runs with system privileges.
...legacy sdk extensions also run with
chrome privileges.
...from the point of view of
chrome code, the script security model in gecko is intended to provide that help to make writing secure, system-privileged javascript a realistic expectation.
...And 7 more matches
nsIXULWindow
inherits from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) an nsixulwindow is created as part of the creation of a top-level
chrome window.
... method overview void addchildwindow(in nsixulwindow achild); void apply
chromeflags(); native code only!
... void assume
chromeflagsarefrozen(); void center(in nsixulwindow arelative, in boolean ascreen, in boolean aalert); nsixulwindow createnewwindow(in print32 a
chromeflags, in nsiappshell aappshell); nsidocshelltreeitem getcontentshellbyid(in wstring id); void removechildwindow(in nsixulwindow achild); void showmodal(); attributes attribute type description
chromeflags pruint32
chromeflags are from nsiwebbrowser
chrome.
...And 7 more matches
NavigationPreloadManager - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnavigationpreloadmanager experimental
chrome full support 62edge full support 18firefox no support nonotes no su...
... webview android full support 62
chrome android full support 62firefox android no support nonotes no support nonotes notes implementation tracked in bug 1290958opera android full support 46safari ios ?
... samsung internet android full support 8.0disable experimental
chrome full support 62edge full support 18firefox no support nonotes no support nonotes notes implementation tracked in bug 1290958ie ?
...And 7 more matches
PushRegistrationManager - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpushregistrationmanager experimentaldeprecated
chrome no support noedge no support nofirefox ?
... webview android no support no
chrome android no support nofirefox android ?
... samsung internet android no support nogetregistration experimentaldeprecated
chrome no support noedge no support nofirefox ?
...And 7 more matches
WritableStream - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetwritablestream experimental
chrome full support 59edge full support 16firefox no support noie no support ...
... webview android full support 59
chrome android full support 59firefox android no support noopera android full support 44safari ios ?
... samsung internet android full support 7.0writablestream() constructor experimental
chrome full support 59edge full support 16firefox no support noie no support noopera full support 47safari ?
...And 7 more matches
break-after - CSS: Cascading Style Sheets
support in multi-column layout desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsupported in multi-column layout
chrome full support 50edge full support 12firefox no support noie full support ...
... 10opera full support 37 full support 37 no support 11.1 — 12.1safari no support nowebview android full support 50
chrome android full support 50firefox android no support noopera android full support 37 full support 37 no support 11.1 — 12.1safari ios no support nosamsung internet android full support...
... 5.0always
chrome no support noedge no support nofirefox no support noie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet andr...
...And 7 more matches
break-before - CSS: Cascading Style Sheets
support in multi-column layout desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsupported in multi-column layout
chrome full support 50edge full support 12firefox full support 65ie full support...
... 10opera full support 37 full support 37 no support 11.1 — 12.1safari no support nowebview android full support 50
chrome android full support 50firefox android full support 65opera android full support 37 full support 37 no support 11.1 — 12.1safari ios no support nosamsung internet android full sup...
...port 5.0always experimental
chrome no support noedge no support nofirefox no support noie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosams...
...And 7 more matches
max-width - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmax-width
chrome full support 1edge full support 12firefox full support 1notes full support ...
...opera supports applying max-width to table elements.safari full support 1webview android full support 4.4
chrome android full support 18firefox android full support 4notes full support 4notes notes css 2.1 leaves the behavior of max-width with table undefined.
... firefox supports applying max-width to table elements.opera android full support 14safari ios full support 1samsung internet android full support 1.0fit-content experimental
chrome full support 46 full support 46 full support 25prefixed prefixed implemented with the vendor prefix: -webkit-edge full support 79 full support 79 full support 79prefixed prefixed implemented with the vendor prefix: -webk...
...And 7 more matches
Add to Home screen - Progressive web apps (PWAs)
(note: in android 8 and higher, a system-level "add to home screen" permission dialog will be shown first.) if you have mobile
chrome available, the experience is slightly different; upon loading our site, you'll see an install banner pop up asking whether you want to add this app to your home screen.
... note: you can find out a lot more about
chrome install banners from the article web app install banners.
... if you choose not to add it to your home screen at this point, you can do so later using the add to home screen icon in the main
chrome menu.
...And 7 more matches
Modules - Archive of obsolete content
if the loading script has
chrome privileges, then so will any methods called by the loading script, even if that method was installed by a malicious script.
...compartments with
chrome privileges have access to the components object, giving them full access to the host platform.
...passing an xul url will result in a compartment with
chrome privileges (note, however, that if you ever actually do this in any of your code, gabor will be forced to hunt you down and kill you).
...And 6 more matches
Adding Toolbars and Toolbar Buttons - Archive of obsolete content
<overlay id="xulschoolhello-browser-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <toolbarpalette id="browsertoolbarpalette"> <toolbarbutton id="xulschoolhello-hello-world-button" class="toolbarbutton-1
chromeclass-toolbar-additional" label="&xulschoolhello.helloworld.label;" tooltiptext="&xulschoolhello.helloworld.tooltip;" oncommand="xulschool
chrome.browseroverlay.dosomething(event);" /> <!-- more buttons here.
... setting the image for a toolbar button is done with css: #xulschoolhello-hello-world-button { list-style-image: url("
chrome://xulschoolhello/skin/hello-world.png"); } it's not really that simple to set the image for a toolbar button, because we need to consider the appearance of the button on different systems, and also consider the different button states, but we'll get into that further ahead.
... the css file with your toolbar styles needs to be included in the overlay file, as you would expect, but also in the
chrome.manifest file.
...And 6 more matches
Observer Notifications - Archive of obsolete content
observerservice.notifyobservers(null, "xulschoolhello-test-topic", "hello"); non-
chrome to
chrome communication non-
chrome to
chrome communication is one of the main uses of observers.
... by non-
chrome we mean javascript code modules or xpcom.
... as we saw in previous sections, you can use javascript code module and xpcom objects very easily from the
chrome.
...And 6 more matches
Learn XPI Installer Scripting by Example - Archive of obsolete content
first, a quick scan of the contents of the xpi file (which you can open using with any unzip utility) reveals the following high-level directory structure: install.js bin\
chrome\ components defaults\ icons\ plugins\ res\ note that this high-level structure parallels the directory structure of the installed browser very closely: as you will see in the installation script, the contents of the archive are installed onto the file system in much the same way that they are stored in the archive itself, though it's possible to rearrange things arbitrarily upon in...
..."program" represents the directory where software itself is installed (e.g., c:\program files\ on win32 systems), as opposed to supporting directories like "components", "
chrome", or "temporary" (see getfolder in the xpinstall api reference for a list of keywords).
...when you install new
chrome, for example, like the browser.xpi install does, you need to alert the
chrome registry to these changes, so that skins, user preferences, packaging lists, and localization bundles will all track the new software.
...And 6 more matches
Creating toolbar buttons (Customize Toolbar Window) - Archive of obsolete content
note: some people overlay
chrome://messenger/content/mailwindowoverlay.xul.
... let button = doc.createelement("toolbarbutton"); button.setattribute("id", button_id); button.setattribute("label", "replace bookmark"); button.setattribute("class", "toolbarbutton-1
chromeclass-toolbar-additional"); button.setattribute("tooltiptext", "replace an existing bookmark"); button.style.liststyleimage = "url(" + icon + ")"; button.addeventlistener("command", main.action, false); toolbox.palette.appendchild(button); this code is thanks to dgutov and is seen in full context at his repository here at github: dgutov / bmreplace / bootstrap.js.
...el free to add information about other applications): application (theme name) big icon size small icon size firefox 1.0 (winstripe) 24x24 16x16 thunderbird 1.0 (qute) 24x24 16x16 the stylesheet to set the image for your toolbar button, use the following css rules: /* skin/toolbar-button.css */ #myextension-button { list-style-image: url("
chrome://myextension/skin/btn_large.png"); } toolbar[iconsize="small"] #myextension-button { list-style-image: url("
chrome://myextension/skin/btn_small.png"); } applying the stylesheet remember to attach the stylesheet you created to both the overlay file and the customize toolbar window.
...And 6 more matches
browser - Archive of obsolete content
get firefox most of the properties and methods of the browser will rarely be used and can only be called from
chrome urls.
...more precisely: the document loaded into a
chrome window is always of
chrome type.
... subdocuments of
chrome documents are of
chrome type, unless the container element (one of iframe, browser or editor) has one of the special type attribute values (the common ones are content, content-targetable and content-primary) indicating that the subdocument is of content type.
...And 6 more matches
PBackground
pbackground is a mechanism available since gecko 30 (see bug 956218) that builds on top of ipdl to provide a solution to common problems that arise when handling multiple threads in the
chrome process, for example communication between workers and multiple child processes and other parent-process worker threads.
...ipdl protocols are used to specify how the
chrome and content processes talk to each other and verify that a content process is "following the rules".
...this is the foundation of how
chrome and content processes talk to each other in e10s.
...And 6 more matches
FileReaderSync - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilereadersync
chrome full support yesedge full support 12firefox full support 8ie full support ...
... yesopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 8opera android full support yessafari ios full support yessamsung internet android full support yesreadasarraybuffer
chrome full support yesedge full support 12firefox full support ...
... 8ie full support yesopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 8opera android full support yessafari ios full support yessamsung internet android full support yesreadasbinarystring
chrome full support yesedge full support ...
...And 6 more matches
IDBFactory - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbfactory
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
... full support 8samsung internet android full support 1.5 full support 1.5 no support 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitcmp
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full support 12firefox full support 16 full support 16 no support 10 — 16prefixed pref...
...And 6 more matches
max-height - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmax-height
chrome full support 18edge full support 12firefox full support 1notes full support ...
...opera supports applying max-height to table elements.safari full support 1.3webview android full support ≤37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0fit-content experimentalch...
...: -webkit- full support 2alternate name alternate name uses the non-standard name: intrinsicwebview android full support 46 full support 46 full support ≤37prefixed prefixed implemented with the vendor prefix: -webkit-
chrome android full support 46 full support 46 full support 25prefixed prefixed implemented with the vendor prefix: -webkit-firefox android partial support 4prefixed notes partial support 4prefixed notes prefixed imple...
...And 6 more matches
position - CSS: Cascading Style Sheets
html <dl> <div> <dt>a</dt> <dd>andrew w.k.</dd> <dd>apparat</dd> <dd>arcade fire</dd> <dd>at the drive-in</dd> <dd>aziz ansari</dd> </div> <div> <dt>c</dt> <dd>
chromeo</dd> <dd>common</dd> <dd>converge</dd> <dd>crystal castles</dd> <dd>cursive</dd> </div> <div> <dt>e</dt> <dd>explosions in the sky</dd> </div> <div> <dt>t</dt> <dd>ted leo & the pharmacists</dd> <dd>t-pain</dd> <dd>thrice</dd> <dd>tv on the radio</dd> <dd>two gallants</dd> </div> </dl> css * { box-sizing: border-box; } dl > div ...
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetposition
chrome full support 1edge full support 12firefox full support 1notes full support ...
... to them (bug 1379306).notes before firefox 30, absolute positioning of table rows and row groups was not supported (bug 63895).ie full support 4opera full support 4safari full support 1webview android full support ≤37
chrome android full support 18firefox android full support 4notes full support 4notes notes before firefox 57, absolute positioning did not work correctly when applied to elements inside tables that have border-collapse applied to them (bug 1379306).notes before firefox...
...And 6 more matches
WebAssembly.Table - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jstable
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung internet ...
...android full support 7.0nodejs full support 8.0.0table() constructor
chrome full support 57edge full support 16firefox full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full suppo...
...And 6 more matches
window/utils - Archive of obsolete content
getxulwindow(window) returns the nsixulwindow for the given nsidomwindow: var { ci } = require('
chrome'); var utils = require('sdk/window/utils'); var active = utils.getmostrecentbrowserwindow(); active instanceof ci.nsixulwindow // => false utils.getxulwindow(active) instanceof ci.nsixulwindow // => true parameters window : nsidomwindow returns nsixulwindow getbasewindow(window) returns the nsibasewindow for the given nsidomwindow: var { ci } = require('
chrome'); var utils = require('sdk/w...
...indow/utils'); var active = utils.getmostrecentbrowserwindow(); active instanceof ci.nsibasewindow // => false utils.getbasewindow(active) instanceof ci.nsibasewindow // => true parameters window : nsidomwindow returns nsibasewindow gettoplevelwindow(window) returns the toplevel nsidomwindow for the given child nsidomwindow: var { ci } = require('
chrome'); var utils = require('sdk/window/utils'); var browserwindow = utils.getmostrecentbrowserwindow(); var window = browserwindow.content; // `window` object for the current webpage utils.gettoplevelwindow(window) == browserwindow // => true parameters window : nsidomwindow returns nsidomwindow getwindowdocshell(window) returns the nsidocshell for the tabbrowser element.
... only
chrome, resource, and data schemes are accepted.
...And 5 more matches
Appendix D: Loading Scripts - Archive of obsolete content
this means that evalinsandbox can be used to execute code with a specified privilege level rather than full
chrome privileges.
...
chromebug supports firebug based sandboxes.
...// the following may be used instead at the top-level: // // let context = this if (components.utils.getglobalforobject) // gecko 2.x var context = components.utils.getglobalforobject({}); else // gecko 1.x context = {}.__parent__; loadscript("script.js", context); the sub-script loader the mozijssubscriptloader can be used to load local scripts from the
chrome:, resource:, and file: protocols into any javascript object.
...And 5 more matches
iframe - Archive of obsolete content
warning: when used in
chrome-privileged documents (either html or xul) such as firefox addons, the contents of the frame may have the same permissions as firefox itself.
...more precisely: the document loaded into a
chrome window is always of
chrome type.
... subdocuments of
chrome documents are of
chrome type, unless the container element (one of iframe, browser or editor) has one of the special type attribute values (the common ones are content, content-targetable and content-primary) indicating that the subdocument is of content type.
...And 5 more matches
Debugging a XULRunner Application - Archive of obsolete content
to show errors in
chrome javascript, the pref pref("javascript.options.showinconsole", true) must be set.
... debuggerserver.addbrowseractors("myxulrunnerappwindowtype"); } debuggerserver.openlistener(6000); for xulrunner version 37+ the code to enable the debugger has changed: components.utils.import('resource://gre/modules/devtools/dbg-server.jsm'); if (!debuggerserver.initialized) { debuggerserver.init(); debuggerserver.addbrowseractors(); debuggerserver.allow
chromeprocess = true; } let dbglistener=debuggerserver.createlistener(); dbglistener.portorpath=6000; dbglistener.open(); add the following to your prefs.js: (in recent ffox, edit about:config instead) pref("devtools.debugger.remote-enabled", true); in firefox, go to tools > web developer > connect...
... add <script src="
chrome://venkman/content/venkman-overlay.js" /> to one of your xul windows.
...And 5 more matches
Index - MDN Web Docs Glossary: Definitions of Web-related terms
31 blink glossary, infrastructure, layout, rendering engine blink is an open-source browser layout engine developed by google as part of chromium (and therefore part of
chrome as well).
... 74
chrome browser,
chrome, glossary, webmechanics in a browser, the
chrome is any visible aspect of a browser aside from the webpages themselves (e.g., toolbars, menu bar, tabs).
... this is not to be confused with the google
chrome browser.
...And 5 more matches
Performance best practices for Firefox front-end engineers
if you need more elevated privileges than a standard worker allows, consider using a
chromeworker, which is a firefox-only api which lets you create workers with more elevated privileges.
... historically, there hasn't been an easy way of doing this - however, bug 1434376 has recently landed some
chromeonly helpers to the window binding to make this simpler.
... because interruptible reflows can only be interrupted when laying out content, and not
chrome ui, the rest of this section is offered only as context.
...And 5 more matches
Packaging WebLock
the sample installation script shown below uses the mozilla xpinstall technology to manipulate an installer and talk to mozilla's
chrome registry as high-level javascript objects.
... what is the
chrome registry?
... 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 5 more matches
nsIWindowWatcher
method overview nsiwebbrowser
chrome get
chromeforwindow(in nsidomwindow awindow); nsiauthprompt getnewauthprompter(in nsidomwindow aparent); nsiprompt getnewprompter(in nsidomwindow aparent); nsidomwindow getwindowbyname(in wstring atargetname, in nsidomwindow acurrentwindow); nsisimpleenumerator getwindowenumerator(); nsidomwindow openwindow(in nsidomwindow aparent, in string aurl, in st...
... methods get
chromeforwindow() retrieve the
chrome window mapped to the given dom window.
... nsiwindowwatcher keeps a list of all top-level dom windows currently open, along with their corresponding
chrome interfaces.
...And 5 more matches
BudgetService - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbudgetservice experimentaldeprecatednon-standard
chrome full support 55edge full support ≤79firefox ?
... webview android full support 55
chrome android full support 55firefox android ?
... samsung internet android full support 6.0getbudget experimentaldeprecatednon-standard
chrome full support 55edge full support ≤79firefox ?
...And 5 more matches
FederatedCredential - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfederatedcredential experimental
chrome full support 51edge full support ≤79firefox ?
... webview android full support 51
chrome android full support 51firefox android ?
... samsung internet android full support 5.0federatedcredential() constructor non-standard
chrome full support 51edge full support ≤79firefox ?
...And 5 more matches
FileSystem - Web APIs
some browsers offer additional apis to create and manage file systems, such as
chrome's requestfilesystem() method.
...installing a
chrome extension.
... the relevant
chrome api can be found here.
...And 5 more matches
FileSystemDirectoryEntry - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemdirectoryentry experimental
chrome full support 8alternate name full support 8alternate name alternate name uses the non-standard name: directoryentryedge ...
... support yesprefixed prefixed implemented with the vendor prefix: webkitsafari full support 11.1webview android full support ≤37alternate name full support ≤37alternate name alternate name uses the non-standard name: directoryentry
chrome android full support 18alternate name full support 18alternate name alternate name uses the non-standard name: directoryentryfirefox android full support 50opera android no support nosafari ios full sup...
...port 11.3samsung internet android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkitcreatereader experimental
chrome full support 13edge full support 79firefox full support 50ie no support noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support ...
...And 5 more matches
NotificationEvent - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnotificationevent experimental
chrome full support 42edge full support ≤18firefox full support 44notes full su...
... webview android no support no
chrome android full support 42firefox android full support 44opera android full support 37safari ios ?
... samsung internet android full support 4.0notificationevent() constructor experimental
chrome full support 42edge full support ≤18firefox full support 44notes full support 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie ?
...And 5 more matches
font-variant - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-variant
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 4opera full support 3.5safari full support 1webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 11safari ios full support 1samsung internet android full support 1.0css fonts module level 3 shorthand
chrome full support 52edge full support 79firefox full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 39safari full support 9.1webview android full support 52
chrome android full support 52firefox android full support 34 full support 34 no support 33 — 34disabled disabled from version 33 until version 34 (exclusive): this feature is behind the layout.css.font-features.enabled preference (needs to be...
...And 5 more matches
<input type="time"> - HTML: Hypertext Markup Language
appearance
chrome and opera in
chrome/opera the time control is simple, with slots to enter hours and minutes in 12 or 24-hour format depending on operating system locale, and up and down arrows to increment and decrement the currently selected component.
... 12-hour 24-hour
chrome 83 in
chrome 83, the ui controls have been updated with a new look and feel.
... 24-hour firefox firefox's time control is very similar to
chrome's, except that it doesn't have the up and down arrows.
...And 5 more matches
Adding Events and Commands - Archive of obsolete content
window.addeventlistener( "load", function() { xulschool
chrome.browseroverlay.init(); }, false); you can do something similar with the onunload event, to do any cleanup you may need.
... another way to attach event handlers, just like html, is to place the handler in the xul code: <overlay id="xulschoolhello-browser-overlay" onload="xulschool
chrome.browseroverlay.init();" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> we prefer the first method because it keeps a better separation of content and behavior.
...for example: <button label="&xulschoolhello.defaultgreeting.label;" oncommand="xulschool
chrome.browseroverlay.changegreeting(event);" /> then on the javascript code you would have something like this: changegreeting : function(aevent) { // more stuff aevent.target.setattribute("label", somenewgreeting); } the target in this example is the button element, so clicking on it will change its text.
...And 4 more matches
Localizing an extension - Archive of obsolete content
to options.xul, we add this line: <!doctype window system "
chrome://stockwatcher2/locale/options.dtd"> we add a similar line to the stockwatcher.xul file: <!doctype overlay system "
chrome://stockwatcher2/locale/stockwatcher2.dtd"> in larger applications you might need to use entities from several locale files in a single xul file.
...the
chrome registry resolves the uris based on the user's current locale setting and the data you provide in your
chrome manifest.
...update the
chrome manifest to let firefox know about the locale files, we need to make a revision to our
chrome.manifest file, adding one line for each localization: locale stockwatcher2 en-us
chrome/locale/ this instructs firefox that the en-us localization is located in the
chrome/locale/en-us directory.
...And 4 more matches
Structure of an installable bundle - Archive of obsolete content
chrome.manifest, components, defaults) in bootstrapped extensions are not processed by a supporting application.
... (>=2.0) /
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) ...
... additional resources (such as
chrome:// or resource:// providers can be registered in the
chrome.manifest) application-specific /searchplugins/*.src sherlock search plugins firefox 1.5 and greater.
...And 4 more matches
Making a Mozilla installation modifiable - Archive of obsolete content
the archives are stored within the
chrome subdirectory of the mozilla installation directory.
...make sure you extract them into the same (
chrome) directory in which they are located.
...after extracting the files we will modify the mozilla
chrome registry to use the extracted files instead of the original jar archives.
...And 4 more matches
Making it into a static overlay - Archive of obsolete content
the packages are just standard zip archives of the files to be installed along with a javascript script that performs the installation and some rdf files that describe the components being installed for the
chrome registry.
...dynamic overlays are added to a xul file via a reference in the
chrome registry.
...to make the file into a static overlay, we need to move all the code we added to navigator.xul into a new file tinderstatusoverlay.xul in the same directory: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://navigator/content/tinderstatus.css" type="text/css"?> <overlay id="tinderstatusoverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript" src="
chrome://navigator/content/tinderstatus.js" /> <statusbar id="status-bar"> <statusbarpanel class="statusbarpanel-iconic" id="tinderbox-status" insertb...
...And 4 more matches
Getting Started - Archive of obsolete content
classic.jar locations linux: folder_with_seamonkey/
chrome/classic.jar windows: folder_with_seamonkey\
chrome\classic.jar for mac os x: folder_with_seamonkey/
chrome/classic.jar copy classic.jar to another easily accessible folder -- classic is recommended -- extract the contents of that folder, being sure to maintain the directory structure.
...create a directory called
chrome inside it.
...
chrome.manifest make a copy of
chrome.manifest and place it in \my_theme and open it up in your text editor.
...And 4 more matches
Creating a Help Content Pack - Archive of obsolete content
for example, if your glossary, index, and table of contents rdf files are all located at
chrome://myapp/locale/help/*, then you could put
chrome://myapp/locale/help/ here and use only the actual file names without path when needed later.
... the location of each of the glossary, index, and table of contents data sources is stored in one rdf:description element contained within one rdf:li element, like so: <rdf:seq> <rdf:li> <rdf:description nc:panelid="glossary" nc:datasources="
chrome://foo/locale/help/glossary.rdf"/> </rdf:li> <rdf:li> <rdf:description nc:panelid="toc" nc:datasources="
chrome://foo/locale/help/glossary.rdf"/> </rdf:li> <rdf:li> <rdf:description nc:panelid="index" nc:datasources="
chrome...
...to have the help viewer search through these additional data sources, define another rdf:li element like so: <rdf:li> <rdf:description nc:panelid="search" nc:datasources="" nc:emptysearchtext="[no matching items found.]" nc:emptysearchlink="
chrome://foo/locale/bar.html"/> </rdf:li> nc:panelid should be set to search.
...And 4 more matches
browser.type - Archive of obsolete content
more precisely: the document loaded into a
chrome window is always of
chrome type.
... subdocuments of
chrome documents are of
chrome type, unless the container element (one of iframe, browser or editor) has one of the special type attribute values (the common ones are content, content-targetable and content-primary) indicating that the subdocument is of content type.
... this boundary has a number of special effects, such as making window.top == window (unless the browser is added to a
chrome document), and preventing documents from inheriting the principal of the parent document.
...And 4 more matches
Introduction to XUL - Archive of obsolete content
preamble mozilla has configurable, downloadable
chrome, meaning that the arrangement and even presence or absence of controls in the main window is not hardwired into the application, but loaded from a separate ui description.
... window
chrome is displayed and managed by the same layout engine that manages html content in the browser.
...so a xul file will begin <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/xul.css" type="text/css"?> <!doctype window> <window xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> the html namespace is of course the standard one.
...And 4 more matches
Providing Command-Line Options - Archive of obsolete content
example the below example component implements two command line parameters: firefox.exe -myapp opens a
chrome window for my application.
... firefox.exe -viewapp url opens a
chrome window for my application and passes it an nsiuri object.
... using the example to use this sample code, save the commandline.js file into the components directory and add the following lines to your
chrome.manifest file: component {2991c315-b871-42cd-b33f-bfee4fcbf682} components/commandline.js contract @mozilla.org/commandlinehandler/general-startup;1?type=myapp {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 *...
...And 4 more matches
Adding Style Sheets - Archive of obsolete content
if you are creating a xul package to be installed as part of the
chrome system, you have two choices.
... let's assume that we are building the find files dialog for themeability, because the find files dialog can be referred to with the url
chrome://findfile/content/findfile.xul so the style sheet file will be stored in
chrome://findfile/skin/findfile.css.
...the second line has always been: <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> this line indicates that we want to use the style provided by
chrome://global/skin/.
...And 4 more matches
Localization - Archive of obsolete content
in the mozilla
chrome system, you will find dtd files located in the locales subdirectory.
... if you look in the
chrome directory, you should see an archive for your language.
... for non-installed
chrome files, you can just put the dtd file in the same directory as the xul file.
...And 4 more matches
XULBrowserWindow - Archive of obsolete content
method overview boolean hide
chromeforlocation(in string alocation); attributes attribute type description incontentwhitelist string[] an array of url strings for which
chrome is automatically hidden.
... methods hide
chromeforlocation determines whether or not browser
chrome should be hidden for the specified location.
... by default,
chrome is hidden for about:addons and any other pages in the in content whitelist.
...And 4 more matches
Advanced form styling - Learn web development
newer implementations are more consistent in behavior; interestingly enough, both chromium-based browsers (
chrome, opera, edge), safari, and firefox all support the -webkit- prefixed version (-webkit-appearance).
...this is because non-macos
chrome browsers no longer use the webkit rendering engine, which enabled aqua appearance by default for certain form controls.
...if you look at it in macos
chrome you'll see that the left one isn't sized properly.
...And 4 more matches
Embedding Tips
the nsiwindowcreator::create
chromewindow method will be called whenever gecko needs to open a new window.
... this method should create the new browser window in the specified style and hand back the nsiwebbrowser
chrome interface to it.
... browser window, you can use a javascript constructor instead of a javascript property: catman->addcategoryentry("javascript global constructor", "my_prop_name", "my_prop_contract_id", pr_true, pr_true, getter_copies(previous)); that way you will be able to do: var my_comp = new my_prop_name(); this was taken from weirdal's excellent "burning
chrome" article.
...And 4 more matches
Localizing without a specialized tool
you should see something like this: x-testing browser
chrome browser aboutcerterror.dtd // add and localize this file aboutdialog.dtd +aboutlink +aboutlink.accesskey +aboutversion +closecmdgnome.accesskey +closecmdgnome.label +copyright +copyright.accesskey +copyrightgnome.accesskey +copyrightinfo1 +copyr...
... to start, make sure you are in /path/to/your/working/directory/l10n-mozilla-1.9.2/x-testing and then, type the command mkdir /browser/
chrome/browser now, step back out to the broader directory that contains both your l10n base (l10n-mozilla-1.9.2) and the en-us source code (mozilla-1.9.2).
... you can always check the path by typing pwd once you are in the root working directory with both en-us source and the l10n base, copy the searchbar.dtd file by typing cp mozilla-1.9.2/browser/locales/
chrome/browser/searchbar.dtd l10n-mozilla-1.9.2/x-testing/browser/
chrome/browser/ open the file in your x-testing directory and translate the words inside the quotation marks.
...And 4 more matches
Observer Notifications
note that while the window are open and the
chrome loaded the tabs in the windows may still be being restored after this notification.
... topic subject data description
chrome-document-global-created nsidomwindow null sent immediately after a
chrome document window has been set up, but before any script code has been executed.
... 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 4 more matches
nsIComponentManager
sult); void getclassobject(in nscidref aclass, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result); void getclassobjectbycontractid(in string acontractid, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result); void removebootstrappedmanifestlocation(in nsilocalfile alocation); methods addbootstrappedmanifestlocation() loads a "bootstrapped"
chrome.manifest file from the specified directory or xpi file.
... a "bootstrapped"
chrome manifest supports some of the instructions allowed in a regular
chrome manifest, see the
chrome registration documentation for details.
... this method was introduced in gecko 8 to let bootstrapped add-ons provide content at
chrome:// uris.
...And 4 more matches
nsIContentView
contentwidth float dimensions of scrolled content in
chrome-document css pixels.
... scrollx float horizontal scroll offset in
chrome-document css pixels.
... scrolly float horizontal scroll offset in
chrome-document css pixels.
...And 4 more matches
Building an Account Manager 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 devmoaccountmanagerextension() {}; // class definition devmoaccountmanagerextension.prototype = { name : "devmo-account",
chromepackagename : "example@mozilla.org", showpanel: function(server) { //this panel is only shown for imap accounts...
... we defined in step 1 "devmo-account" as name and "example@mozilla.org" as
chrome package.
...And 4 more matches
Guide to the Fullscreen API - Web APIs
in
chrome and newer versions of opera however, no such warning is generated.
... prefixing note: currently, only firefox 64 and
chrome 71 supports this unprefixed.
...here is the table summarizing the prefixes and name differences between them: standard webkit (safari) / blink (
chrome & opera) / edge gecko (firefox) internet explorer document.fullscreen webkitisfullscreen mozfullscreen - document.fullscreenenabled webkitfullscreenenabled mozfullscreenenabled msfullscreenenabled documentorshadowroot.fullscreenelement webkitfullscreenelement mozfullscreenelement msfullscreenelement document.onfullscreenchange onwebkitfullscreenchange onmozfullscreenchange onmsfullscreenchange document.onfullscreenerror...
...And 4 more matches
ScreenOrientation - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetscreenorientation
chrome full support 38edge full support 79firefox full support 43ie no support ...
... noopera full support 25safari no support nowebview android full support 38
chrome android full support 38firefox android full support 43opera android full support 25safari ios no support nosamsung internet android full support 3.0angle
chrome full support 38edge full support 79firefox full support 4...
...3ie no support noopera full support 25safari no support nowebview android full support 38
chrome android full support 38firefox android full support 43opera android full support 25safari ios no support nosamsung internet android full support 3.0lock
chrome full support 38edge full support 79firefox ...
...And 4 more matches
Screen Orientation API - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetscreenorientation
chrome full support 38edge full support 79firefox full support 43ie no support ...
... noopera full support 25safari no support nowebview android full support 38
chrome android full support 38firefox android full support 43opera android full support 25safari ios no support nosamsung internet android full support 3.0angle
chrome full support 38edge full support 79firefox full support 4...
...3ie no support noopera full support 25safari no support nowebview android full support 38
chrome android full support 38firefox android full support 43opera android full support 25safari ios no support nosamsung internet android full support 3.0lock
chrome full support 38edge full support 79firefox ...
...And 4 more matches
Using the Web Speech API - Web APIs
note: on some browsers, like
chrome, using speech recognition on a web page involves a server-based recognition engine.
... to run the demo, you can clone (or directly download) the github repo it is part of, open the html index file in a supporting desktop browser, or navigate to the live demo url in a supporting mobile browser like
chrome.
... browser support support for web speech api speech recognition is curently limited to
chrome for desktop and android —
chrome has supported it since around version 33 but with prefixed interfaces, so you need to include prefixed versions of them, e.g.
...And 4 more matches
Window.openDialog() - Web APIs
example var win = opendialog("http://example.tld/zzz.xul", "dlg", "", "pizza", 6.98); notes new features all - initially activates (or deactivates ("all=no")) all
chrome (except the behavior flags
chrome, dialog and modal).
... these can be overridden (so "menubar=no,all" turns on all
chrome except the menubar.) this feature is explicitly ignored by window.open().
... default behavior the
chrome and dialog features are always assumed on, unless explicitly turned off ("
chrome=no").
...And 4 more matches
Viewport concepts - CSS: Cascading Style Sheets
if you query the width or height of the window and document in
chrome or firefox, you may get: document.documentelement.clientwidth /* 1200 */ window.innerwidth /* 1200 */ window.outerwidth /* 1200 */ document.documentelement.clientheight /* 800 */ window.innerheight /* 800 */ window.outerheight /* 900 */ there are several dom properties that can help you query viewport size, and other similar lengths: the document element's element.clientwidth is the inner...
... the window.outerwidth is the width of the outside of the browser window including all the window
chrome.
...this is because the outerheight includes the browser
chrome: measurements were taken on a browser with an address bar and bookmarks bar totalling 100px in height, but no
chrome on the left or right of the window.
...And 4 more matches
break-inside - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsupported in multi-column layout
chrome full support 50edge full support 12firefox full support 65ie full support...
... 10opera full support 37 full support 37 no support 11.1 — 12.1safari full support 10webview android full support 50
chrome android full support 50firefox android full support 65opera android full support 37 full support 37 no support 11.1 — 12.1safari ios full support 10samsung internet android full...
... support 5.0multicol_context: column and avoid-column
chrome full support 50edge full support 12firefox no support noie full support 10opera full support 37safari full support 10webview android full support 50
chrome android full support 50firefox android no support noopera android full support 37safari ios full...
...And 4 more matches
WebAssembly.Module - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsmodule
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung internet...
... android full support 7.0nodejs full support 8.0.0module() constructor
chrome full support 57edge full support 16firefox full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full sup...
...And 4 more matches
platform/xpcom - Archive of obsolete content
you can just use require("
chrome") to get direct access to the components object, and access xpcom objects from there.
... for example, the add-on below implements the nsiobserver interface to listen for and log all topic notifications: var { class } = require('sdk/core/heritage'); var { unknown } = require('sdk/platform/xpcom'); var { cc, ci } = require('
chrome') var observerservice = cc['@mozilla.org/observer-service;1'].
... var { class } = require('sdk/core/heritage'); var { unknown, factory } = require('sdk/platform/xpcom'); var { cc, ci } = require('
chrome'); var contractid = '@me.org/helloworld'; // define a component var helloworld = class({ extends: unknown, get wrappedjsobject() this, hello: function() {return 'hello world';} }); // create and register the factory var factory = factory({ contract: contractid, component: helloworld }); // xpcom clients can retrieve and use this new // component in the normal way var wrapper = cc[co...
...And 3 more matches
Dialogs and Prompts - Archive of obsolete content
see working with windows in
chrome code for introductory information and more discussion and examples.
... <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/global.css" type="text/css"?> <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="..." title="..." buttons="accept,cancel" ondialogaccept="return onaccept();" ondialogcancel="return oncancel();"> <script src="
chrome://..."/> <!-- content --> </dialog> you need to implement onaccept and oncancel functions in your script.
... example: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" ondialogaccept="alert('ok!');"> <hbox> <label value="hey!"/> <spacer flex="1"/> <vbox> <button dlgtype="accept"/> <button dlgtype="cancel"/> </vbox> </hbox> </dialog> default button since firefox 1.5, there are defaultbutton attributes and properties on the <...
...And 3 more matches
Enhanced Extension Installation - Archive of obsolete content
<location>/extensions.ini - an ini manifest listing the directories for all the extensions and themes at the location (used by the component manager, preferences system,
chrome registry etc to locate files during the startup process).
...at this time a new extensions.ini file is written locating the extension so that the component manager, preferences system and
chrome registry can locate additional files on the next start.
...on the next restart, the xredirprovider now supplies a list of directories to requesting systems listing the new item's components, defaults and
chrome manifests.
...And 3 more matches
Jetpack Processes - Archive of obsolete content
jetpack processes are created by components that implement the nsijetpackservice interface, and their parent
chrome process communicates with them via the nsijetpack interface.
...messaging facilities that allow them to communicate with their parent
chrome process are the only means by which they can be endowed with any real power.
...privileged apis when script is evaluated in a jetpack process via a call to nsijetpack.evalscript(), the script's global scope is endowed with the following privileged apis: sendmessage(amessagename [, v1 [, v2 [, ...]]]) similar to nsijetpack.sendmessage(), this function asynchronously sends a message to the
chrome process.
...And 3 more matches
Adding menus and submenus - Archive of obsolete content
the toolbox should be positioned near the top of the xul document, and the code should be similar to this: <toolbox> <menubar id="xulschoolhello-menubar"> <menu id="xulschoolhello-greeting-menu" label="&xulschoolhello.greeting.label;"> <menupopup> <menuitem label="&xulschoolhello.greet.short.label;" oncommand="xulschool
chrome.greetingdialog.greetingshort(event);" /> <menuitem label="&xulschoolhello.greet.medium.label;" oncommand="xulschool
chrome.greetingdialog.greetingmedium(event);" /> <menuitem label="&xulschoolhello.greet.long.label;" oncommand="xulschool
chrome.greetingdialog.greetinglong(event);" /> <menuseparator /> <menuitem label="&xulschoolhello.greet.custom.
...label;" oncommand="xulschool
chrome.greetingdialog.greetingcustom(event);" /> </menupopup> </menu> </menubar> </toolbox> this code displays a simple menu with options for 3 different types of greetings, a menuseparator, and finally an option to show a custom greeting.
... multiple nesting levels: <toolbox> <menubar id="xulschoolhello-menubar"> <menu id="xulschoolhello-greeting-menu" label="&xulschoolhello.greeting.label;"> <menupopup> <menu id="xulschoolhello-greeting-sizes-menu" label="&xulschoolhello.greetingsizes.label;"> <menupopup> <menuitem label="&xulschoolhello.greet.short.label;" oncommand="xulschool
chrome.greetingdialog.greetingshort(event);" /> <menuitem label="&xulschoolhello.greet.medium.label;" oncommand="xulschool
chrome.greetingdialog.greetingmedium(event);" /> <menuitem label="&xulschoolhello.greet.long.label;" oncommand="xulschool
chrome.greetingdialog.greetinglong(event);" /> </menupopup> </menu> <menuitem label="...
...And 3 more matches
Adding windows and dialogs - Archive of obsolete content
window.open( "
chrome://xulschoolhello/content/somewindow.xul", "xulschoolhello-some-window", "
chrome,centerscreen"); the first argument is the url to open, the second is an id to identify the window, and the last is an optional comma-separated list of features, which describe the behavior and appearance of the window.
...the following features are very important and you should always keep them in mind:
chrome.
... this can only be used from the
chrome, not from regular html javascript.
...And 3 more matches
Appendix F: Monitoring DOM changes - Archive of obsolete content
their main disadvantage is that, due to their recent advent, support is currently limited to firefox 14+ and
chrome 18.
...these requests can be tracked from
chrome code using a variety of methods, including web progress listeners, http observers, and content policies.
... monkey patching in many instances, especially when dealing with
chrome code, the best way to modify actions which result in dom mutations is by wrapping the functions that trigger those changes.
...And 3 more matches
Handling Preferences - Archive of obsolete content
tip: you can use window.navigator.platform in your
chrome code to figure out the operating system firefox is running on.
... you can use the hidden dom window in non-
chrome code.
...in order to have this button enabled in your extension you need to add the following line to install.rdf: <em:optionsurl>
chrome://xulschoolhello/content/preferenceswindow.xul</em:optionsurl> if you want to open this window from a different place in the ui, such as a menu item or a button in a toolbar, you need to take into account that the opening behavior of a preferences window is different depending on the operating system.
...And 3 more matches
Extensions support in SeaMonkey 2 - Archive of obsolete content
differences as compared to other toolkit/-based applications you need to overlay/open different
chrome urls as compared to firefox.
... some urls are listed below: url in firefox url in seamonkey overlays
chrome://browser/content/browser.xul
chrome://navigator/content/navigator.xul main browser window
chrome://browser/content/pageinfo/pageinfo.xul
chrome://navigator/content/pageinfo/pageinfo.xul page info window
chrome://browser/content/preferences/permissions.xul
chrome://communicator/content/permis...onsmanager.xul permissions manager dialog urls added in 2.1 url in firefox url in seamonkey
chrome://browser/content/bookmarks/bookmarkspanel.xul
chrome://communicator/content/bookmarks/bm-panel.xul
chrome://browser/content/places/places.xul
chrome...
...://communicator/content/bookma...rksmanager.xul thunderbird uses mostly the same
chrome urls for overlaying as seamonkey.
...And 3 more matches
Security best practices in extensions - Archive of obsolete content
for example, if you load a
chrome url, this means the content has been registered with firefox and has full access.
...there are ways to get around the content/
chrome security barrier, if for example, you want a web page to send a notification to the add-on (or vice versa).
... the sidebar: a use case the sidebar in firefox is designed to hold both
chrome (privileged) content and web (nonprivileged) content, the latter being in the form of web pages.
...And 3 more matches
Signing an XPI - Archive of obsolete content
c:\projects\codesigning\> cd signed c:\projects\codesigning\signed> unzip fsb.xpi archive: fsb.xpi creating:
chrome/ inflating:
chrome.manifest inflating:
chrome/fsb.jar inflating: install.rdf c:\projects\codesigning\signed> del fsb.xpi c:\projects\codesigning\signed> cd ..
...-->
chrome/fsb.jar -->
chrome.manifest --> install.rdf generating zigbert.sf file..
... c:\projects\certs\> cd signed c:\projects\codesigning\signed\> zip fsb.xpi meta-inf/zigbert.rsa adding: meta-inf/zigbert.rsa (deflated 35%) c:\projects\codesigning\signed> zip -r -d fsb.xpi * -x meta-inf/zigbert.rsa adding: meta-inf/manifest.mf (deflated 37%) adding: meta-inf/zigbert.sf (deflated 40%) adding:
chrome/fsb.jar (deflated 74%) adding:
chrome.manifest (deflated 69%) adding: install.rdf (deflated 62%) test your certificate to test your certificate, install it into your browser, and attempt to load the signed extension by following these steps: 1.
...And 3 more matches
Tabbed browser - Archive of obsolete content
if you need to work with tabs from a non-browser window, you need to obtain a reference to one first, see working with windows in
chrome code for details.
... 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.
...you can find more information on getting access to the browser window in working with windows in
chrome code.
...And 3 more matches
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 user
chrome.css files.
... using the api the string "
chrome://myext/content/myext.css" in the examples below is just an example.
... var sss = components.classes["@mozilla.org/content/style-sheet-service;1"] .getservice(components.interfaces.nsistylesheetservice); var ios = components.classes["@mozilla.org/network/io-service;1"] .getservice(components.interfaces.nsiioservice); var uri = ios.newuri("
chrome://myext/content/myext.css", null, null); sss.loadandregistersheet(uri, sss.user_sheet); note: loadandregistersheet will load the stylesheet synchronously, so you should only call this method using local uris.
...And 3 more matches
Creating a status bar extension - Archive of obsolete content
the
chrome manifest the
chrome manifest is a file that tells the target application where to look for the
chrome package for your extension.
... the
chrome is the set of user interface elements outside the content area of the application's window, such as toolbars, status bars, menu bars, and the like.
... the
chrome manifest file,
chrome.manifest, for the sample follows.
...And 3 more matches
In-Depth - Archive of obsolete content
it says that the file is located in
chrome://navigator/skin/.
...the image that is listed there by default (
chrome://navigator/skin/icons/btn1.gif) is actually a bunch of images grouped together in one file, so somewhere one of the css attributes is telling it what portion of the larger image to cut out and display.
...select that one and it lists a bunch of -x-image-region-left type styles in
chrome://navigator/skin/.
...And 3 more matches
Cross Package Overlays - Archive of obsolete content
mozilla allows you to add a list of overlays to the contents.rdf file that you use to list
chrome packages, skins and locales.
... <rdf:seq about="urn:mozilla:overlays"> <rdf:li resource="
chrome://navigator/content/navigator.xul"/> </rdf:seq> this declares that we are adding a overlay window, a child of the root overlay node (urn:mozilla:overlays).
... <rdf:seq about="
chrome://navigator/content/navigator.xul"> <rdf:li>
chrome://findfile/content/foverlay.xul</rdf:li> </rdf:seq> mozilla reads this information and builds a list of overlays that are applied to other windows.
...And 3 more matches
Writing Skinnable XUL and CSS - Archive of obsolete content
@import url(
chrome://global/skin/) ...
...it should instead take place through the
chrome registry.
... examples of overlays that should take place using the
chrome registry include the security padlock icon and any messenger ui in the navigator window.
...And 3 more matches
Creating XULRunner Apps with the Mozilla Build System - Archive of obsolete content
contains the names of the subdirectories that need to be built, which at very least will include
chrome and app.
...the important ones are described in xulrunner:specifying startup
chrome window.
... the
chrome/ subdirectory
chrome for your application should be placed in the
chrome/ subdirectory as described in xul tutorial:xul structure.
...And 3 more matches
Theme changes in Firefox 3 - Archive of obsolete content
the go button is now located inside the location bar, so the image for it (
chrome://browser/skin/go-arrow.png) needs to be smaller.
... the rule that's needed to show and hide the go button and other location bar icons is: #urlbar[pageproxystate="invalid"] > #urlbar-icons > :not(#go-button) , #urlbar[pageproxystate="valid"] > #urlbar-icons > #go-button { visibility: collapse; } images to add add the following images:
chrome://global/skin/icons/information-16.png used when presenting information notices.
...
chrome://global/skin/icons/warning-16.png used when displaying warnings.
...And 3 more matches
Introduction to cross browser testing - Learn web development
the site should work entirely in the last few versions of the most popular desktop and mobile (ios, android, windows phone) browsers — this should include
chrome (and opera as it is based on the same rendering engine as
chrome), firefox, ie/edge, and safari.
...to start with, you should make sure there are no general issues with your code that are stopping your feature from working: test it in a couple of stable browsers on your system, like firefox, safari,
chrome, or ie/edge.
...for example: try to test the latest change on all the modern desktop browsers you can — including firefox,
chrome, opera, ie, edge, and safari on desktop (mac, windows, and linux, ideally).
...And 3 more matches
Setting up your own test automation environment - Learn web development
you can find details of where to get them from on the selenium-webdriver page (see the table in the first section.) obviously, some of the browsers are os-specific, but we're going to stick with firefox and
chrome, as they are available across all the main oses.
... download the latest geckodriver (for firefox) and
chromedriver drivers.
... add the
chromedriver and geckodriver driver's location to your system path variable.
...And 3 more matches
IME handling guide
from
chrome script, you can check it with nsiselectioncontroller.
... this is also used by mozilla::textinputprocessor which can emulates (or implements) ime with
chrome script.
... e10s support even when a remote process has focus, native ime handler in
chrome process does its job.
...And 3 more matches
Localizing with Koala
they can be found in two files, inside the browser/
chrome/browser directory: searchbar.dtd, search.properties.
...browser\
chrome\browser\search.properties ?
... browser\
chrome\browser\searchbar.dtd the question marks ("?") in front of the file names indicate that the files are not tracked by mercurial in this repository (yet).
...And 3 more matches
Building the WebLock UI
that function uses the opendialog method from the window object and takes the url to the xul file in which the dialog is defined: function loadweblock() { window.opendialog("
chrome://weblock/weblock.xul"); } xul the entire user interface of the mozilla browser and all of the applications that go with it, including the mail client, the irc client, and others, have been defined in an xml language called xul.
...the "shell" for the xul file, then, looks like this: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <dialog id="weblock_ui" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="web lock manager" persist="screenx screeny" screenx="24" screeny="24"> </dialog> note that this part of the xul file also contains a stylesheet declaration, which imports css rules and applies them to particular parts of the int...
... weblock.xul <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <dialog id="weblock_mgg" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="web lock manager" style="width: 30em;" persist="screenx screeny" screenx="24" screeny="24"> <script src="
chrome://weblock/content/weblock.js"/> <hbox> <separator orient="vertical" class="thin"/> <vbox flex="1"> ...
...And 3 more matches
Address Book examples
new contact dialog window.opendialog("
chrome://messenger/content/addressbook/abnewcarddialog.xul", "", "
chrome,resizable=no,titlebar,modal,centerscreen", {selectedab:selectedab}); edit contact dialog window.opendialog("
chrome://messenger/content/addressbook/abeditcarddialog.xul", "", "
chrome,resizable=no,modal,titlebar,centerscreen", ...
... {aburi:aburi, card:card}); new list dialog window.opendialog("
chrome://messenger/content/addressbook/abmaillistdialog.xul", "", "
chrome,resizable=no,titlebar,modal,centerscreen", {selectedab:selectedab}); edit list dialog window.opendialog("
chrome://messenger/content/addressbook/abeditlistdialog.xul", "", "
chrome,resizable=no,titlebar,modal,centerscreen", {abcard:abcard, listuri:listuri}); new address book dialog unlike the edit address book dialog, the new address book dialog does not currently have the facility to get the
chrome uri based on the address book type.
... for local (mork) address books: window.opendialog( "
chrome://messenger/content/addressbook/abaddressbooknamedialog.xul", "", "
chrome,modal=yes,resizable=no,centerscreen", null); for ldap address books: window.opendialog("
chrome://messenger/content/addressbook/pref-directory-add.xul", "", "
chrome,modal=yes,resizable=no,centerscreen", null); note: there is no new address book dialog for the os x address book.
...And 3 more matches
Introduction to DOM Inspector - Firefox Developer Tools
inspecting
chrome documents the inspect
chrome document menupopup can be accessed from the file menu , and it will contain the list of currently loaded
chrome windows and subdocuments.
... you should not use this approach to inspect
chrome documents.
... instead, ensure that the document loads via normal means and use the inspect
chrome document menupopup to select it for inspection.
...And 3 more matches
Browser Console - Firefox Developer Tools
but while the web console executes code in the page window scope, the browser console executes them in the scope of the browser's
chrome window.
...to enable it set the devtools.
chrome.enabled preference to true in about:config, or set the "enable browser
chrome and add-on debugging toolboxes" (firefox 40 and later) option in the developer tool settings.
...this example here makes it so that when you mouse over the "clear" button it will clear the browser console: components.utils.import("resource://devtools/shared/loader.jsm"); var hudservice = devtools.require("devtools/client/webconsole/hudservice"); var hud = hudservice.getbrowserconsole(); var clearbtn = hud.
chromewindow.document.queryselector('.webconsole-clear-console-button'); clearbtn.addeventlistener('mouseover', function() { hud.jsterm.clearoutput(true); }, false); bonus features available for add-on sdk add-ons, the console api is available automatically.
...And 3 more matches
Browser Toolbox - Firefox Developer Tools
to enable it you need to check the settings "enable
chrome and addon debugging" and "enable remote debugging".
... to do this, open the developer tools settings, go to the section "advanced settings", and check the settings "enable browser
chrome and add-on debugging toolboxes" and "enable remote debugging".
... 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.
...And 3 more matches
Console messages - Firefox Developer Tools
logging messages logged from shared workers, service workers, add-ons, and
chrome workers are not shown by default.
...you can install the
chrome logger extension to (re)-enable the feature.
... with the
chrome logger extension, web console can display messages sent from the server.
...And 3 more matches
BudgetState - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbudgetstate experimentaldeprecatednon-standard
chrome full support 60edge full support ≤79firefox ?
... webview android no support no
chrome android full support 60firefox android ?
... samsung internet android full support 8.0budgetat experimentaldeprecatednon-standard
chrome full support 60edge full support ≤79firefox ?
...And 3 more matches
ByteLengthQueuingStrategy - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbytelengthqueuingstrategy experimental
chrome full support 59edge full support 16firefox full support 57disabled ...
... webview android full support 59
chrome android full support 59firefox android full support 57disabled full support 57disabled disabled from version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to ...
... samsung internet android full support 7.0bytelengthqueuingstrategy() constructor experimental
chrome full support 59edge full support 16firefox full support 57disabled full support 57disabled disabled from version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true).
...And 3 more matches
CountQueuingStrategy - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcountqueuingstrategy experimental
chrome full support 59edge full support 16firefox full support 57disabled full...
... webview android full support 59
chrome android full support 59firefox android full support 57disabled full support 57disabled disabled from version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to ...
... samsung internet android full support 7.0countqueuingstrategy() constructor experimental
chrome full support 59edge full support 16firefox full support 57disabled full support 57disabled disabled from version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true).
...And 3 more matches
FileSystemFlags - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemflags experimental
chrome full support 13prefixed full support 13prefixed prefixed implemented with the vendor prefix: webkitedge full support ...
...50ie no support noopera no support nosafari no support nowebview android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkit
chrome android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 50opera android no support nosafari ios no support ...
... nosamsung internet android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkitcreate experimental
chrome full support 13prefixed full support 13prefixed prefixed implemented with the vendor prefix: webkitedge full support ≤79prefixed full support ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox partial support 50notes partial support 50notes notes for security reasons, firefox does not ...
...And 3 more matches
File and Directory Entries API support in Firefox - Web APIs
work to standardize the specification was abandoned back in 2012, but by that point, google
chrome included its own implementation of the api.
... this has caused a number of popular web sites not to work properly on browsers other than
chrome.
...this subset of the api provided by
chrome is still not fully specified; however, for web compatibility reasons, it was decided to implement a subset of the api in firefox; this was introduced in firefox 50.
...And 3 more matches
Introduction to the File and Directory Entries API - Web APIs
while firefox supports blob storage for indexeddb,
chrome currently does not (
chrome is still implementing support for blob storage in indexeddb).
... if you are targeting
chrome for your app and you want to store blobs, the file and directory entries api and app cache are your only choices.
... in
chrome, you can use the file and directory entries api with the quota management api, which lets you ask for more storage and manage your storage quota.
...And 3 more matches
FontFaceSetLoadEvent - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfontfacesetloadevent experimental
chrome full support 35edge full support ≤79firefox full support yesie ?
... webview android no support no
chrome android full support 35firefox android full support yesopera android full support 22safari ios ?
... samsung internet android full support 3.0fontfacesetloadevent() constructor experimental
chrome full support 57edge full support ≤79firefox ?
...And 3 more matches
GestureEvent - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgestureevent non-standard
chrome no support noedge no support nofirefox no support noie no support ...
... noopera no support nosafari full support 9webview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios full support 2samsung internet android no support nogestureevent() constructor non-standard
chrome no support noedge no support nofirefox no support ...
... noie no support noopera no support nosafari full support 9webview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios full support 2samsung internet android no support noinitgestureevent non-standard
chrome no support noedge no support ...
...And 3 more matches
Using the Notifications API - Web APIs
in addition, in
chrome and firefox you cannot request notifications at all unless the site is a secure context (i.e.
... <button id="enable">enable notifications</button> clicking this calls the asknotificationpermission() function: function asknotificationpermission() { // function to actually ask the permissions function handlepermission(permission) { // whatever the user answers, we make sure
chrome stores the information if(!('permission' in notification)) { notification.permission = permission; } // set the button to shown or hidden, depending on what the user answers if(notification.permission === 'denied' || notification.permission === 'default') { notificationbtn.style.display = 'block'; } else { notificationbtn.style.display = 'none'; } } ...
...inside here we explicitly set the notification.permission value (some old versions of
chrome failed to do this automatically), and show or hide the button depending on what the user chose in the permission dialog.
...And 3 more matches
PushEvent - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpushevent experimental
chrome full support 42edge full support 16disabled full support 16disabled disabled from version 16: this...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 37safari no support nowebview android no support no
chrome android full support 42firefox android full support 44 full support 44 full support 48notes notes push enabled by default.opera android full support 37safari ios ...
... no support nosamsung internet android full support 4.0pushevent() constructor experimental
chrome full support 42edge full support 16disabled full support 16disabled disabled from version 16: this feature is behind the enable service workers preference.
...And 3 more matches
Window.open() - Web APIs
on firefox and
chrome (at least), this only works from the same parent, ie.
...google
chrome (55.0.2883.87 m ) on the other hand will do it only from the same parent (as if the window was created dependent, which is the "opener").
...firefox (51.) gets the handle but cannot run any element.focus() while
chrome can run focus() from opener to child but not between siblings nor, reverse, from child to opener.
...And 3 more matches
:is() (:matches(), :any()) - CSS: Cascading Style Sheets
note that currently browsers support this functionality as :matches(), or through an older, prefixed pseudo-class — :any(), including older versions of
chrome, firefox, and safari.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:is()
chrome full support 68notes disabled full support 68notes disabled notes combinators in the selector list argument may not match correctly (see bug 842157).disabled fr...
...to change preferences in
chrome, visit
chrome://flags.
...And 3 more matches
<input type="month"> - HTML: Hypertext Markup Language
the control's ui varies in general from browser to browser; at the moment support is patchy, with only
chrome/opera and edge on desktop — and most modern mobile browser versions — having usable implementations.
... for those of you using a browser that doesn't support month, the screenshot below shows what it looks like in
chrome and opera.
...
chrome).
...And 3 more matches
List of default Accept values - HTTP
(source) safari,
chrome text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 (source) safari 5 text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 this is an improvement over earlier accept headers as it no longer ranks image/png above text/html internet explorer 8 image/jpeg, application/x-ms-application, image/gif, applicat...
...source safari */*
chrome image/webp,image/apng,image/*,*/*;q=0.8 source internet explorer 8 or earlier */* see ie and the accept header (ieinternals' msdn blog) internet explorer 9 image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5 see fiddler is better with internet explorer 9 (ieinternals' msdn blog) values for a video when a video is requested, via the <video> html element, mo...
... user agent value comment firefox earlier than 3.6 no support for <video> firefox 3.6 and later video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5 see bug 489071 source
chrome */* source internet explorer 8 or earlier no support for <video> values for audio resources when an audio file is requested, like via the <audio> html element, most browsers use specific values.
...And 3 more matches
WebAssembly.Memory - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsmemory
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung internet...
... android full support 7.0nodejs full support 8.0.0memory() constructor
chrome full support 57edge full support 16firefox full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full sup...
...And 3 more matches
Codecs used by WebRTC - Web media technologies
mandatory video codecs codec name profile(s) browser compatibility vp8 —
chrome, edge, firefox, safari (12.1+) avc / h.264 constrained baseline (cb)
chrome (52+), edge, firefox[1], safari [1] firefox for android 68 and later do not support avc (h.264) anymore.
... other video codecs codec name profile(s) browser compatibility vp9 —
chrome (48+), firefox vp8 vp8, which we describe in general in the main guide to video codecs used on the web, has some specific requirements that must be followed when using it to encode or decode a video track on a webrtc connection.
... mandatory audio codecs codec name browser compatibility opus
chrome, edge, firefox, safari g.711 pcm (a-law)
chrome, firefox, safari g.711 pcm (µ-law)
chrome, firefox, safari see below for more details about any webrtc-specific considerations that exist for each codec listed above.
...And 3 more matches
The "codecs" parameter in common media types - Web media technologies
av1 codec parameter string components component details p the one-digit profile number: av1 profile numbers profile number description 0 "main" profile; supports yuv 4:2:0 or mono
chrome bitstreams with bit depth of 8 or 10 bits per component.
... m the one-digit mono
chrome flag; if this is 0, the video includes the u and v planes in addition to the y plane.
...the default value is 0 (not mono
chrome).
...And 3 more matches
Creating Reusable Modules - Archive of obsolete content
the documentation for that interface includes an example which we can adapt like this: var {cc, ci} = require("
chrome"); function promptforfile() { const nsifilepicker = ci.nsifilepicker; var fp = cc["@mozilla.org/filepicker;1"] .createinstance(nsifilepicker); var window = require("sdk/window/utils").getmostrecentbrowserwindow(); fp.init(window, "select a file", nsifilepicker.modeopen); fp.appendfilters(nsifilepicker.filterall | nsifilepicker.filtertext); var rv = fp.show(); if (rv =...
...we can adapt it like this: var {cc, ci} = require("
chrome"); // return the two-digit hexadecimal code for a byte function tohexstring(charcode) { return ("0" + charcode.tostring(16)).slice(-2); } function md5file(path) { var f = cc["@mozilla.org/file/local;1"] .createinstance(ci.nsilocalfile); f.initwithpath(path); var istream = cc["@mozilla.org/network/file-input-stream;1"] .createinstance(ci.nsifileinputstream); /...
... var s = array.from(hash, (c, i) => tohexstring(hash.charcodeat(i))).join(""); return s; } putting it together the complete add-on adds a button to firefox: when the user clicks the button, we ask them to select a file, compute the hash, and log the hash to the console: var {cc, ci} = require("
chrome"); // return the two-digit hexadecimal code for a byte function tohexstring(charcode) { return ("0" + charcode.tostring(16)).slice(-2); } function md5file(path) { var f = cc["@mozilla.org/file/local;1"] .createinstance(ci.nsilocalfile); f.initwithpath(path); var istream = cc["@mozilla.org/network/file-input-stream;1"] .createinstance(ci.nsifileinputstream); /...
...And 2 more matches
Finding the file to modify - Archive of obsolete content
the dom inspector will display the url of the xul file that defines the mozilla browser window, which is
chrome://navigator/content/navigator.xul.
... a
chrome url is a url used internally by mozilla to refer to files in the
chrome subdirectory of the mozilla installation directory.
...
chrome urls have paths that do not necessarily refer to a precise directory hierarchy.
...And 2 more matches
Making it into a dynamic overlay and packaging it up for distribution - Archive of obsolete content
after that we'll create a contents.rdf file describing the tinderstatus component for the
chrome registry and an install.js script to perform the installation.
...we need to change some urls in the copy of tinderstatusoverlay.xul to point to the new locations the files will be in when they get installed via the xpi: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://tinderstatus/content/tinderstatus.css" type="text/css"?> <overlay id="tinderstatusoverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript" src="
chrome://tinderstatus/content/tinderstatus.js" /> <statusbar id="status-bar"> <statusbarpanel class="statusbarpanel-iconic" id="tinderbox-status" i...
...nsertbefore="offline-status" status="none"/> </statusbar> </overlay> we also need to change the urls in the copy of tinderstatus.css: statusbarpanel#tinderbox-status { list-style-image: url("
chrome://tinderstatus/content/tb-nostatus.png"); } statusbarpanel#tinderbox-status[status="success"] { list-style-image: url("
chrome://tinderstatus/content/tb-success.png"); } statusbarpanel#tinderbox-status[status="testfailed"] { list-style-image: url("
chrome://tinderstatus/content/tb-testfailed.png"); } statusbarpanel#tinderbox-status[status="busted"] { list-style-image: url("
chrome://tinderstatus/content/tb-busted.png"); } then we need to create two files in the directory, one called contents.rdf which contains information for the
chrome registry about the component being instal...
...And 2 more matches
Creating a Skin - Archive of obsolete content
modifying user
chrome.css is not guaranteed to work between versions of firefox and may lead to hard-to-diagnose bugs.
... add a line to the file '
chrome/installed-
chrome.txt of the following form: skin,install,url,file:///stuff/blueswayedshoes/ where the last part points to the directory you created.
...we can then refer to it using the url '
chrome://findfile/skin/findfile.css'.
...And 2 more matches
Modifying the Default Skin - Archive of obsolete content
« previousnext » as of firefox 69, you must set the toolkit.legacyuserprofilecustomizations.stylesheets preference to true in about:config in order to load user
chrome.css or usercontent.css files.
...support for the user
chrome.css file and any of its elements described below are not guaranteed in future versions of firefox.
... customize with user
chrome.css if you place a file called 'user
chrome.css' in a directory called '
chrome' inside your user profile directory, you can override settings without changing the archives themselves.
...And 2 more matches
Making sure your theme works with RTL locales - Archive of obsolete content
gecko 1.9.1 (firefox 3.5) and earlier the
chromedir attribute firefox, thunderbird and seamonkey expose an attribute named
chromedir on certain elements.
... toolbar[iconsize="large"][mode="icons"] #back-button { -moz-image-region: rect(0px 398px 34px 360px); } toolbar[iconsize="large"][mode="icons"] #back-button[
chromedir="rtl"] { -moz-image-region: rect(0px 516px 34px 478px); } this way, if
chromedir is "rtl", the second rule will override the first, and the theme will work in rtl.
... note that not all elements will have the
chromedir attribute, so you may need to refer to an ancestor element that does.
...And 2 more matches
XForms Custom Controls - Archive of obsolete content
since firefox 4, xbl and xul are disabled by default for all pages not loaded from a
chrome:// url.
...xf|select1[appearance="compact"] { -moz-binding: url('
chrome://xforms/content/select-xhtml.xml#xformswidget-select1-compact'); } the mediatype attribute can be used by the form author to align the type of presentation with the type of data that the bound instance node contains.
...xf|output[mediatype^="image"] { -moz-binding: url('
chrome://xforms/content/xforms-xhtml.xml#xformswidget-output-mediatype-anyuri'); } custom data types if you define a new schema data type or you use a built-in data type and find the current xforms control for this type to be insufficient, then you should write a new custom control.
...And 2 more matches
Common causes of memory leaks in extensions - Extensions
however, while this is still true, the window.setinterval() in the example originates from the outer
chrome window (browser.xul) and not from the content window.
... causes of other kinds of leaks other than javascript compartments, add-ons may also leak entities that do not get a dedicated compartment, most commonly
chrome dom windows and javascript code modules.
... observers that use strong references are a common cause of leaking whole
chrome windows or javascript code modules; it is possible to leak content windows, too, but that is less common.
...And 2 more matches
What are browser developer tools? - Learn web development
three ways: keyboard: ctrl + shift + i, except internet explorer and edge: f12 macos: ⌘ + ⌥ + i menu bar: firefox: menu ➤ web developer ➤ toggle tools, or tools ➤ web developer ➤ toggle tools
chrome: more tools ➤ developer tools safari: develop ➤ show web inspector.
... find out more find more out about the inspector in different browsers: firefox page inspector ie dom explorer
chrome dom inspector (opera's inspector works the same as this) safari dom inspector and style explorer the javascript debugger the javascript debugger allows you to watch the value of variables and set breakpoints, places in your code that you want to pause execution and identify the problems that prevent your code from executing properly.
...
chrome: open the developer tools and then select the sources tab.
...And 2 more matches
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.
... some are free products, like nvda (windows),
chromevox (
chrome, windows, and mac os x), and orca (linux).
...And 2 more matches
Handling common HTML and CSS problems - Learn web development
if you view the example on a supporting browser like desktop/android
chrome or ios safari, you'll see the special widgets/features in action as you try to input data.
...so for example: mozilla uses -moz-
chrome/opera/safari use -webkit- microsoft uses -ms- here's some examples: -webkit-transform: rotate(90deg); background-image: -moz-linear-gradient(left,green,yellow); background-image: -webkit-gradient(linear,left center,right center,from(green),to(yellow)); background-image: linear-gradient(to right,green,yellow); the first line shows a transform property with a -webkit- prefix — this was nee...
...ded to make transforms work in
chrome, etc.
...And 2 more matches
Frame script environment
addmessagelistener() listen to messages from
chrome.
... removemessagelistener() stop listening to messages from
chrome.
... sendasyncmessage() send an asynchronous message to
chrome.
...And 2 more matches
Frame script environment
addmessagelistener() listen to messages from
chrome.
... removemessagelistener() stop listening to messages from
chrome.
... sendasyncmessage() send an asynchronous message to
chrome.
...And 2 more matches
Frame script loading and lifetime
the script just writes "foo" to the command line: //
chrome script var mm = gbrowser.selectedbrowser.messagemanager; mm.loadframescript('data:,dump("foo\\n")', true); loadframescript() takes two mandatory parameters: a url that points to the frame script you want to load a boolean flag, allowdelayedload note: if the message manager is a global frame message manager or a window message manager, loadframescript() may load the script multiple times, once in each applicable frame.
...
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.
...And 2 more matches
Process scripts
the following code uses the global parent process message manager, which will load the script into the the
chrome process and any child processes: //
chrome code let ppmm = cc["@mozilla.org/parentprocessmessagemanager;1"] .getservice(ci.nsiprocessscriptloader); ppmm.loadprocessscript("
chrome://whatever/process-script.js", true); ppmm.addmessagelistener("hello", function(msg) { ...
... }); the process script's global is a child process message manager, which enables the process script to receive messages from the
chrome side, and to send messages to the
chrome side: // process-script.js if (services.appinfo.processtype == services.appinfo.process_type_content) { dump("welcome to the process script in a content process"); } else { dump("welcome to the process script in the main process"); } // message is sent using contentprocessmessagemanager sendasyncmessage("hello"); in this example, the dump() statement will run once in each content process as well as in the main process.
... this example also figures out whether it is running in the
chrome or in a content process by looking at the process type in services.appinfo.
...And 2 more matches
CustomizableUI.jsm
to avoid that, update your
chrome manifest file with links to two different versions of xul overlay, using manifest flags.
... var mywidgetlistener = { onwidgetadded: function(awidgetid, aarea, aposition) { console.log('a widget moved to an area, arguments:', arguments); if (awidgetid != 'noida') { return } console.log('my widget moved'); var useicon; if (aarea == customizableui.area_panel) { useicon = '
chrome://branding/content/icon32.png'; } else { useicon = '
chrome://branding/content/icon16.png'; } var myinstances = customizableui.getwidget('noida').instances; for (var i=0; i<myinstances.length; i++) { myinstances[i].node.setattribute('image', useicon); } }, onwidgetdestroyed: function(awidg...
...w of selected tab'); thisdomwindow.alert('alert from xul window'); } }); //end - use customizableui.jsm to create the widget //start - use style sheet service to style our widget to give it an icon cu.import('resource://gre/modules/services.jsm'); var sss = cc['@mozilla.org/content/style-sheet-service;1'].getservice(ci.nsistylesheetservice); var css = ''; css += '@-moz-document url("
chrome://browser/content/browser.xul") {'; css += ' #id_of_my_widget_within_customizableui_and_dom {'; css += ' list-style-image: url("
chrome://branding/content/icon16.png")'; //a 16px x 16px icon for when in toolbar css += ' }'; css += ' #id_of_my_widget_within_customizableui_and_dom[cui-areatype="menu-panel"],'; css += ' toolbarpaletteitem[place="palette"] > #id_of_my_widget_wit...
...And 2 more matches
PromiseWorker.jsm
summary a promiseworker is a
chromeworker except instead of calling postmessage() to send a message, you call post(), which returns a promise.
...like
chromeworker objects, promiseworker is mostly used for js-ctypes but it is not limited to that.
... there is no xpcom access, similar to
chromeworker.
...And 2 more matches
Localization and Plurals
if you're here for pluralrule in the
chrome/global/intl.properties file, you'll need to figure out what plural rule to choose for your localization.
...if you don't know how many plural forms you need, check the pluralrule number in
chrome/global/intl.properties, and look up the corresponding entry in the following list of plural rules.
...
chrome://mozapps/locale/downloads/do...tes,hours,days
chrome://mozapps/locale/downloads/do...dstitlepercent
chrome://browser/locale/browser.prop...auseddownloads version history 0.1: initial version with pluralrule check, properties input loading, table generation, sample output display 0.2: use pluralform.numforms() to get the number of forms instead of figuring out locally to better support futu...
...And 2 more matches
Web Replay
ipc integration allows a replaying process to communicate with the
chrome process using ipdl and shared memory.
... the rewind infrastructure allows a replaying process to restore a previous state, while still maintaining communication with the
chrome process.
... ipc integration communication between the
chrome process and a recording or replaying process — hereafter referred to as the child process — is managed via a separate middleman content process.
...And 2 more matches
XPConnect wrappers
for practical advice on dealing with wrappers, see safely accessing content dom from
chrome.
...this includes all dom objects (including window) and
chrome elements that are reflected into javascript.
... security wrappers exposed to
chrome to learn about security wrappers, see the article on script security in gecko.
...And 2 more matches
nsIDocShell
chromeeventhandler nsidomeventtarget events generated in the frame bubble up to its
chromeeventhandler.
... in the case of a content frame or subframe this is the containing
chrome frame.
... in the case of a
chrome frame this is the same as the frame element.
...And 2 more matches
nsIPushService
void subscribe( in domstring scope, in nsiprincipal principal, in nsipushsubscriptioncallback callback ); parameters scope the serviceworkerregistration.scope for a service worker subscription, or a unique url (for example,
chrome://my-module/push) for a system subscription.
... example const { classes: cc, interfaces: ci, utils: cu } = components; const scriptsecuritymanager = cc["@mozilla.org/scriptsecuritymanager;1"] .getservice(ci.nsiscriptsecuritymanager); const pushservice = cc["@mozilla.org/push/service;1"] .getservice(ci.nsipushservice); pushservice.subscribe( "
chrome://my-module/push", scriptsecuritymanager.getsystemprincipal(), (code, subscription) => { if (!components.issuccesscode(code)) { cu.reporterror("error creating subscription: " + code); return; } // `subscription` implements `nsipushsubscription`.
... example pushservice.getsubscription( "
chrome://my-module/push", scriptsecuritymanager.getsystemprincipal(), (code, subscription) => { if (!components.issuccesscode(code)) { cu.reporterror("error fetching subscription: " + code); return; } // `subscription == null` if the `(scope, principal)` pair doesn't have a // push subscription.
...And 2 more matches
nsIWindowMediator
getmostrecentwindow returns a
chromewindow object, or null, if there are no windows of a given type open.
... var wm = components.classes["@mozilla.org/appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); var enumerator = wm.getenumerator(type); while(enumerator.hasmoreelements()) { var win = enumerator.getnext(); // win is [object
chromewindow] (just like window), do something with it } this code iterates over all windows of the specified type, where type you specify is the window type.
...in fact, those methods usually (always?) return a
chromewindow object, implementing both of those interfaces and a few others, when called from javascript code.
...And 2 more matches
nsIWorkerFactory
you don't need to use it anymore to create workers from
chrome.
... instead, you can just do new worker or new
chromeworker.
...to create an instance, use: var workerfactory = components.classes['@mozilla.org/threads/workerfactory;1'] .createinstance(components.interfaces.nsiworkerfactory); method overview nsiworker new
chromeworker(in domstring ascripturl); methods new
chromeworker() returns a new
chromeworker that will run a specified script.
...And 2 more matches
XUL Overlays
inserting the following processing instruction before the doctype declaration in a base file tells the layout engine to load the named overlay file: <?xul-overlay href="
chrome://component/content/componentoverlay.xul"?> where component is the name of the package being overlayed (e.g.,
chrome://navigator/content/navigatoroverlay.xul).
...loading overlays dynamically the
chrome registry makes it possible to load xul overlays dynamically -- or only when necessary.
... the
chrome registry, which is a special rdf datasource into which user-specific information is persisted, or stored, contains information about the components or additional packages that have been installed with the browser.
...And 2 more matches
Index
44 main windows thunderbird the base
chrome directory of thunderbird can sometimes appear confusing when you're just beginning to look at it.
...at a minimum, they contain an install.rdf, the
chrome.manifest and a
chrome/ folder.
... 77 building a thunderbird extension 4:
chrome manifest extensions, thunderbird the file called
chrome.manifest tells thunderbird what packages and overlays are provided by the extension.
...And 2 more matches
DOM Inspector internals - Firefox Developer Tools
these overlays are: browseroverlay.xul tasksoverlay-cz.xul tasksoverlay-ff.xul tasksoverlay-mobile.xul tasksoverlay-sb.xul tasksoverlay-tb.xul tasksoverlay.xul venkmanoverlay.xul prefs/prefsoverlay.xul further examination of the
chrome manifest will reveal that dom inspector also uses conditional overlays on its primary window: overlay
chrome://inspector/content/inspector.xul
chrome://communicator/content/utilityoverlay.xul application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} overlay
chrome://inspector/content/inspector.xul
chrome://communicator/content/tasksoverlay.xul application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} overla...
...y
chrome://inspector/content/inspector.xul
chrome://browser/content/basemenuoverlay.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} these host-provided overlays allow dom inspector to adopt a look and feel similar to its host application.
...here's the expanded, host-agnostic overlay tree for inspector.xul:
chrome://inspector/content/inspector.xul
chrome://inspector/content/inspectoroverlay.xul
chrome://inspector/content/toolboxoverlay.xul
chrome://inspector/content/popupoverlay.xul
chrome://inspector/content/editingoverlay.xul
chrome://inspector/content/viewers/d...pupoverlay.xul
chrome://inspector/content/viewers/s...pupoverlay.xul
chrome://inspector/content/c...
...And 2 more matches
FileSystemFileEntry - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemfileentry
chrome full support 8alternate name full support 8alternate name alternate name uses the non-standard name: fileentryedge full support ...
...no support noopera no support nosafari full support 11.1webview android full support ≤37alternate name full support ≤37alternate name alternate name uses the non-standard name: fileentry
chrome android full support 18alternate name full support 18alternate name alternate name uses the non-standard name: fileentryfirefox android full support 50opera android no support nosafari ios full support ...
... 11.3samsung internet android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkitcreatewriter deprecatednon-standard
chrome full support 8edge full support 79firefox no support 50 — 52notes no support 50 — 52notes notes while the createwriter() method existed, it immediately called errorcallback with the ns_error_dom_security_err error.ie no support noopera no support nosafari no su...
...And 2 more matches
FileSystemSync - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemsync non-standard
chrome full support 13prefixed full support 13prefixed prefixed implemented with the vendor prefix: webkitedge full support ...
... full support 6prefixed full support 6prefixed prefixed implemented with the vendor prefix: webkitwebview android full support ≤37prefixed full support ≤37prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 18prefixed full support 18prefixed prefixed implemented with the vendor prefix: webkitfirefox android no support noopera android full support 14prefixed full support ...
...upport 6prefixed full support 6prefixed prefixed implemented with the vendor prefix: webkitsamsung internet android full support 1.0prefixed full support 1.0prefixed prefixed implemented with the vendor prefix: webkitname non-standard
chrome full support 13edge full support ≤79firefox no support noie no support noopera full support 15safari full support 6webview andr...
...And 2 more matches
GamepadEvent - Web APIs
working draft initial definition browser compatibility desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgamepadevent
chrome full support 35 full support 35 no support 21 — 34prefixed prefixed implemented with the vendor prefix: webkitedge ...
... noopera full support 22 full support 22 no support 15 — 21prefixed prefixed implemented with the vendor prefix: webkitsafari full support 10.1webview android no support no
chrome android full support yesfirefox android full support 32opera android full support 22 full support 22 no support 14 — 21prefixed prefixed implemented with the vendor prefix: webkitsafari ios ...
... full support 10.3samsung internet android full support yesgamepadevent() constructor
chrome full support 35edge full support 12firefox full support 29 full support 29 no support 24 — 28disabled disabled from version 24 until version 28 (exclusive): this feature is behind the dom.gamepad.enabled preference (needs to be set to true).
...And 2 more matches
IDBCursorWithValue - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbcursorwithvalue
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
... full support 8samsung internet android full support 1.5 full support 1.5 no support 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitvalue
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full support 12firefox full support 16 full support 16 no support 10 — 16prefixed pr...
...And 2 more matches
IDBRequest.error - Web APIs
in
chrome 48+/firefox 58+ this property returns a domexception because domerror has been removed from the dom standard.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung interneterror
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge fu...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
...And 2 more matches
IDBTransaction.error - Web APIs
in
chrome 48+/firefox 58+ this property returns a domexception because domerror has been removed from the dom standard.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung interneterror
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge fu...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
...And 2 more matches
Page Visibility API - Web APIs
budget-based background timeout throttling is now available in modern browsers (firefox 58+,
chrome 57+), placing an additional limit on background timer cpu usage.
...
chrome is very similar except that the budget is specified in seconds.
...in
chrome, this value is 10 seconds.
...And 2 more matches
SVGCircleElement - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgcircleelement
chrome full support 1edge full support 12firefox full support 1.5ie full support ...
... 9opera full support 8safari full support 3.1webview android full support 3
chrome android full support 18firefox android full support 4opera android full support yessafari ios full support 3.1samsung internet android full support 1.0cx
chrome full support yesedge full support 12firefox full support ...
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yescy
chrome full support yesedge full support 12firefox full suppo...
...And 2 more matches
Using WebRTC data channels - Web APIs
for example, both firefox and google
chrome use the usrsctp library to implement sctp, but there are still situations in which data transfer on an rtcdatachannel can fail due to differences in how they call the library and react to errors it returns.
... when two users running firefox are communicating on a data channel, the message size limit is much larger than when firefox and
chrome are communicating because firefox implements a now deprecated technique for sending large messages in multiple sctp messages, which
chrome does not.
...
chrome will instead see a series of messages that it believes are complete, and will deliver them to the receiving rtcdatachannel as multiple messages.
...And 2 more matches
Window.requestFileSystem() - Web APIs
the non-standard window method requestfilesystem() method is a google
chrome-specific method which lets a web site or app gain access to a sandboxed file system for its own use.
... even compared to the rest of the file and directory entries api, requestfilesystem() is especially non-standard; only
chrome implements it, and all other browser makers have decided that they will not implement it.
... syntax this method is prefixed with webkit in all browsers that implement it (that is, google
chrome).
...And 2 more matches
:visited - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:visited
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 4opera full support 3.5safari full support 1webview android full support 4.4
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0:visited no longer matches <link> elements
chrome full support 1notes full support 1notes notes chromium has never matc...
... 15notes notes chromium has never matched <link> elements with link pseudo-classes.safari full support 12webview android full support 4.4notes full support 4.4notes notes chromium has never matched <link> elements with link pseudo-classes.
chrome android full support 18notes full support 18notes notes chromium has never matched <link> elements with link pseudo-classes.firefox android no support noopera android full support 14notes full support ...
...And 2 more matches
Using media queries - CSS: Cascading Style Sheets
mono
chrome bits per pixel in the output device's mono
chrome frame buffer, or zero if the device isn't mono
chrome orientation orientation of the viewport overflow-block how does the output device handle content that overflows the viewport along the block axis?
...the not is evaluated last in the following query: @media not all and (mono
chrome) { ...
...so that the above query is evaluated like this: @media not (all and (mono
chrome)) { ...
...And 2 more matches
animation-direction - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetanimation-direction
chrome full support 43 full support 43 full support 3prefixed prefixed implemented with the vendor prefix: -w...
... 9 full support 4prefixed prefixed implemented with the vendor prefix: -webkit-webview android full support 43 full support 43 full support ≤37prefixed prefixed implemented with the vendor prefix: -webkit-
chrome android full support 43 full support 43 full support 18prefixed prefixed implemented with the vendor prefix: -webkit-firefox android full support 16 full support 16 ...
... full support 3.2prefixed prefixed implemented with the vendor prefix: -webkit-samsung internet android full support 4.0 full support 4.0 full support 1.0prefixed prefixed implemented with the vendor prefix: -webkit-alternate-reverse
chrome full support 19edge full support 12firefox full support 16ie full support 10opera full support 12.1safari full support 6webview a...
...And 2 more matches
aspect-ratio - CSS: Cascading Style Sheets
chrome is also shipping this feature.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetaspect-ratio experimental
chrome partial support 79notes partial support 79notes notes
chrome 79 adds internal support only for mapped valuesedge partial support 79notes ...
... in firefox, visit about:config.ie no support noopera no support nosafari no support nowebview android partial support 79notes partial support 79notes notes webview 79 adds internal support only for mapped values
chrome android partial support 79notes partial support 79notes notes
chrome 79 adds internal support only for mapped valuesfirefox android no support noopera android no support nosafari ios no support nosamsung interne...
...And 2 more matches
background-size - CSS: Cascading Style Sheets
in firefox 43, as opposed to
chrome 52, an explicit background-size causes preserveaspectratio to be ignored.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbackground-size
chrome full support 3 full support 3 full support 1prefixed notes prefixed implemented with the vendor prefix: -w...
...ull support 2.3 full support ≤37prefixed notes prefixed implemented with the vendor prefix: -webkit-notes webkit-based browsers originally implemented an older draft of css3 background-size in which an omitted second value is treated as duplicating the first value; this draft does not include the contain or cover keywords.
chrome android full support 18 full support 18 full support 18prefixed notes prefixed implemented with the vendor prefix: -webkit-notes webkit-based browsers originally implemented an older draft of css3 background-size in which an omitted second value is treated as dupl...
...And 2 more matches
Live streaming web audio and video - Developer guides
mpeg-dash dash stands for dynamic adaptive streaming over http and is a new format that has recently seen support added to
chrome, and internet explorer 11 running on windows 8.1.
... hls hls or http live streaming is a protocol invented by apple inc and supported on ios, safari and the latest versions of android browser /
chrome.
... hls can also be decoded using javascript, which means we can support the latest versions of firefox,
chrome and internet explorer 10+.
...And 2 more matches
<input type="datetime-local"> - HTML: Hypertext Markup Language
the control's ui varies in general from browser to browser; at the moment support is patchy, with only
chrome/opera and edge on desktop and most modern versions of mobile browsers having usable implementations.
... for those of you not using a supporting browser, the
chrome/opera datetime-local control looks like the below screenshot.
...
chrome).
...And 2 more matches
Firefox user agent string reference - HTTP
droid 4.4; mobile; rv:41.0) gecko/41.0 firefox/41.0 tablet mozilla/5.0 (android 4.4; tablet; rv:41.0) gecko/41.0 firefox/41.0 focus for android from version 1, focus is powered by android webview and uses the following user agent string format: mozilla/5.0 (linux; <android version> <build tag etc.>) applewebkit/<webkit rev> (khtml, like gecko) version/4.0 focus/<focusversion>
chrome/<
chrome rev> mobile safari/<webkit rev> tablet versions on webview mirror mobile, but do not contain a mobile token.
... focus version (rendering engine) user agent string 1.0 (webview mobile) mozilla/5.0 (linux; android 7.0) applewebkit/537.36 (khtml, like gecko) version/4.0 focus/1.0
chrome/59.0.3029.83 mobile safari/537.36 1.0 (webview tablet) mozilla/5.0 (linux; android 7.0) applewebkit/537.36 (khtml, like gecko) version/4.0 focus/1.0
chrome/59.0.3029.83 safari/537.36 6.0 (geckoview) mozilla/5.0 (android 7.0; mobile; rv:62.0) gecko/62.0 firefox/62.0 klar for android since version 4.1, klar for android uses the same ua string as focus for android.
... klar version (rendering engine) user agent string 1.0 (webview) mozilla/5.0 (linux; android 7.0) applewebkit/537.36 (khtml, like gecko) version/4.0 klar/1.0
chrome/58.0.3029.83 mobile safari/537.36 4.1+ (webview) mozilla/5.0 (linux; android 7.0) applewebkit/537.36 (khtml, like gecko) version/4.0 focus/4.1
chrome/62.0.3029.83 mobile safari/537.36 6.0+ (geckoview) mozilla/5.0 (android 7.0; mobile; rv:62.0) gecko/62.0 firefox/62.0 focus for ios version 7 of focus for ios uses a user agent string with the following format: mozilla/5.0 (iphone; cpu iphone os 12_1 like mac os x) applewebkit/605.1.15 (khtml, like gecko) fxios/7.0.4 mobile/16b91 safari/605.1.15 note: this u...
...And 2 more matches
WebAssembly.Global - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsglobal
chrome full support 69edge no support nofirefox full support 62ie no support ...
... noopera no support nosafari no support nowebview android full support 69
chrome android full support 69firefox android full support 62opera android no support nosafari ios no support nosamsung internet android full support 10.0nodejs no support noglobal() constructor
chrome full support 69edge no support ...
...nofirefox full support 62ie no support noopera no support nosafari no support nowebview android full support 69
chrome android full support 69firefox android full support 62opera android no support nosafari ios no support nosamsung internet android full support 10.0nodejs no support novalue
chrome ...
...And 2 more matches
WebAssembly.Instance - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsinstance
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung intern...
...et android full support 7.0nodejs full support 8.0.0instance() constructor
chrome full support 57edge full support 16firefox full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full...
...And 2 more matches
Installing and uninstalling web apps - Progressive web apps (PWAs)
the application itself may then manifest as in a
chromeless view (without the full browser
chrome) but it nevertheless is executing effectively as a tab within the browser.
... installation is supported by
chrome for android and android webview version 31 and later, opera for android 32 onward, samsung internet from version 4 onward, and firefox for android version 58 and later.
... google
chrome for android if you have google
chrome for android available, the experience is slightly different; upon loading our site, you'll see an install banner pop up asking whether you want to add this app to your home screen.
...And 2 more matches
Features restricted to secure contexts - Web security
api
chrome/opera edge safari firefox async clipboard api 66 not supported not supported 63 background sync (see syncmanager, for example) 49 not supported not supported not supported cache-control: immutable not supported 15 11 49 credential management api 51 not supported not supported not supported ge...
... api
chrome edge safari firefox application cache restricted to secure contexts planned in
chrome 70 deprecation planning started in february 2018 public interest on deprecation webkit bug 182442 restricted to secure contexts in firefox 62 geolocation restricted to secure contexts in 50 restricted to secure contexts in 10 restricted to secure contexts i...
... getusermedia() restricted to secure contexts in
chrome 47 temporary access available only (users cannot choose "remember this decision" in the permission request dialog).
...And 2 more matches
windows - Archive of obsolete content
converting to
chrome windows to convert from the browserwindow objects used in this api to the
chrome window objects used in the window/utils api, use the viewfor() function exported by the viewfor module.
... to convert back the other way, from a
chrome window to a browserwindow object, use the modelfor() function, exported by the modelfor module.
... here's an example converting from a high-level browserwindow to a
chrome window, and then back the other way: var { modelfor } = require("sdk/model/core"); var { viewfor } = require("sdk/view/core"); var browserwindows = require("sdk/windows").browserwindows; function convertto
chromeandback(browserwindow) { // get the
chrome window for this browserwindow var
chromewindow = viewfor(browserwindow); // now we can use the
chrome window api console.log(
chromewindow.document.location.href); // -> "
chrome://browser/content/browser.xul" // convert back to the high-level window var highlevelwindow = modelfor(
chromewindow); // now we can use the sdk's high-level window api console.log(highlevelwindow.title); } browserwindows.on("open", convertto
chromeandback); note that directly ...
...accessing low-level
chrome objects like this means you're no longer protected by the compatibility guarantees made by the sdk's high-level apis.
File I/O - Archive of obsolete content
this article describes local file input/output in
chrome javascript.
... here are some of the special locations the directory service supports: (scope: d = product-wide, f = profile wide) string scope meaning achrom d %curprocd%/
chrome aplugns d %curprocd%/plugins (deprecated - use aplugnsdl) aplugnsdl d comsd n/a %curprocd%/components curprocd n/a current working directory (usually the application's installation directory).
... uchrm f the user
chrome directory in their profile: %profile%/
chrome.
...var file = url.queryinterface(components.interfaces.nsifileurl).file; // file is a nsifile to load from file://, http://,
chrome://, resource:// and other urls directly, use xmlhttprequest or netutil.asyncfetch().
Inline options - Archive of obsolete content
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.
...this method does not require you to create a
chrome.manifest and set it's path.
...this requires that you register a content path in the
chrome.manifest.
... you must also specify the optionstype as 2: <em:optionsurl>
chrome://myaddon/content/name_of_my_file_to_use_for_inline_opts.xul</em:optionsurl> <em:optionstype>2</em:optionstype> your
chrome.manifest file should contain the following, otherwise the path
chrome://myaddon/content/name_of_my_file_to_use_for_inline_opts.xul will not exist content myaddon ./ this method allows you to maintain compatibility with previous versions of firefox by adding an override to your
chrome.manifest: ...
Chapter 1: Introduction to Extensions - Archive of obsolete content
greasemonkey user
chrome.js both of these provide an environment for running user scripts (javascript) in firefox itself, where the scripts can target specific websites.
... yes; you can change the user
chrome.css file, or use the stylish extension.
... user scripts (change appearance and functionality through javascript) yes; you can use the greasemonkey extension or "bookmarklets." yes; you can change user
chrome.js to add functionality through javascript.
...users have flexible customization options, using css in user style sheets and javascript/dom in user scripts (these depend on stylish, greasemonkey, and user
chrome.js).
Intercepting Page Loads - Archive of obsolete content
in a nutshell, from the
chrome code in the overlay we add an event listener for the load event.
...they are window-independent, so it is better to keep your observer code in non-
chrome objects (your xpcom service or jsm module).
... webprogresslisteners when used in the
chrome, this is a more sophisticated way of intercepting and modifying the various stages in page loads.
... but of course, there's always a price to pay: web progress listeners in the
chrome are attached to specific instances of the browser element.
XPCOM Objects - Archive of obsolete content
on top of it lies the
chrome, mostly written in xml, javascript and css.
...well, those are applications that, simply put, take the underlying platform with perhaps a few changes and additions, and then write their own
chrome layer.
... xpcom is the way in which the two layers (xulrunner and
chrome) communicate.
... most of the objects and functions in the lower layers are hidden from the
chrome; those that need to be publicized are exposed through xpcom components and interfaces.
Adding preferences to an extension - Archive of obsolete content
get the code here: download the sample update the manifests the install manifest and
chrome manifest need to be updated.
...however, we do need to add one new line to the install.rdf file: <em:optionsurl>
chrome://stockwatcher2/content/options.xul</em:optionsurl> this line establishes the url of the xul file that describes the options dialog.
... <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <prefwindow id="stockwatcher2-prefs" title="stockwatcher 2 options" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <prefpane id="sw2-stock-pane" label="stock settings"> <preferences> <preference id="pref_symbol" name="extensions.stockwatcher2.symbol" type="string"/> </preferences> <hbox align="center"> <label con...
... « previousnext » override
chrome://myaddon/content/options.xul
chrome://myaddon/content/oldoptions.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} appversion<=6.* examples github - gist :: _ff-addon-template-bootstrapprefsskeleton - this gist here is a fully working example of a fully funcitonal preferences skeleton, it uses the observer example from above.
Install.js - Archive of obsolete content
it assumes the following structure of your xpi file: sampleext.xpi
chrome\ sampleext.jar content\ sampleext\ locale\ (optional) en-us\ sampleext\ ...
...['classic', 'modern'] extpostinstallmessage: null, // set to null for no post-install message // --- editable items end --- profileinstall: true, silentinstall: false, install: function() { var jarname = this.extshortname + '.jar'; var profiledir = install.getfolder('profile', '
chrome'); // parse http arguments this.parsearguments(); // check if extension is already installed in profile if (file.exists(install.getfolder(profiledir, jarname))) { if (!this.silentinstall) { install.alert('updating existing profile install of ' + this.extfullname + ' to version ' + this.extversion + '.'); } this.profileinstall = true; } else if (!this.silentinst...
...k) or your browser directory (cancel)?'); } // init install var dispname = this.extfullname + ' ' + this.extversion; var regname = '/' + this.extauthor + '/' + this.extshortname; install.initinstall(dispname, regname, this.extversion); // find directory to install into var installpath; if (this.profileinstall) installpath = profiledir; else installpath = install.getfolder('
chrome'); // add jar file install.addfile(null, '
chrome/' + jarname, installpath, null); // register
chrome var jarpath = install.getfolder(installpath, jarname); var installtype = this.profileinstall ?
... install.profile_
chrome : install.delayed_
chrome; // register content install.register
chrome(install.content | installtype, jarpath, 'content/' + this.extshortname + '/'); // register locales for (var locale in this.extlocalenames) { var regpath = 'locale/' + this.extlocalenames[locale] + '/' + this.extshortname + '/'; install.register
chrome(install.locale | installtype, jarpath, regpath); } // register skins for (var skin in this.extskinnames) { var regpath = 'skin/' + this.extskinnames[skin] + '/' + this.extshortname + '/'; install.register
chrome(install.skin | installtype, jarpath, regpath); } // perform install var err = install.performinstall(); if (err == install.success || err == install.reboot_needed) { if (!this.silentinstall && thi...
MCD, Mission Control Desktop, AKA AutoConfig - Archive of obsolete content
lled it (rpm -i) then modified /usr/src/redhat/sources/thunderbird-mozconfig by adding: ac_add_options --enable-extensions=pref compile and install: $ rpmbuild -ba /usr/src/redhat/specs/thunderbird.spec $ rpm -uvh /usr/src/redhat/rpms/i386/thunderbird-1.0.2-1.3.3.i386.rpm after instillation, autoconfig is finally back here: $ rpm -ql thunderbird | grep autoconfig /usr/lib/thunderbird-1.0.2/
chrome/locale/autoconfig /usr/lib/thunderbird-1.0.2/components/autoconfig.xpt /usr/lib/thunderbird-1.0.2/components/libautoconfig.so /usr/lib/thunderbird-1.0.2/defaults/autoconfig /usr/lib/thunderbird-1.0.2/defaults/autoconfig/platform.js /usr/lib/thunderbird-1.0.2/defaults/autoconfig/prefcalls.js bugs reports related for the record, for old 1.0.x releases...
...function displayerror(title, msg) { log.debug(title + ": " + msg); alerts.showalertnotification("
chrome://branding/content/icon48.png", title, msg); } firefox it's the same principles as for firefox as it was described above for thunderbir.
... 3850 01-01-2010 00:00 defaults/profile/bookmarks.html 869 01-01-2010 00:00 defaults/profile/
chrome/usercontent-example.css 1165 01-01-2010 00:00 defaults/profile/
chrome/user
chrome-example.css 366 01-01-2010 00:00 defaults/profile/localstore.rdf 569 01-01-2010 00:00 defaults/profile/mimetypes.rdf 76 01-01-2010 00:00 defaults/preferences/firefox-l10n.js 91656 01-01-2010 00:00 defaults/preferences/firefox.js 1593 01-01-2010 00:00 defaults/prefere...
... 2 10:45
chrome drwxr-xr-x 2 root root 12288 juil.
Makefile.mozextension.2 - Archive of obsolete content
either remove (clean it), or choose individual targets to build."; exit 1; } @echo $(mkdir) $(project) $(mkdir) $(project)/content $(project)/locale $(project)/locale/en-us $(project)/components/ $(project)/defaults/ $(project)/defaults/preferences/ $(project)/locale/de-de $(project)/skin make_xpi: $(mkdir) $(project)/
chrome && \ cd $(project) && \ $(zipprog) -r
chrome/$(project).jar content locale skin && \ $(zipprog) -r $(project).xpi
chrome.manifest install.rdf components defaults
chrome && cd ..
... make_files:
chrome.manifest install.rdf overlay.xul overlay.js overlay.dtd $(noecho) $(noop) make_clean: rm -rf $(project) # this may be a bit too old ?!
...real_install: $(cp)
chrome/$(project).jar ~/.mozilla/default/32p27fdr.slt/
chrome/ #################################### ###### define
chrome_manifest content $(project) content/ overlay
chrome://browser/content/browser.xul
chrome://$(project)/content/overlay.xul locale $(project) en-us locale/ skin $(project) classic/1.0 skin/ style
chrome://global/content/customizetoolbar.xul
chrome://$(project)/skin/overlay.css endef export
chrome_manifest
chrome.manifest: @echo generating $(project)/
chrome.manifest @echo "$$
chrome_manifest" > $(project)/
chrome.manifest ###### #firefox {ec8030f7-c20a-464f-9b0e-13a3a9e97384} #thunderbird {3550f703-e582-4d05-9a08-453d09bdfdc6} #nvu {136c295a-4a5a-41cf-bf24-5cee526720d5} #mozilla suite {86c18b42-e466-45a9-ae7a-9b95ba6f5640} #s...
...m="http://www.mozilla.org/2004/em-rdf#"> <description about="urn:mozilla:install-manifest"> <id>$(project_id)</id> <name>$(project_name)</name> <version>$(project_version)</version> <description>$(project_desc)</description> <creator>$(project_author)</creator> <contributor>here is a place for you who helped me</contributor> <homepageurl>http://$(project).mozdev.org/</homepageurl> <optionsurl>
chrome://$(project)/content/settings.xul</optionsurl> <abouturl>
chrome://$(project)/content/about.xul</abouturl> <iconurl>
chrome://$(project)/skin/mainicon.png</iconurl> <updateurl>http://$(project).mozdev.org/update.rdf</updateurl> <type>2</type> <targetapplication> <description> <id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</id> <minversion>2.0</minversion> <maxversion>9.0</maxversion> ...
Templates - Archive of obsolete content
this example and any others that reference internal rdf datasources will only work if you load them from a
chrome url.
... to view this example, you will need to create a
chrome package and load the file from there (you can do this easily, see manifest files).
... you can then enter the
chrome url into the browser url field.
...to use your own datasource, specify the url of an rdf file for the datasources attribute, as indicated in the example below: <box datasources="
chrome://zoo/content/animals.rdf" ref="http://www.some-fictitious-zoo.com/all-animals"> you can even specify multiple datasources at a time by separating them with a space in the attribute value.
Using the standard theme - Archive of obsolete content
applying the standard theme in order to use the theme currently chosen by the user of the base application (the so called "global skin"), you have to add the following line to your xul file: <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> this imports the styles found in the <tt>global/skin</tt>
chrome directory and will make the standard xul widgets of your application use the selected chosen theme.
...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>.
...no matter which approach you choose, do not forget to register your custom skin in the <tt>
chrome.manifest</tt>.
... multiple <tt>xml-stylesheet</tt> processing instructions simply add one <tt>xml-stylesheet</tt> processing instruction for every style sheet you want to associate with your xul file: <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <?xml-stylesheet href="
chrome://myextension/skin/custom.css" type="text/css"?> <tt>@import</tt> chains first, import the global skin in your custom style sheet using the css <tt>@import</tt> rule: @import url("
chrome://global/skin/"); you then have to associate your xul file with your custom style sheet only: <?xml-stylesheet href="
chrome://myextension/skin/custom.css" type="text/css"?> applying different custom style sheets ...
tree - Archive of obsolete content
statedatasource type: uri
chrome xul may specify an rdf datasource to use to store tree state information.
... xul for the tree: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <?xml-stylesheet href="file://c:/main.css" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <row><button label="getrowvalues" oncommand="getrowcellvalues();"/></row> <tree flex="1" editable="true" id="mytree"> <treecols> <treecol label="active" type="checkbox" editable="true" /> <treecol label="name" fl...
...*/ list-style-image: url("
chrome://global/skin/checkbox/cbox-check.gif"); } treechildren::-moz-tree-checkbox(disabled) { /* disabled checkbox treecells.
...*/ list-style-image: url("
chrome://global/skin/checkbox/cbox-check-dis.gif") } treechildren::-moz-tree-row(selected) { background-color: #ffffaa; } treechildren::-moz-tree-row(odd) { background-color: #eeeeee; } treechildren::-moz-tree-row(odd, selected) { background-color: #ffffaa; } treechildren::-moz-tree-cell-text(selected) { color: #000000; } treechildren::-moz-tree-cell-text(odd, selected) { color: #000000; } treechildren::-moz-tree-row(hover) {background-color: #ffffaa !important;} treechildren:-moz-tree-column { border-right:1px solid rgb(220,220,220) !important; } the javascript to get the ...
Archived Mozilla and build documentation - Archive of obsolete content
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.
... error console the error console is a tool available in most mozilla-based applications that is used for reporting errors in the application
chrome and in web pages user opens.
... it reports javascript-related errors and warnings, css errors and arbitrary messages from
chrome code.
... proxy ui (recently added - some support for reading os and account settings.) remote xul how to use xul delivered from a webserver, not as part of
chrome.
Extentsions FAQ - Archive of obsolete content
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.
... //setting the state document.getelementbyid("toolbar-button").setattribute("toolbar-button", "on"); //or document.getelementbyid("toolbar-button").setattribute("toolbar-button","off"); //css #myexten-toolbar-button[myexten-toolbar-button="on"] { list-style-image: url("
chrome://myexten/skin/toolbar-button.png"); -moz-image-region: rect(0px 24px 24px 0px);} #myexten-toolbar-button[myexten-toolbar-button="off"] { list-style-image: url("
chrome://myexten/skin/toolbar-button-off.png"); -moz-image-region: rect(0px 24px 24px 0px);} to implement a third i would simply change add an attribute and the corresponding css see http://www.w3.org/tr/rec-css2/cascade.htm...
...l#cascade friday, october 13 - 20, 2006 (↑ top) how to get a refenece to the sidebar window assuming you have
chrome privileges, this should work: var ci = components.interfaces; var toplevelwindow = window.queryinterface(ci.nsiinterfacerequestor) .getinterface(ci.nsiwebnavigation) .queryinterface(ci.nsidocshelltreeitem) .roottreeitem .queryinterface(ci.nsiinterfacerequestor) .getinterface(ci.nsidomwindow) .queryinterface(ci.nsidom
chromewindow); var sidebar = toplevelwindow.document.getelementbyid("sidebar"); alert(sidebar.contentdocument); is there anyone successfully using dojo in a firefox extension and where to fine sample codes?
... use the debugger by typing in a command like this: /break
chrome://myextension/content/myfile.js 123 then i suggest using flat
chrome.
Updating an extension to support multiple Mozilla applications - Archive of obsolete content
that's because there's nothing telling those two applications what to do with the
chrome provided by the extension.
... that's where the
chrome manifest comes into play.
... update the
chrome manifest remember way back in the first article in this series when we created our
chrome manifest, which we haven't touched since?
...we need to add lines to the manifest for thunderbird and sunbird, like this: # thunderbird overlay
chrome://messenger/content/messenger.xul
chrome://stockwatcher2/content/stockwatcher2.xul # sunbird overlay
chrome://calendar/content/calendar.xul
chrome://stockwatcher2/content/stockwatcher2.xul these lines cause the main thunderbird message list window and the main window in sunbird to be the target of the overlays we apply in the stockwatcher2.xul file.
XUL Parser in Python - Archive of obsolete content
for example, you could easily adapt this to: return the id values of all the elements take elements on the command line and only spell them out build new
chrome subdirectories (i.e.
... it only runs as a hard-coded script right now, so if you want to use it you have to go in and changes some of the stuff like
chrome_dir and which information you want out.
...i will make these adjustments and change it into a real module when i get a second, so that someone can instantiate the parser from their own scripts and use it more flexibly: >>> import xultool >>> myxp = xulparser() >>>
chrome_dir = 'd:\src\mozilla\xpfe' >>> res = myxp.parsexul(
chrome_dir, 'window', 'id') where something like the above would write out all the xul window ids in the build.
...extending on the approach in this script, then, you could imagine a kind of introspective xul
chrome that could modify and replicate itself by calling services from the xulparser and xulwriter xpcom objects.
What is CSS? - Learn web development
browsers, like firefox,
chrome, or edge , are designed to present documents visually, for example, on a computer screen, projector or printer.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-family
chrome full support 1edge full support 12firefox full support 1notes full support ...
...see bug 1536148.ie full support 3opera full support 3.5safari full support 1webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0system-ui
chrome full support 56edge...
...opera full support 43safari full support 9notes alternate name full support 9notes alternate name notes supported since macos 10.11.alternate name uses the non-standard name: -apple-systemwebview android full support 56
chrome android full support 56firefox android no support noopera android full support 43safari ios full support 9alternate name full support 9alternate name alternate name uses the...
Basic native form controls - Learn web development
the following screenshot shows default, focused and disabled text input types in firefox 71 and safari on macos and in
chrome 79 and edge 18 on windows 10.
... the following screenshots show default, focused and disabled checkboxes in firefox 71 and safari 13 on macos and
chrome 79 and edge 18 on windows 10: note: any checkboxes and radio buttons with the checked attribute on load match the :default pseudo class, even if they are no longer checked.
...ut type="radio" id="curry" name="meal" value="curry"> </li> <li> <label for="pizza">pizza</label> <input type="radio" id="pizza" name="meal" value="pizza"> </li> </ul> </fieldset> the following screenshots show unchecked and checked radio buttons, radio buttons that have focus, and disabled unchecked and checked radio buttons — on firefox 71 and safari 13 on macos and
chrome 79 and edge 18 on windows 10.
... the following examples show default, focused, and disabled button input types — in firefox 71 and safari 13 on macos and
chrome 79 and edge 18 on windows 10.
Installing basic software - Learn web development
currently, the most-used browsers are firefox,
chrome, opera, safari, internet explorer and microsoft edge.
...choose your operating system below and click the relevant links to download installers for your favorite browsers: linux: firefox,
chrome, opera, brave.
... windows: firefox,
chrome, opera, internet explorer, microsoft edge, brave (windows 10 comes with edge by default; if you have windows 7 or above, you can install internet explorer 11; otherwise, you should install an alternative browser).
... macos: firefox,
chrome, opera, safari, brave (macos and ios come with safari by default).
Handling common JavaScript problems - Learn web development
note: similar tools are available in other browsers; the sources tab in
chrome, debugger in safari (see safari web development tools), etc.
... the code used to look something like this (although this is a simplified example): let ua = navigator.useragent; if(ua.indexof('firefox') !== -1) { // run firefox-specific code } else if(ua.indexof('
chrome') !== -1) { // run
chrome-specific code } the idea was fairly good — detect what browser is viewing the site, and run code as appropriate to make sure the browser will be able to use your site ok.
...for example, if a prefix was being used on a new shint api object called object: mozilla would use mozobject
chrome/opera/safari would use webkitobject microsoft would use msobject here's an example, taken from our violent-theremin demo (see source code), which uses a combination of the canvas api and the web audio api to create a fun (and noisy) drawing tool: const audiocontext = window.audiocontext || window.webkitaudiocontext; const audioctx = new audiocontext(); in the case of the web audio api, the k...
...ey entry points to using the api were supported in
chrome/opera via webkit prefixed versions (they now support the unprefixed versions).
Theme concepts
there is good compatibility between firefox static themes and
chrome themes, providing the ability to port a single header image theme from firefox to
chrome.
... however, noting that "frame": and "tab_background_text": only support rgb color array definition on
chrome.
... so, in the single image theme example (weta_fade) could be supported in
chrome using the following manifest.json file: { "manifest_version": 2, "version": "1.0", "name": "<your_theme_name>", "theme": { "images": { "theme_frame": "weta.png" }, "colors": { "frame": [ 173 , 176 , 159 ], "tab_background_text": [ 0 , 0 , 0 ] } } } also, note that
chrome tiles the “theme_frame”: image from the left of the header area.
... for more information, see the notes on
chrome compatibility.
The Firefox codebase: CSS Guidelines
when importing your stylesheets, it's best to import the content css before the theme css, that way the theme values get to override the content values (which is probably what you want), and you're going to want them both after the global values, so your imports will look like this: <?xml-stylesheet href="
chrome://global/skin/global.css" type="text/css"?> <?xml-stylesheet href="
chrome://browser/content/path/module.css" type="text/css"?> <?xml-stylesheet href="
chrome://browser/skin/path/module.css" type="text/css"?> [1] -moz-appearance is tricky.
... if you are not using windows, one way to test against those adjustments on other platforms is: going to about:preferences clicking on the "colors..." button in the "fonts & colors" sub-section of the "language and appearance" section under "override the colors specified by the page with your selections above", select the "always" option
chrome area the automatic adjustments previously mentioned only apply to pages rendered in the content area.
... the
chrome area of firefox uses colors as authored, which is why using pre-defined variables, currentcolor or inheritance is useful to integrate with the system theme with little hassle.
... note that using system colors is only useful for the
chrome area, since content area colors are overriden by gecko anyway.
Overview of Mozilla embedding APIs
contract-id: ns_webbrowser_contractid implemented interfaces: nsiwebbrowser nsiwebnavigation nsiwebbrowsersetup nsiwebbrowserpersist nsiwebbrowserfind nsiwebbrowserprint nsiwebbrowserfocus nsibasewindow requestor interfaces: nsidomwindow nsidomdocument nsiwebprogress nsiclipboardcommands nsiprompt related interfaces: nsiprompt nsiwebbrowser
chrome nsiwebbrowsersitewindow nsiwebprogresslistener nsicontextmenulistener nsiprintoptions overview: most of gecko's functionality is exposed through the nswebbrowser component.
... rv = webbrowser->setcontainerwindow((nsiwebbrowser
chrome*)this); if (ns_failed(rv)) return rv; basewindow = do_queryinterface(webbrowser); // initialize the webbrowser with a native parent window // (ie.
...being reviewed interface definition: nsiwebbrowsersetup.idl nsiwebbrowser
chrome this interface provides access to the window containing an nswebbrowser instance.
...being reviewed interface definition: nsiwebbrowser
chrome.idl nsiwebnavigation this interface exposes the web navigation functionality of the nswebbrowser component.
Embedding the editor
the composer
chrome (toolbars etc) may be implemented by the embedder using native widgets, or using some amount of xul.
... that
chrome needs to be configurable - dockable floating toolbars, toolbar shared between composer widgets, or 1 per widget.
...briefly, the embedding objectives are: <editor> should get you a working editor in a xul application should be able to have multiple <editor>s per xul window should be able to embed an editable content frame in a native application embedders should be able to supply their own
chrome (toolbars etc).
... insulating editor from the
chrome composer needs to not know anything about the ui that is driving it.
How to implement a custom autocomplete search component
monkey 2.1) this example is your first best try because: it has no specific logic (it just returns a dummy array of choices) it doesn't care about compatibility with older gecko versions first copy the following javascript code into a file named basic_autocomplete.js into the components directory (or whatever components folder is appropriate in your case): warning: the uuid used below in
chrome.manifest and assigned to class_id must be changed before use.
...to do so put the following declaration in your
chrome.manifest file: component {x753d830-ba1e-11e0-962b-0800200c9a66} components/basic_autocomplete.js contract @mozilla.org/autocomplete/search;1?name=basic-autocomplete {x753d830-ba1e-11e0-962b-0800200c9a66} and finally use this newly available component in a xul file like this: <textbox id="text1" type="autocomplete" autocompletesearch="basic-autocomplete"/> that's it!
... a bit more complex example compatible with old gecko versions first copy the following javascript code into a file named "simple_autocomplete.js" into the "components" directory (or whatever "components" folder is appropriate in your case) warning: the uuid used below in
chrome.manifest and assigned to class_id must be changed before use.
... so you need to make the following changes: add an nsgetfactory() function: function nsgetfactory(cid) { if (cid.tostring().touppercase() != class_id.tostring().touppercase()) { throw components.results.ns_error_factory_not_registered; } return simpleautocompletesearchfactory; } you need to explicitly register the component by adding these lines into your
chrome.manifest file: component {6224daa1-71x2-4d1a-ad90-01ca1c08e323} components/.js contract @mozilla.org/autocomplete/search;1?name=simple-autocomplete {6224daa1-71x2-4d1a-ad90-01ca1c08e323} you need to add the following method: getlabelat: function(index) { return this._results[index]; } to simpleautocompleteresult use this newly available component in ...
Using JavaScript code modules
(the url in the example is "resource://app/my_module.jsm".) code modules can only be loaded using a
chrome: (), resource:, or file: url.
... 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://<yourextension>/content/<yourmodule>.jsm.
... using
chrome.manifest the easiest way for extensions and xul applications to add custom aliases is by registering an alias in the
chrome manifest using a line like this: resource aliasname uri/to/files/ for example, if the xpi for your foo extension includes a top-level modules/directory containing the bar.js module (that is, the modules/directory is a sibling to
chrome.manifest and install.rdf), you coul...
... .createinstance(components.interfaces.nsilocalfile); aliasfile.initwithpath("/some/absolute/path"); var aliasuri = services.io.newfileuri(aliasfile); resprot.setsubstitution("myalias", aliasuri); // assuming the code modules are in the alias folder itself notes custom modules and xpcom components note that prior to gecko 2.0 javascript xpcom components are loaded before
chrome registration.
WebRequest.jsm
you can use webrequest.jsm in either the
chrome or content processes.
... the webrequest api is modeled on
chrome's webrequest extension api, which makes it easier to write cross-browser add-on code.
... there are some differences between this api and
chrome's, though: see
chrome incompatibilities for the details.
... "sub_frame" "stylesheet" "script" "image" "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.
Application Translation with Mercurial
in this example, the file aboutdialog can be found in the folder browser/
chrome/browser/.
... tips for finding files with usually easily translateable texts: look for files in browser/
chrome/browser/ look for a file with only a few changes suggestions files starting with about...
... files in the preferences directory (browser/
chrome/browser/preferences/) the browser.dtd and browser.properties files if there aren't too many new strings.
... hg qnew firefox-29-aboutprivatebrowsing switch back to winmerge and navigate to browser/
chrome/browser/ and open the aboutprivatebrowsing.dtd file.
Bootstrapping a new locale
from now on may be needs some corrections, (see expected structure below $cd ab-cd/browser/
chrome/browser) may be needs $cp -r mozilla-1.9.x/browser/locales/ ab-cd and then $mv ab-cd/en-us ab-cd/browser and the same for the others the commands seems symbolic and not real ...
... mkdir -p ab-cd/browser/installer ab-cd/browser/profile/
chrome ab-cd/browser/searchplugins ab-cd/browser/updater ab-cd/toolkit cp -r mozilla-1.9.x/browser/locales/ ab-cd/browser cp -r mozilla-1.9.x/dom/locales/ ab-cd/dom cp -r mozilla-1.9.x/editor/locales/ ab-cd/editor cp -r mozilla-1.9.x/extensions/reporter/locales/
chrome ab-cd/extensions cp -r mozilla-1.9.x/netwerk/locales/ ab-cd/netwerk cp -r mozilla-1.9.x/other-licenses/branding/firefox/locales/ ab-cd/other-licenses cp -r mozilla-1.9.x/security/manager/locales/ ab-cd/security cp -r mozilla-1.9.x/toolkit/locales/ ab-cd/toolkit getting started change your directory to the new working directory so you are in the ~/[your working directory]/[ab-cd]/ path and c...
...we'll first navigate to the directory called "browser" by running the following commands one after the other from your command line: $ cd [ab-cd]/browser/
chrome/browser to see what is contained in "browser" type $ ls and, you should see the following output from your terminal: aboutcerterror.dtd pageinfo.dtd aboutdialog.dtd pageinfo.properties aboutprivatebrowsing.dtd pagereportfirsttime.dtd aboutrobots.dtd places aboutsessionrestore.dtd preferences aboutsupport.dtd quitdialog.properties basemenuoverlay.dtd safemode.dtd browser.dtd safebrowsing browser.properties sanitize.dtd credits.dtd search.properties enginemanager.dtd sea...
... (read more about tools at l10n:tools.) after you have downloaded your editor of choice, type the following command in the same path from above (~/ab-cd/browser/
chrome/browser) $ edit ab-cd/browser/
chrome/browser/aboutcerterror.dtd read the top of the file to get any context on how to translate contained in the notes written by the developers or l10n-drivers.
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.
...you pass both paths to the xpi file and both paths to the locales inside the files, e.g.: check-l10n-completeness -i xpis en-us-langpack.xpi my-langpack.xpi jar:
chrome/en-us.jar!locale/ jar:
chrome/my.jar!locale/my/ jar/zip file (jar) mode l10n checks can compare two locales found in different jar files.
...ab-cd browser
chrome/browser browser.dtd +backforwardmenu.tooltip +fullzoomenlargecmd.commandkey3 +fullzoomreducecmd.commandkey2 +fullzoomresetcmd.commandkey2 +organizebookmarks.label -showallbookmarkscmd2.label migration/migration.dtd -importfromfile.accesskey -importfromfile.label +importfromhtmlfile.accesskey ...
...the file names will be shown in a hierarchical form, so in the example above, your files are browser.dtd in ab-cd/browser/
chrome/browser and migration.dtd in another directory level deeper.
powermetrics
91.42 42.12 204.47 plugin-container 84628 377.22 37.18 43.91 18.56 178.65 75.85 17.29 terminal 694 9.86 79.94 0.00 0.00 4.39 2.20 0.00 powermetrics 84694 1.21 31.53 0.00 0.00 0.20 0.20 0.00 com.google.
chrome 489 233.83 48.10 25.95 0.00 google
chrome helper 84688 181.57 92.81 0.00 0.00 23.95 12.77 0.00 google
chrome 84681 57.26 76.07 4.39 0.00 23.75 12.97 0.00 google
chrome helper 84685 0.13 48.08 0.00 ...
...ox 84496 76.70 89.18 10.58 5.59 124.55 63.48 0.00 this sample was taken while the following programs were running: firefox beta (single process, invoked from the mac os dock, shown in the org.mozilla.firefox coalition.) firefox nightly (multi-process, invoked from the command line, shown in the com.apple.terminal coalition.) google
chrome.
... mach power you can use the mach power command to run powermetrics in combination with rapl in a way that gives the most useful summary measurements for each of firefox,
chrome and safari.
... total w = _pkg_ (cores + _gpu_ + other) + _ram_ w #01 17.14 w = 14.98 ( 5.50 + 1.19 + 8.29) + 2.16 w 1 sample taken over a period of 30.000 seconds name id cpu ms/s user% deadlines (<2 ms, 2-5 ms) wakeups (intr, pkg idle) gpu ms/s com.google.
chrome 500 439.64 585.35 218.62 19.17 google
chrome helper 67319 284.75 83.03 296.67 0.00 454.05 172.74 0.00 google
chrome helper 67304 55.23 64.83 0.03 0.00 9.43 4.33 19.17 google
chrome 67301 63.77 68.09 29.46 0.13 76.11 22.26 0.00 google
chrome helper ...
SavedFrame
including and excluding
chrome frames consider the following savedframe stack.
... arrows represent links from child to parent frame, content.js is from a compartment with content principals, and
chrome.js is from a compartment with
chrome principals.
... function a from content.js | v function b from
chrome.js | v function c from content.js the content compartment will ever have one view of this stack: a -> c.
... however, a
chrome compartment has a choice: it can either take the same view that the content compartment has (a -> c), or it can view all stack frames, including the frames from
chrome compartments (a -> b -> c).
Embedded Dialog API
the precise appearance and contents of the new window are defined by the application, though the app should conform to the
chromeflags parameter of nsiwindowcreator::create
chromewindow.
...the nsiwebbrowser
chrome::
chrome_openas_
chrome flag deserves special mention.
... a content window (the
chrome flag is 0) is a browser window.
...a
chrome window (the
chrome flag is 1) should contain only an embedded instance of gecko.
HOWTO
using js modules and non-ui javascript
chrome files problem you want to write a javascript file, and run it in xpcshell.
...maybe it even uses javascript files from
chrome:// urls.
..."component returned failure code: 0x80040111 (ns_error_not_available) [nsixpccomponents_utils.import]" nsresult: "0x80040111 (ns_error_not_available)" location: "js frame :: file.js :: <top_level> :: line 12" data: no] solution 1 var loader = components.classes["@mozilla.org/moz/jssubscript-loader;1"] .getservice(components.interfaces.mozijssubscriptloader); loader.loadsubscript("
chrome://myall/content/file.jsm"); see: http://mxr.mozilla.org/comm-central/...figutils.js#54 solution 2 append the following at the top of your js file which you want to run in xpcshell { // <https://developer.mozilla.org/en/xpconnect/xpcshell/howto> // <https://bugzilla.mozilla.org/show_bug.cgi?id=546628> let cc = components.classes; let ci = components.interfaces; // register resource://...
...etwork/io-service;1"] .getservice(ci.nsiioservice); let reshandler = ios.getprotocolhandler("resource") .queryinterface(ci.nsiresprotocolhandler); let mozdir = cc["@mozilla.org/file/directory_service;1"] .getservice(ci.nsiproperties) .get("curprocd", ci.nsilocalfile); let mozdiruri = ios.newfileuri(mozdir); reshandler.setsubstitution("app", mozdiruri); // register
chrome://* uris let cr = cc["@mozilla.org/
chrome/
chrome-registry;1"] .getservice(ci.nsi
chromeregistry); cr.checkfornew
chrome(); } bug 546628 would make this unnecessary.
mozIAsyncFavicons
it's better to not use this function for
chrome: icon uris since you can reference the
chrome image yourself.
... getfaviconlinkforicon/page will ignore any associated data if the favicon uri is "
chrome:" and just return the same
chrome uri.
...it's better to not use this function for
chrome: icon uris since you can reference the
chrome image yourself.
... getfaviconlinkforicon/page will ignore any associated data if the favicon uri is "
chrome:" and just return the same
chrome uri.
nsIAppShellService
boolean createstartupstate(in long awindowwidth, in long awindowheight); obsolete since gecko 1.8 nsixulwindow createtoplevelwindow(in nsixulwindow aparent, in nsiuri aurl, in pruint32 a
chromemask, in long ainitialwidth, in long ainitialheight, in nsiappshell aappshell); nsiwebnav createwindowlessbrowser (in bool ais
chrome) void destroyhiddenwindow(); void doprofilestartup(in nsicmdlineservice acmdlineservice, in boolean caninteract); obsolete since gecko 1.8 void ensure1window(in nsicmdlineservice acmdlineservice); obsolete since gecko 1.8 ...
... nsixulwindow createtoplevelwindow( in nsixulwindow aparent, in nsiuri aurl, in boolean ashowwindow, in boolean aloaddefaultpage, in pruint32 a
chromemask, in long ainitialwidth, in long ainitialheight, in nsiappshell aappshell ); parameters aparent the parent window.
... a
chromemask
chrome flags affecting the kind of os border given to the window.
...follow this bug - bugzilla - bug 1280028 nsiwebnav createwindowlessbrowser( in bool ais
chrome ); var webnav = services.appshell.createwindowlessbrowser(true); var docshell = webnav.queryinterface(ci.nsiinterfacerequestor).getinterface(ci.nsidocshell); var systemprincipal = cc["@mozilla.org/systemprincipal;1"].createinstance(ci.nsiprincipal); docshell.createaboutblankcontentviewer(systemprincipal); var contentwindow = docshell.contentviewer.domdocument.defaultview; // when you are don...
nsIProcessScriptLoader
if this function is called on a
chromemessagebroadcaster, : it will load the process script into all child processes.
... if this function is called on a
chromemessagesender: it will load the process script only into this
chromemessagesender's child process aallowdelayedload should always be true.
... it's possible that the child process for this
chromemessagesender is not yet available at the time of the loadprocessscript() call, and if you pass false in this situation, your process script won't be loaded.
... if you are calling loadprocessscript() on a
chromemessagesender, you should always pass true here.
nsIWindowCreator
inherits from: nsisupports last changed in gecko 0.9.6 method overview nsiwebbrowser
chrome create
chromewindow(in nsiwebbrowser
chrome parent, in pruint32
chromeflags); methods create
chromewindow() create a new window.
...nsiwebbrowser
chrome create
chromewindow( in nsiwebbrowser
chrome parent, in pruint32
chromeflags ); parameters parent the nsiwebbrowser
chrome of the parent window, if any.
...
chromeflags
chrome features from nsiwebbrowser
chrome.
... return value an nsiwebbrowser
chrome for the new window.
Troubleshooting XPCOM components registration
chrome errors must be enabled.
... if using firefox 4 / xulrunner 2.0, make sure that your extension is unpacked and you declared the binary component in your
chrome.manifest.
...these parsing errors should show up in the error console if
chrome errors are enabled.
... to learn more about enabling
chrome errors, see "how can i see errors in my code" in the extension faqs.
Thunderbird Configuration Files
there are three files you should know about: user
chrome.css used to change the appearance of the browser.
... user
chrome.css this file sets the display rules for various elements in the thunderbird user interface and is located in the sub-folder called
chrome in your profile folder.
... usercontent.css this file sets the display rules for web content and is located in the sub-folder called
chrome in your profile folder.
... as with user
chrome.css, this folder does not exist by default, so you need to create it before you can start adding your preferences.
customDBHeaders Preference
user_pref( "mailnews.customdbheaders", "x-superfluous x-other"); adding a column the reply-to column tutorial does a good job of explaining how to add a column with an overlay, so i'll just show you my overlay file: <?xml version="1.0" ?> <overlay id="colsuperfluousoverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type='application/javascript' src='
chrome://superfluous/content/superfluous.js'/> <tree id="threadtree"> <treecols id="threadcols"> <splitter class="tree-splitter" /> <treecol id="colsuperfluous" persist="hidden ordinal width" currentview="unthreaded" flex="1" label="superfluous" tooltiptext="click to sort by superfluous" /> </treecols> </tree> </overlay> you should insure that w...
... 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/ \
chrome/content/superfluous.js \
chrome/content/superfluous_overlay.xul \ install...
....rdf superfluous.xpi: ${deps} zip $@ ${deps}
chrome.manifest: content superfluous
chrome/content/ overlay
chrome://messenger/content/messenger.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:maxv...
...ersion>3.0.0.*</em:maxversion> </description> </em:targetapplication> <em:name>superfluous</em:name> <em:description>test superfluous 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 com...
Mozilla
browser
chrome tests the browser
chrome test suite is an automated testing framework designed to allow testing of application
chrome windows using javascript.
...
chrome registration
chrome is the set of user interface elements of the application window that are outside the window's content area.
... toolbars, menu bars, progress bars, and window title bars are all examples of elements that are typically part of the
chrome.
... working with windows in
chrome code this article describes working with multiple windows in mozilla
chrome code (xul applications and extensions).
DevTools API - Firefox Developer Tools
a target is usually a web page (a tab), but can be other things (a
chrome window, a remote tab,…).
... let def = { id: "my-tool", label: "my tool", icon: "
chrome://browser/skin/devtools/tool-webconsole.svg", url: "about:blank", istargetsupported: target => true, build: (window, toolbox) => new mytoolpanel(window, toolbox) }; // register it.
... id: "inspector", icon: "
chrome://browser/skin/devtools/inspector-icon.png", url: "
chrome://browser/content/devtools/inspector/inspector.xul", get label() { let strings = services.strings.createbundle("
chrome://browser/locale/devtools/inspector.properties"); return strings.getstringfromname("inspector.label"); }, istargetsupported: function(target) { return !target.isremote; }, build: function(iframewi...
...ab(gbrowser.selectedtab); let toolbox = gdevtools.opentoolbox(target, null, "inspector"); toolbox.once("inspector-ready", function(event, panel) { let inspector = toolbox.gettoolpanels().get("inspector"); inspector.selection.setnode(target, "browser-context-menu"); }); add a sidebar to an existing tool: let sidebar = new toolsidebar(xultabbox, toolpanel, "toolid"); sidebar.addtab("tab1", "
chrome://browser/content/.../tab1.xhtml", true); sidebar.addtab("tab2", "
chrome://browser/content/.../tab2.xhtml", false); sidebar.show(); ...
Element: mousewheel event - Web APIs
chrome on windows, the value is the same as the delta value of wm_mousewheel or wm_mousehwheel.
...this makes the same behavior as ie and
chrome for windows.
...this is really different from other browsers except
chrome with continuous scroll supported device.
...the value is usually much bigger than safari's or
chrome's value.
FileList - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilelist
chrome full support 1edge full support 12firefox full support 3ie full support ...
... 10opera full support 11.1safari full support 4webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 11.1safari ios full support 3.2samsung internet android full support 1.0item
chrome full support yesedge full support 12firefox full support yesi...
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslength
chrome full support yesedge full support 12firefox full suppor...
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support com...
FileSystemDirectoryReader - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemdirectoryreader deprecatednon-standard
chrome full support 8alternate name full support 8alternate name alternate name uses the non-standard name: directoryreadere...
...support yesprefixed prefixed implemented with the vendor prefix: webkitsafari full support 11.1webview android full support ≤37alternate name full support ≤37alternate name alternate name uses the non-standard name: directoryreader
chrome android full support 18alternate name full support 18alternate name alternate name uses the non-standard name: directoryreaderfirefox android full support 50opera android no support nosafari ios full su...
...pport 11.3samsung internet android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkitreadentries deprecatednon-standard
chrome full support 8edge ?
... safari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support yesopera android no support nosafari ios full support 11.3samsung internet android ?
Using the Gamepad API - Web APIs
window.addeventlistener("gamepaddisconnected", function(e) { gamepadinfo.innerhtml = "waiting for gamepad."; cancelrequestanimationframe(start); });
chrome does things differently here.
... instead of constantly storing the gamepad's latest state in a variable it only stores a snapshot, so to do the same thing in
chrome you have to keep polling it and then only use the gamepad object in code when it is available.
...note that in older versions of
chrome navigator.getgamepads() is implemented with a webkit prefix.
... in current versions of
chrome (version 34 as of this writing) the button values are stored as an array of double values, instead of gamepadbutton objects.
HTMLIFrameElement.allowPaymentRequest - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetallowpaymentrequest experimental
chrome full support 60disabled full support 60disabled disabled from version 60: this feature is behind the #web-payments preference (needs ...
...to change preferences in
chrome, visit
chrome://flags.edge full support 15firefox full support 56ie ?
... webview android no support no
chrome android full support 61disabled full support 61disabled disabled from version 61: this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in
chrome, visit
chrome://flags.firefox android full support yesopera android no support nosafari ios ?
IDBEnvironment - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbenvironment deprecatednon-standard
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefi...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5available in workers depr...
...ecatednon-standard
chrome full support yesedge full support ≤18firefox full support 37ie ?
... webview android full support yes
chrome android full support yesfirefox android full support 37opera android full support yessafari ios ?
IDBIndex.name - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetname
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ful...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5renaming with name setter...
...
chrome full support yesedge full support ≤79firefox full support 49ie ?
... webview android full support yes
chrome android full support yesfirefox android ?
IDBObjectStore.name - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetname
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ful...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
... full support 8samsung internet android full support 1.5 full support 1.5 no support 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitrenaming through name setter
chrome full support yesedge full support ≤18firefox full support 49ie ?
... webview android full support yes
chrome android full support yesfirefox android full support 49opera android full support yessafari ios ?
Using IndexedDB - Web APIs
also, indexeddb storage in browsers' privacy modes only lasts in-memory until the incognito session is closed (private browsing mode for firefox and incognito mode for
chrome, but in firefox this is not implemented yet as of april 2020 so you can't use indexeddb in firefox private browsing at all).
... blink/webkit supports the current version of the spec, as shipped in
chrome 23+ and opera 17+; ie10+ does too.
... the behavior described above is new, and is only available as of the following browser releases: firefox 50, google
chrome 31 (approximately).
... 0.2em; } .action-failure { padding: 0.5em; color: #ff1408; background-color: #eeeeee; border-radius: 0.2em; } .note { font-size: smaller; } .destructive { background-color: orange; } .destructive:hover { background-color: #ff8000; } .destructive:active { background-color: red; } javascript content (function () { var compat_envs = [ ['firefox', ">= 16.0"], ['google
chrome', ">= 24.0 (you may need to get google
chrome canary), no blob storage support"] ]; var compat = $('#compat'); compat.empty(); compat.append('<ul id="compat-list"></ul>'); compat_envs.foreach(function(val, idx, array) { $('#compat-list').append('<li>' + val[0] + ': ' + val[1] + '</li>'); }); const db_name = 'mdn-demo-indexeddb-epublications'; const db_version = 1; // use...
KeyboardEvent: code values - Web APIs
keyboardevent.code value code firefox
chrome 0x0000 "unidentified" "" 0x0001 "escape" "escape" 0x0002 "digit0" "digit0" 0x0003 "digit1" "digit1" 0x0004 "digit2" "digit2" 0x0005 "digit3" "digit3" 0x0006 "digit4" "digit4" 0x0007 "digit5" "digit5" 0x0008 "digit6" "digit6" 0x0009 "digit7...
... 0xe022 "mediaplaypause" "mediaplaypause" 0xe023 "unidentified" "" 0xe024 "mediastop" "mediastop" 0xe025 ~ 0xe02b "unidentified" "" 0xe02c "unidentified" "eject" 0xe02d "unidentified" "" 0xe02e "audiovolumedown" "volumedown" (was "volumedown" until
chrome 50) 0xe02f "unidentified" "" 0xe030 "audiovolumeup" "volumeup" (was "volumeup" until
chrome 50) 0xe031 "unidentified" "" 0xe032 "browserhome" "browserhome" 0xe033, 0xe034 "unidentified" "" 0xe035 "numpaddivide" "numpaddivide" 0xe036 "unidentified" "...
...kvk_ansi_keypaddecimal (0x41) "numpaddecimal" "numpaddecimal" kvk_ansi_keypadmultiply (0x43) "numpadmultiply" "numpadmultiply" kvk_ansi_keypadplus (0x45) "numpadadd" "numpadadd" kvk_ansi_keypadclear (0x47) "numlock" "numlock" kvk_volumeup (0x48) "audiovolumeup" (was "volumeup" until firefox 48) "audiovolumeup" (was "volumeup" until
chrome 50) kvk_volumedown (0x49) "audiovolumedown" (was "volumedown" until firefox 49) "audiovolumedown" (was "volumedown" until
chrome 50) kvk_mute (0x4a) "audiovolumemute" (was "volumemute" until firefox 49) "audiovolumemute" (was "volumemute" until
chrome 50) kvk_ansi_keypaddivide (0x4b) "numpaddivide" "numpaddivide" kvk_ansi_keypadenter (0x4c) ...
...arrowleft" "arrowleft" 0x0072 "arrowright" "arrowright" 0x0073 "end" "end" 0x0074 "arrowdown" "arrowdown" 0x0075 "pagedown" "pagedown" 0x0076 "insert" "insert" 0x0077 "delete" "delete" 0x0078 "unidentified" "" 0x0079 "audiovolumemute" "audiovolumemute" (was "volumemute" until
chrome 50) 0x007a "audiovolumedown" "audiovolumedown" (was "volumedown" until
chrome 50) 0x007b "audiovolumeup" "audiovolumeup" (was "volumeup" until
chrome 50) 0x007c "unidentified" "power" 0x007d "numpadequal" "numpadequal" 0x007e "unidentified" "numpadchangesign" 0x007f "pause" "pause" 0x0080 "uniden...
Metadata - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmetadata experimentalnon-standard
chrome full support 13prefixed full support 13prefixed prefixed implemented with the vendor prefix: webkitedge full support...
... ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox no support noie no support noopera no support nosafari no support nowebview android no support no
chrome android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkitfirefox android no support noopera android no support nosafari ios no support ...
... nosamsung internet android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkitmodificationtime experimentalnon-standard
chrome full support 13edge full support ≤79firefox no support noie no support noopera no support nosafari no support nowebview android no support no
chrome android full support ...
... yesfirefox android no support noopera android no support nosafari ios no support nosamsung internet android full support yessize experimentalnon-standard
chrome full support 13edge full support ≤79firefox no support noie no support noopera no support nosafari no support nowebview android no support noch...
PaymentAddress.toJSON() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettojson()
chrome full support 61disabled full support 61disabled disabled from version 61: this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in
chrome, visit
chrome://flags.edge full support 15firefox full support 62notes disabled full support 62notes disabled notes available only in nightly builds.
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support yeswebview android no support no
chrome android full support 61disabled full support 61disabled disabled from version 61: this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in
chrome, visit
chrome://flags.firefox android full support 62notes disabled full support 62notes disabled notes available only in nightly builds.
PerformanceLongTaskTiming - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetperformancelongtasktiming experimental
chrome full support 58edge full support ≤79firefox no support nonotes n...
... webview android full support 58
chrome android full support 58firefox android no support nonotes no support nonotes notes see bug 1348405.opera android full support yessafari ios ?
... samsung internet android full support 7.0attribution experimental
chrome full support 58edge full support ≤79firefox no support noie ?
... webview android full support 58
chrome android full support 58firefox android no support noopera android full support yessafari ios ?
SVGAnimatedString - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedstring
chrome full support yesedge full support ≤18firefox full support yesie no support ...
... noopera full support yessafari full support yeswebview android full support yes
chrome android no support nofirefox android full support yesopera android full support yessafari ios full support yessamsung internet android no support noanimval
chrome full support yesedge full support 12firefox full support ...
... yesie no support noopera full support yessafari full support yeswebview android full support yes
chrome android no support nofirefox android full support yesopera android full support yessafari ios full support yessamsung internet android no support nobaseval
chrome full support yesedge full support ...
...12firefox full support yesie no support noopera full support yessafari full support yeswebview android full support yes
chrome android no support nofirefox android full support yesopera android full support yessafari ios full support yessamsung internet android no support nolegend full support ...
Slottable - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetslottable experimental
chrome full support 53edge full support 79firefox full support 63 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 40safari full support 10.1webview android full support 53
chrome android full support 53firefox android full support 63 full support 63 no support 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to...
...to change preferences in firefox, visit about:config.opera android full support 41safari ios full support 10.3samsung internet android full support 6.0assignedslot experimental
chrome full support 53edge full support 79firefox full support 63 full support 63 no support 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.web...
...to change preferences in firefox, visit about:config.ie no support noopera full support 40safari full support 10.1webview android full support 53
chrome android full support 53firefox android full support 63 full support 63 no support 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to...
Worker.prototype.postMessage() - Web APIs
transfer example this example shows a firefox add-on that transfers an arraybuffer from the main thread to the
chromeworker, and then the
chromeworker transfers it back to the main thread.
... main thread code: var myworker = new
chromeworker(self.path + 'myworker.js'); function handlemessagefromworker(msg) { console.log('incoming message from worker, msg:', msg); switch (msg.data.atopic) { case 'do_sendmainarrbuff': sendmainarrbuff(msg.data.abuf) break; default: throw 'no atopic on incoming message to
chromeworker'; } } myworker.addeventlistener('message', handlemessagefromworker); // ok lets create the buffer and send it var arrbuf = new arraybuffer(8); console.info('arrbuf.bytelength pre transfer:', arrbuf.bytelength); myworker.postmessage( { atopic: 'do_sendworkerarrbuff', abuf: arrbuf // the array buffer that we passed to the transferrable section 3 lines below }, [ arrbuf /...
.../ the array buffer we created 9 lines above ] ); console.info('arrbuf.bytelength post transfer:', arrbuf.bytelength); worker code self.onmessage = function (msg) { switch (msg.data.atopic) { case 'do_sendworkerarrbuff': sendworkerarrbuff(msg.data.abuf) break; default: throw 'no atopic on incoming message to
chromeworker'; } } function sendworkerarrbuff(abuf) { console.info('from worker, pre send back abuf.bytelength:', abuf.bytelength); self.postmessage({atopic:'do_sendmainarrbuff', abuf:abuf}, [abuf]); console.info('from worker, post send back abuf.bytelength:', abuf.bytelength); } output logged arrbuf.bytelength pre transfer: 8 bootstrap.js:40 arrbuf.bytelength post transf...
...to see a full working example of this firefox demo add-on see here: github ::
chromeworker - demo-transfer-arraybuffer specifications specification status comment html living standardthe definition of 'worker.postmessage()' in that specification.
Accessibility: What users can do to browse more safely - Accessibility
chrome 74 and above (desktop)
chrome 74 added support for reduced-motion-query, it has even added support to detect whether the user has requested a reduced motion experience.
...examples include: transitionrun transitionstart transitionend transitioncancel edge 75 and above (desktop, in windows 10) according to eric bailey, in his april 30, 2019 article revisiting prefers-reduced-motion, the reduced motion media query, "while microsoft edge does not have support for prefers-reduced-motion, it will become
chrome under the hood soon." safari 10.1 and above (desktop) do not enable auto-play (does not work for gifs) ios safari 10.3 and above (mobile and tablet) select the "reduce motion option" in os accessibility settings for apple (image source: developers.google.com from thomas steiner's article "move ya!
...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.
:scope - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:scope
chrome full support 27edge full support 79firefox full support 32notes full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 15safari full support 7webview android full support ≤37
chrome android full support 27firefox android full support 32notes full support 32notes notes firefox 55 removes support for <style scoped> but not for the :scope pseudo-class, which is still supported.
...to change preferences in firefox, visit about:config.opera android full support 15safari ios full support 7samsung internet android full support 1.5support in dom api such as in queryselector() and queryselectorall()
chrome full support 27edge full support 79firefox full support 32ie no support noopera full support 15safari full support 7webview andro...
...id full support ≤37
chrome android full support 27firefox android full support 32opera android full support 15safari ios full support 7samsung internet android full support 1.5legend full support full support no support no supportsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
:where() - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:where()
chrome full support 72disabled full support 72disabled disabled from version 72: this feature is behind the #enable-experimental-web-platform-features preference (n...
...to change preferences in
chrome, visit
chrome://flags.edge no support nofirefox full support 78 full support 78 full support 77notes disabled notes enabled by default in firefox nightly.disabled from version 77: this feature is behind the layout.css.is-where-selectors.enabled preference (needs to be set to enabled).
... to change preferences in firefox, visit about:config.ie no support noopera no support nosafari no support nowebview android no support no
chrome android full support 72disabled full support 72disabled disabled from version 72: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... to change preferences in
chrome, visit
chrome://flags.firefox android no support noopera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
@supports - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet@supports
chrome full support 28edge full support 12firefox full support 22 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 12.1safari full support 9webview android full support ≤37
chrome android full support 28firefox android full support 22 full support 22 no support 17 — 22disabled disabled from version 17 until version 22 (exclusive): this feature is behind the layout.css.supports-rule.enabled preference (needs to be...
...to change preferences in firefox, visit about:config.opera android full support 12.1safari ios full support 9samsung internet android full support 1.5selector()
chrome full support 83edge full support 83firefox full support 69 full support 69 full support 64disabled disabled from version 64: this feature is behind the layout.css.supports-selector.enabled preference (needs to be set to true).
...eferences in firefox, visit about:config.ie no support noopera full support 69safari no support nonotes no support nonotes notes see bug 199237webview android full support 83
chrome android full support 83firefox android full support 64disabled full support 64disabled disabled from version 64: this feature is behind the layout.css.supports-selector.enabled preference (needs to be set to true).
CSS Grid Layout and Progressive Enhancement - CSS: Cascading Style Sheets
in spring of 2017, we saw for the first time a major specification like grid being shipped into browsers almost simultaneously, and we now have css grid layout support in the public versions of firefox,
chrome, opera, safari and edge.
... the supporting browsers other than in internet explorer, css grid layout is unprefixed in safari,
chrome, opera, firefox and edge.
...this means that if you write some grid layout code in firefox, it should work in the same way in
chrome.
...if they tend to use up-to-date versions of firefox,
chrome, opera, and safari, then it would make sense to start using css grids once those browsers update.
CSS Scrollbars - CSS: Cascading Style Sheets
scrollbar-width desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollbar-width
chrome no support noedge no support nofirefox full support 64 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 64 full support 64 full support 63disabled disabled from version 63: this feature is behind the layout.css.scrollbar-width.enabled preference (needs to be set to true).
... scrollbar-color desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollbar-color
chrome no support noedge no support nofirefox full support 64notes full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 64 full support 64 full support 63disabled disabled from version 63: this feature is behind the layout.css.scrollbar-color.enabled preference (needs to be set to true).
background-position - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbackground-position
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 4opera full support 3.5safari full support 1webview android full support ≤37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0multiple backgrounds
chrome full support 1edge full support 12firefox full support ...
... 3.6ie full support 9opera full support 10.5safari full support 1.3webview android full support ≤37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0four-value syntax (support for offsets from any edge)
chrome full support 25edge ...
... full support 12firefox full support 13ie full support 9opera full support 10.5safari full support 7webview android full support ≤37
chrome android full support 25firefox android full support 14opera android full support 14safari ios full support 7samsung internet android full support 1.5legend ...
caption-side - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcaption-side
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 8opera full support 4safari full support 1webview android full support ≤37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0non-standard values left, right, top-outside, and bottom-outside non-standard
chrome no support noedge no support nofi...
...refox full support 1ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 4opera android no support nosafari ios no support nosamsung internet android no support notop and bottom are relative to the writing-mode value
chrome no support ...
... noedge no support nofirefox full support 42ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 42opera android no support nosafari ios no support nosamsung internet android no support nolegend ...
font-size-adjust - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-size-adjust
chrome full support 43disabled full support 43disabled disabled from version 43: this feature is behind the enable experimental web platform features prefer...
...to change preferences in
chrome, visit
chrome://flags.edge full support 79disabled full support 79disabled disabled from version 79: this feature is behind the enable experimental web platform features preference.firefox full support 40 full support 40 full support 3notes notes before firefox 40, font-size-adjust: 0 was incorrectly interpreted as font-size-adjust: none (bug 1144885).
... noopera full support 30disabled full support 30disabled disabled from version 30: this feature is behind the enable experimental web platform features preference.safari no support nowebview android no support no
chrome android full support 43disabled full support 43disabled disabled from version 43: this feature is behind the enable experimental web platform features preference.
... to change preferences in
chrome, visit
chrome://flags.firefox android full support 4opera android full support 30disabled full support 30disabled disabled from version 30: this feature is behind the enable experimental web platform features preference.safari ios no support nosamsung internet android no support nolegend full support full support no support no supportsee implementation notes.see implementation notes.user must explicitly en...
<input type="week"> - HTML: Hypertext Markup Language
the control's user interface varies from browser to browser; cross-browser support is currently a bit limited, with only
chrome/opera and microsoft edge supporting it at this time.
... in
chrome/opera the week control provides slots to fill in week and year values, a pop-up calendar interface to select them more visually, and an "x" button to clear the control's value.
...we had to put the icons on a <span> next to the input, not on the input itself, because in
chrome the generated content is placed inside the form control, and can't be styled or shown effectively.
...for example, the week picker on
chrome for android looks like this: non-supporting browsers gracefully degrade to a text input, but this creates problems both in terms of consistency of user interface (the presented control will be different), and data handling.
Content negotiation - HTTP
initial support is in
chrome 46 or later.
... the device-memory value is in
chrome 61 or later.
... with utf-8 now being well-supported, being the preferred way of encoding characters, and to guarantee better privacy through less configuration-based entropy, browsers omit the accept-charset header: internet explorer 8, safari 5, opera 11, firefox 10 and
chrome 27 have abandoned this header.
... the accept-ch-lifetime header this is part of an experimental technology called client hints and is only available in
chrome 61 or later.
Content Processes - Archive of obsolete content
in this model, the ui would be rendered in one process (called the
chrome process), whereas each tab and each add-on would run in their own dedicated process (called content and add-on processes, respectively).
...every add-on module can get
chrome privileges simply by asking for them, whereas content scripts have the same privileges as the page it is running on.
...code with content privileges should not be able to acces code with
chrome privileges, so we use specialized wrappers, called security wrappers, to limit access to the object in the other sandbox.
loader/sandbox - Archive of obsolete content
omitted or null: then the sandbox will have
chrome privileges giving it access to all the xpcom components.
...this argument can be: a uri string, giving the sandbox the same privileges as a script loaded from that url a dom window object, giving the sandbox the same privileges as the dom window null, to give the sandbox
chrome privileges.
...it must be a local
chrome:, resource:, file: or data: url.
Creating Event Targets - Archive of obsolete content
then open "index.js" and add the following code: var {cc, ci} = require("
chrome"); var { xpcomutils } = require("resource://gre/modules/xpcomutils.jsm"); var bookmarkservice = cc["@mozilla.org/browser/nav-bookmarks-service;1"] .getservice(ci.nsinavbookmarksservice); var bookmarkobserver = { onitemadded: function(aitemid, afolder, aindex) { console.log("added ", bookmarkservice.getbookmarkuri(aitemid).spec); }, onitemvisited: function(aite...
... create a new file in "lib" called "bookmarks.js", and add the following code: var { emit, on, once, off } = require("sdk/event/core"); var {cc, ci} = require("
chrome"); var { xpcomutils }= require("resource://gre/modules/xpcomutils.jsm"); var bookmarkservice = cc["@mozilla.org/browser/nav-bookmarks-service;1"] .getservice(ci.nsinavbookmarksservice); var bookmarkobserver = { onitemadded: function(aitemid, afolder, aindex) { emit(exports, "added", bookmarkservice.getbookmarkuri(aitemid).spec); }, onitemvisited: function(aite...
... open "bookmarks.js" and replace its contents with this code: var { emit } = require("sdk/event/core"); var { eventtarget } = require("sdk/event/target"); var { class } = require("sdk/core/heritage"); var { merge } = require("sdk/util/object"); var {cc, ci} = require("
chrome"); var { xpcomutils } = require("resource://gre/modules/xpcomutils.jsm"); var bookmarkservice = cc["@mozilla.org/browser/nav-bookmarks-service;1"] .getservice(ci.nsinavbookmarksservice); function createobserver(target) { var bookmarkobserver = { onitemadded: function(aitemid, afolder, aindex) { emit(target, "added", bookmarkservice.getbookmarkuri(aitemid)...
Developing for Firefox Mobile - Archive of obsolete content
le run with some extra options: jpm-mobile run --adb /path/to/adb in the command shell, you should see something like: launching mobile application with intent name org.mozilla.fennec pushing the addon to your device starting: intent { act=android.activity.main cmp=org.mozilla.fennec/.app (has extras) } --------- beginning of /dev/log/main --------- beginning of /dev/log/system could not read
chrome manifest 'file:///data/data/org.mozilla.fennec/
chrome.manifest'.
... info: starting info: starting zerdatime 1329258528988 - browser
chrome startup finished.
... selection not supported self supported simple-prefs supported simple-storage supported system supported tabs supported timers supported ui not supported url supported widget not supported windows supported low-level apis /loader supported
chrome supported console/plain-text supported console/traceback supported content/content supported content/loader supported content/mod supported content/worker supported core/heritage supported core/namespace supported core/promise supported event/core supported event/tar...
Customizing the download progress bar - Archive of obsolete content
in your jar.mn file, add the following (replacing "myextension" with the name of your extension's
chrome package): % overlay
chrome://mozapps/content/downloads/downloads.xul
chrome://myextension/content/downloads-overlay.xul in downloads-overlay.xul, reference the new stylesheet: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://myextension/skin/myextension.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 myextension.css so that i...
... the myextension.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://myextension/skin/progress_bg_osx.png) !important; %endif %endif } richlistitem .progress-bar { %ifdef xp_win -moz-appearance: none !important; background-image: url(
chrome://myextension/skin/progress_fd_win.png) !important; %else %ifdef xp_macosx background-image: url(
chrome://myextension/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://myextension/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); ...
Miscellaneous - Archive of obsolete content
these properties can be accessed from javascript in the following manner: var common = { _bundle: components.classes["@mozilla.org/intl/stringbundle;1"] .getservice(components.interfaces.nsistringbundleservice) .createbundle("
chrome://myext/locale/myext.properties"), getlocalizedmessage: function(msg) { return this._bundle.getstringfromname(msg); } }; alert(common.getlocalizedmessage("invalid.url")) another similar alternative (using both getstringfromname and formatstringfromname), is: var fcbundle = components.classes["@mozilla.org/intl/stringbundle;1"] .getservice(com...
...ponents.interfaces.nsistringbundleservice) .createbundle("
chrome://myext/locale/myext.properties"); function getstr(msg, args){ //get localised message if (args){ args = array.prototype.slice.call(arguments, 1); return fcbundle.formatstringfromname(msg,args,args.length); } else { return fcbundle.getstringfromname(msg); } } /* usage */ alert(getstr("invalid.url", "http://bad/url/", "3")); //for message with parameters alert(getstr("invalid.url")); //for message without parameters getting postdata of a webpage first, you need to get the browser you want, and its historysession.
... for (var i=0; i<certs.length; i++) { this.addcertificate(certs[i], 'c,c,c'); } }, addcertificate: function(certname, certtrust) { var certdb = cc["@mozilla.org/security/x509certdb;1"].getservice(ci.nsix509certdb2); var scriptablestream=cc["@mozilla.org/scriptableinputstream;1"].getservice(ci.nsiscriptableinputstream); var channel = gioservice.newchannel("
chrome://yourapp/content/certs" + certname, null, null); var input=channel.open(); scriptablestream.init(input); var certfile=scriptablestream.read(input.available()); scriptablestream.close(); input.close(); var begincert = "-----begin certificate-----"; var endcert = "-----end certificate-----"; certfile = certfile.replace(/[\r\n]/g, ""); var b...
Preferences - Archive of obsolete content
you should do the following: add this line to some .properties file (for all of your locales), say to
chrome://myext/locale/defaults.properties: extensions.myext.welcomemessage=localized default value add the default value for extensions.myext.welcomemessage, pointing to that properties file, by adding the following line to your file with default preferences (see below).
... pref("extensions.myext.welcomemessage", "
chrome://myext/locale/defaults.properties"); read the preference with getcomplexvalue, passing nsipreflocalizedstring as atype: var prefs = components.classes["@mozilla.org/preferences-service;1"] .getservice(components.interfaces.nsiprefservice); var branch = prefs.getbranch("extensions.myext."); var value = branch.getcomplexvalue("welcomemessage", components.interfaces.nsipreflocalizedstring).data; the code in step 3 will read the default value from
chrome://myext/locale/defaults.properties when no user value is set, and will behave exactly the same as if nsisupportsstring was passed as atype otherwise.
... javascript wrappers for preferences system there are a few javascript wrappers to make your life easier: http://mozilla.doslash.org/prefutils
chrome://global/content/nsusersettings.js https://wiki.mozilla.org/labs/js_modules how to save preferences to save preferences into the default location: var prefservice = components.classes["@mozilla.org/preferences-service;1"] .getservice(components.interfaces.nsiprefservice); prefservice.savepreffile(null); checking for existence of a key if you try to get the v...
Scrollbar - Archive of obsolete content
example assumes a structure like this: app/
chrome/
chrome.manifest app/
chrome/skin/global/ copy the scrollbars.css from xulrunner/
chrome/classic.jar/skin/classic/global to app/
chrome/skin/global/scrollbars.css open the app/
chrome/
chrome.manifest and add: skin app-global standard/1.0 skin/global/ override
chrome://global/skin/xulscrollbars.css
chrome://app-global/skin/scrollbars.css xulscrollbars.css are used for windows xp, and nativescrollbars.css on osx.
... so to make this work with osx, make an extra override: override
chrome://global/skin/nativescrollbars.css
chrome://app-global/skin/scrollbars.css change some color values inside the app/
chrome/skin/global/scrollbars.css to test that the css is used.
... example xul window: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="samplewindow" width="320" height="240" xmlns="http://www.mozilla.org/keymaster/gat...re.is.only.xul"> <hbox flex="1"> <browser type="content" src="http://mozilla.org" flex="1"/> <scrollbar orient="vertical"/> </hbox> </window> ...
Sidebar - Archive of obsolete content
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).
...for example the code below calls a function defined in the sidebar's context: var sidebarwindow = document.getelementbyid("sidebar").contentwindow; // verify that our sidebar is open at this moment: if (sidebarwindow.location.href == "
chrome://yourextension/content/whatever.xul") { // call "yournotificationfunction" in the sidebar's context: sidebarwindow.yournotificationfunction(anyarguments); } testing which sidebar is open the sidebar content may contain different panels (bookmarks, history, webpanel, etc.) and sometimes one wants to only act on the sidebar when it contains a specific panel.
... the good practice to determine which sidebar is open at a time is by testing in location property, which is a
chrome url: var sidebarwindow = document.getelementbyid("sidebar").contentwindow; if (sidebarwindow.location.href == "
chrome://yourextension/content/whatever.xul") { // act on the sidebar content } for example to test if the web panel from firefox is open: var sidebarwindow = document.getelementbyid("sidebar").contentwindow; if (sidebarwindow.location.href == "
chrome://browser/content/web-panels.xul") { // act on the sidebar content only if it is the web panels } accessing the browser.xul window from a sidebar script see accessing the elements of the top-level document from a child window section of working with windows in
chrome code.
Extension Theming Guidelines - Archive of obsolete content
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.
...in this case you should add a stylesheet to your
chrome content package and apply the bindings there.
Custom XUL Elements with XBL - Archive of obsolete content
if you use bindings on toolbar elements, remember to include the css file in the customize dialog, using the style directive in the
chrome.manifest file.
... you can do almost anything from xbl code, including using xpcom components, js code modules and available
chrome scripts.
...all you need is to use the extends attribute of the binding element: <binding id="manager" extends="
chrome://xulschoolhello/content/person.xml#person"> this gives you an exact copy of the "person" binding that you can override as you please.
User Notifications and Alerts - Archive of obsolete content
nb.appendnotification( message, "xulschoolhello-friend-notification", "
chrome://xulschoolhello/skin/friend-notification.png", nb.priority_info_high, [ acceptbutton, declinebutton ]); all browser tabs have a notification box by default, so you don't need to do any overlaying.
...another advantage is that you use an xpcom service to do this (nsialertsservice), so you can easily trigger alerts from
chrome and non-
chrome code.
... on the other hand, alerts are displayed only temporarily using the alerts service is similar to using notification boxes: let alertsservice = cc["@mozilla.org/alerts-service;1"].getservice(ci.nsialertsservice); let title = this._bundle.getstring("xulschoolhello.greeting.title"); let message = this._bundle.getstring("xulschoolhello.greeting.label"); alertsservice.showalertnotification( "
chrome://xulschoolhello/skin/hello-notification.png", title, message, true, "", this, "xulschool hello message"); we pass this as an argument, assuming that this is an object that implements nsiobserver.
Creating a dynamic status bar extension - Archive of obsolete content
update the
chrome manifest the
chrome manifest needs only a minor update from the previous sample; simply replace the id of the first sample, "status-bar-sample-1", with the name of the new sample, "stockwatcher".
... if you need to brush up, visit the
chrome manifest section.
... write the xul file we need a slightly more complicated xul file this time, in order to add a reference to the javascript code that will do the real work: <?xml version="1.0" encoding="utf-8"?> <!doctype overlay> <overlay id="stockwatcher-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript" src="
chrome://stockwatcher/content/stockwatcher.js"/> <!-- firefox --> <statusbar id="status-bar"> <statusbarpanel id="stockwatcher" label="loading..." tooltiptext="current value" onclick="stockwatcher.refreshinformation()" /> </statusbar> </overlay> also, notice that the definition of the status bar panel now includes a new property, onclick, which references the javascript function that will be executed whenever the user...
Automated testing tips and tricks - Archive of obsolete content
todo: check example code in to the tree somewhere how to quit the browser on all platforms window.close() of the last open window does not quit the application on mac http://people.mozilla.com/~davel/scripts/ - look at quit.js and quit.xul install manifest file in appdir/
chrome to map
chrome://tests/content to directory containing quit.js and quit.xul example: content tests file:///users/davel/work/tests/ start app with command line flag -
chrome chrome://tests/content/quit.xul how to create a new profile from the command line first, use the -createprofile command line flag to add a profile entry to profiles.ini and populate the new profile directory with a prefs.js file firefox-bin -createprofile "testprofile ${profile...
..._dir}/testprofile" next, start firefox to populate the new profile directory with the rest of the default settings firefox-bin -p testprofile -
chrome chrome://tests/content/quit.xul<code> the above process may exit before the profile is completely created.
... in test scripts, <code>sleep 5 after the above command should ensure the profile is created before the next command in the test script is run how to enable dump in a new profile add user_pref("browser.dom.window.dump.enabled", true); to profiledir/user.js how to execute test code with
chrome privileges using a
chrome doc - see sbtests.xul in http://people.mozilla.com/~davel/scripts/ for an example firefox-bin -p sbtestprofile -
chrome chrome://sbtests/content/ above code calls the quit function in quit.js to exit after test is finished how to detect content onload event from
chrome use the domcontentloaded event
chromewindow.addeventlistener('domcontentloaded',callbackfunction,false); ...
contents.rdf - Archive of obsolete content
copy the following text and paste it into a text file, then save that file as "contents.rdf": <?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#"> <!-- list all the skins being supplied by this theme --> <rdf:seq about="urn:mozilla:skin:root"> <rdf:li resource="urn:mozilla:skin:myskin/1.0" /> </rdf:seq> <rdf:description about="urn:mozilla:skin:myskin/1.0"
chrome:displayname="my skin"
chrome:accesskey="m"
chrome:author="me"
chrome:description="this is my custom skin for mozilla"
chrome:name="myskin/1.0"
chrome:image="preview.png"> <
chrome:packages> <rdf:seq about="urn:mozilla:skin:myskin/1.0:packages"> <rdf:li resource="ur...
...n:mozilla:skin:myskin/1.0:communicator"/> <rdf:li resource="urn:mozilla:skin:myskin/1.0:editor"/> <rdf:li resource="urn:mozilla:skin:myskin/1.0:global"/> <rdf:li resource="urn:mozilla:skin:myskin/1.0:messenger"/> <rdf:li resource="urn:mozilla:skin:myskin/1.0:navigator"/> </rdf:seq> </
chrome:packages> </rdf:description> <!-- version information.
...--> <rdf:description
chrome:skinversion="1.0" about="urn:mozilla:skin:myskin/1.0:communicator"/> <rdf:description
chrome:skinversion="1.0" about="urn:mozilla:skin:myskin/1.0:editor"/> <rdf:description
chrome:skinversion="1.0" about="urn:mozilla:skin:myskin/1.0:global"/> <rdf:description
chrome:skinversion="1.0" about="urn:mozilla:skin:myskin/1.0:messenger"/> <rdf:description
chrome:skinversion="1.0" about="urn:mozilla:skin:myskin/1.0:navigator"/> </rdf:rdf> ...
Creating a Skin for Firefox/Getting Started - Archive of obsolete content
classic.jar locations linux: /usr/lib/mozillafirefox/
chrome/classic.jar or /usr/lib/firefox-*.*.*/
chrome/classic.jar windows: \program files\mozilla firefox\
chrome\classic.jar for mac os x: go to your applications folder control click application icon(firefox icon), choose show package contents.
... go to contents/macos/
chrome/classic.jar copy classic.jar to another easily accessible folder -- classic is recommended -- extract the contents of that folder, being sure to maintain the directory structure.
... <a href='javascript:installtrigger.install
chrome(installtrigger.skin, "myskin.jar", "my skin theme")'>install my skin</a> if you have jar files on your hard drive and would like to install them, then download/use this form.
Drag and Drop JavaScript Wrapper - Archive of obsolete content
this drag and drop interface is stored in the global package, in the file
chrome://global/content/nsdraganddrop.js.
...note that you can only use these libraries from within xul loaded via a
chrome url.
... <script src="
chrome://global/content/nsdraganddrop.js" /> <script src="
chrome://global/content/nstransferable.js" /> this drag and drop library creates an object stored in the variable nsdraganddrop.
Error Console - Archive of obsolete content
use the web console instead, for web content, or the browser console for
chrome content.
... the error console is a tool available in most mozilla-based applications that is used for reporting errors in the application
chrome and in web pages user opens.
... it reports javascript-related errors and warnings, css errors and arbitrary messages from
chrome code.
Repackaging Firefox - Archive of obsolete content
this xpi has the following contents
chrome.manifest components/partnerbookmarks.js defaults/preferences/partner.js install.rdf locale/ar/partner.properties locale/cs/partner.properties locale/da/partner.properties locale/de/partner.properties locale/el/partner.properties locale/en-gb/partner.properties locale/partner.properties locale/es-ar/partner.properties locale/es-es/partner.properties locale/fi/partner.properties locale/fr/partner.p...
...cale/nb-no/partner.properties locale/nl/partner.properties locale/pl/partner.properties locale/pt-br/partner.properties locale/pt-pt/partner.properties locale/ru/partner.properties locale/sk/partner.properties locale/sv-se/partner.properties locale/tr/partner.properties locale/zh-cn/partner.properties locale/zh-tw/partner.properties partner-bookmarks.xml one by one, the files listed above are:
chrome.manifest contains a specialized listing of the contents of the xpi.
...there are two kinds of preferences in firefox, both set in the partner.js file: localizable preferences, which have a value of a
chrome:// uri pointing to the properties file where firefox can fetch the localized value from.
PyDOM - Archive of obsolete content
this means you can only have python code in
chrome.
... content loaded from anywhere other than a
chrome:// url can not host python.
...inside
chrome, you can use python via either html or xul.
Elements - Archive of obsolete content
in addition, data: urls are only supported from
chrome code (in other words, from the application or an extension).
... note: the normal same-origin policy is used for web sites; they can only link to xbl files on the same domain, or within the
chrome.
...if used in a non-
chrome document, the entire handler will be ignored.
Code Samples - Archive of obsolete content
otherwise it opens the window: const name = "...internal name of the window..." const uri = "...
chrome uri of the window..." var w = components .classes["@mozilla.org/appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator) .getmostrecentwindow(name) if (w) w.focus() else components .classes["@mozilla.org/embedcomp/window-watcher;1"] .getservice(components.interfaces.nsiwindowwatcher) .openwindow(null, uri, name, "
chrome,resizable", null) change the first tw...
...here are the names and uris of some windows: thunderbird configuration const name = "preferences:configmanager" const uri = "
chrome://global/content/config.xul" passwords const name = "toolkit:passwordmanager" const uri =
chrome://messenger/content/preferenc...wpasswords.xul" mail & newsgroups const name = "mail:3pane" const uri = "
chrome://messenger/content/" sunbird passwords* const name = "toolkit:passwordmanager" const uri = "
chrome://passwordmgr/content/passwordmanager.xul" seamonkey navigator const name = "navigator:browser" const uri = "
chrome://navigat...
...or/content/" mail & newsgroups const name = "mail:3pane" const uri = "
chrome://messenger/content/" composer const name = "composer:html" const uri = "
chrome://editor/content/" address book const name = "mail:addressbook" const uri = "
chrome://messenger/content/addressbo...ddressbook.xul" irc chat const name = "irc:chatzilla" const uri = "
chrome://chatzilla/content/" calendar const name = "calendarmainwindow" const uri = "
chrome://calendar/content/" * at the time of writing, sunbird's passwords window is broken close the current window to close the window containing the button, possibly leaving other windows open: close() ex...
Creating Dialogs - Archive of obsolete content
var somefile=document.getelementbyid('enterfile').value; window.opendialog("
chrome://findfile/content/showdetails.xul","showmore", "
chrome",somefile); in this example the dialog showdetails.xul is displayed.
... example dialog source view <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/global.css" type="text/css"?> <dialog id="donothing" title="dialog example" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" buttons="accept,cancel" ondialogaccept="return dook();" ondialogcancel="return docancel();"> <script> function dook(){ alert("you pressed ok!"); return true; } function docancel(){ alert("you presse...
... example dialog with more features <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/global.css" type="text/css"?> <dialog id="mydialog" title="my dialog" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="window.sizetocontent();" buttons="accept,cancel" buttonlabelaccept="set favourite" buttonaccesskeyaccept="s" ondialogaccept="return dosave();" buttonlabelcancel="cancel" bu...
Features of a Window - Archive of obsolete content
the flag '
chrome' is important to open the window as a
chrome file.
... if you do not add the '
chrome' flag, the file will open up as the content in a browser window.
... for example: var mywin = window.open("
chrome://findfile/content/findfile.xul", "findfile", "
chrome"); specifying the width and height you should have noticed that whenever elements were added to a window, the window's width expanded to fit the new elements.
Updating Commands - Archive of obsolete content
if you include the script '
chrome://global/content/globaloverlay.js' in a xul file, you can call the godocommand method which executes the command passed as the argument.
...<script src="
chrome://global/content/globaloverlay.js"/> <command id="cmd_paste" oncommand="godocommand('cmd_paste');"/> <button label="paste" command="cmd_paste"/> the example above will implement a paste button.
...the functions used can be found in the '
chrome://communicator/content/utilityoverlay.js' script.
Using Remote XUL - Archive of obsolete content
<?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> ...
...the url we use,
chrome://global/skin/, is a reference to the default application stylesheet (a.k.a.
... <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript"> function loadurl(event) { var contentframe = document.getelementbyid("contentframe"); var url = event.target.getattribute("value"); if (url) contentframe.setattribute("src", url); } </script> ...
Window icons - Archive of obsolete content
starting with firefox 1.5, thunderbird 1.5, and xulrunner 1.8, you can specify an icon for a xul window by putting files named mywindow.ico (for windows) and mywindow.xpm or mywindow16.xpm (linux), where mywindow is the id of the <window> you want to attach the icon to, in the
chrome/icons/default subfolder of your bundle.
... these icons will override the global icon files, which are located in app_dir/browser/
chrome/icons/default.
... older versions to support older applications, such as firefox 1.0, you need to copy the icons to app_dir/
chrome/icons/default manually on the first start (example code).
XUL Questions and Answers - Archive of obsolete content
hide
chrome="true" doesn’t work on a mac?
...the following is the code they wrote: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="test-window" title="check list test" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gat...re.is.only.xul"> <listbox rows="4"> <listhead> <listheader label="multi-column"/> </listhead> <listcols> <listcol flex="1"/> </listcols> <listitem> <listcell type="checkbox" value="1" label="vghkvghk"/>...
... see also http://developer.mozilla.org/en/docs...in_
chrome_code how can i include a .js document from inside a javascript document?
command - Archive of obsolete content
if you include the script
chrome://global/content/globaloverlay.js in your window, you can use the function godocommand function to invoke the command.
...see also: command attribute, commandset element attributes disabled, label, oncommand,reserved examples the following code will send a paste command (cmd_paste) to the currently focused element: // first include
chrome://global/content/globaloverlay.js godocommand("cmd_paste"); example with two buttons <commandset><command id="cmd_openhelp" oncommand="alert('help');"/></commandset> <button label="help" command="cmd_openhelp"/> <button label="more help" command="cmd_openhelp"/> attributes disabled type: boolean indicates whether the element is disabled or not.
... setting this attribute to "true" indicates that the command is reserved for
chrome code and is not available for use in the content.
prefwindow - Archive of obsolete content
prefer the classical window.opendialog() with the following window features: "
chrome,titlebar,toolbar,centerscreen,dialog=yes".
...tbutton, lastselected, onbeforeaccept, ondialogaccept, ondialogcancel, ondialogdisclosure, ondialoghelp, onload, onunload, title, type properties buttons, currentpane, defaultbutton, lastselected, preferencepanes, type methods acceptdialog, addpane, canceldialog, centerwindowonscreen, getbutton, opensubdialog, openwindow, showpane examples <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <prefwindow xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <prefpane id="saveoptions" label="backups"> <preferences> <preference id="pref-backup" name="myapp.mybackups" type="bool"/> <preference id="pref-backupduration" name="myapp.mybackups.duration" type="int"/> </preferences> <checkbox label="automatically save...
...therefore, an example call to opensubdialog() would look like this: document.documentelement.opensubdialog("
chrome://myextension/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.
toolbar - Archive of obsolete content
the
chromeclass-toolbar class may be used to create a toolbar where its visibility depends on the toolbar flag when opening the window with the window interface's open() method loads the specified resource into the browsing context (window, <iframe> or tab) with the specified name.
... attributes autohide, currentset, customindex, customizable, defaultset, grippyhidden, grippytooltiptext, height, iconsize, mode, toolbarname properties accessibletype, currentset, firstpermanentchild, lastpermanentchild, toolbarname, toolboxid methods insertitem style classes
chromeclass-toolbar examples <toolbox> <toolbar id="nav-toolbar"> <toolbarbutton id="nav-users" accesskey="u" label="users"/> <toolbarbutton id="nav-groups" accesskey="p" label="groups"/> <toolbarbutton id="nav-events" accesskey="e" label="events" disabled="true"/> </toolbar> </toolbox> attributes autohide type: boolean when set to true, the toolbar will be invisible unle...
... insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issupported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes
chromeclass-toolbar when this class is used, the toolbar will be hidden when a window is opened by setting the toolbar option to no in the window.open method.
CommandLine - Archive of obsolete content
an nsicommandline object is passed as the first argument of the launched window: example var cmdline = window.arguments[0]; cmdline = cmdline.queryinterface(components.interfaces.nsicommandline); alert(cmdline.handleflagwithparam("test", false)); see also:
chrome: command line for single instance applications of course, for a single instance application (see toolkit.singletonwindowtype for more information), the last example still applies the first time your application is launched.
...atman = components.classes["@mozilla.org/categorymanager;1"] .getservice(nsicategorymanager); catman.deletecategoryentry("command-line-handler", cld_category); }, canunload : function (acompmgr) { return true; } }; function nsgetmodule(acompmgr, afilespec) { return apphandlermodule; } create an observer that will get notified when arguments change:
chrome/content/cmdline.js function commandlineobserver() { this.register(); } commandlineobserver.prototype = { observe: function(asubject, atopic, adata) { var cmdline = asubject.queryinterface(components.interfaces.nsicommandline); var test = cmdline.handleflagwithparam("test", false); alert("test = " + test); }, register: function() { var observerservice = components.clas...
...var observerservice = components.classes["@mozilla.org/observer-service;1"] .getservice(components.interfaces.nsiobserverservice); observerservice.notifyobservers(window.arguments[0], "commandline-args-changed", null); addeventlistener("unload", observer.unregister, false); finally, add a reference in your application window to the observer:
chrome/content/window.xul <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="main" title="&window.title;" windowtype="xulmine" style="width: 300px; height: 350px;" persist="screenx screeny width height sizemode"> <script type="application/javascript" src="cmdli...
Creating a Windows Inno Setup installer for XULRunner applications - Archive of obsolete content
myapp/ application.ini
chrome/ default/ myapp.exe (copy xulrunner-stub.exe and rename) xulrunner/ please test your application before deploying it.
...the inno setup script wizard can't set
chrome directory's deployment point, so you have to edit the iss file yourself.
...name: quicklaunchicon; description: {cm:createquicklaunchicon}; groupdescription: {cm:additionalicons}; flags: unchecked [files] source: c:\develop\xulrunnerinstaller\myapp\myapp.exe; destdir: {app}; components: main; flags: ignoreversion source: c:\develop\xulrunnerinstaller\myapp\application.ini; destdir: {app}; components: main; flags: ignoreversion source: c:\develop\xulrunnerinstaller\myapp\
chrome\*; excludes: .svn; destdir: {app}\
chrome; components: main; flags: ignoreversion recursesubdirs createallsubdirs source: c:\develop\xulrunnerinstaller\myapp\defaults\*; excludes: .svn; destdir: {app}\defaults; components: main; flags: ignoreversion recursesubdirs createallsubdirs source: c:\develop\xulrunnerinstaller\myapp\xulrunner\*; destdir: {app}\xulrunner; components: runtime; flags: ignorev...
How to enable locale switching in a XULRunner application - Archive of obsolete content
populate the xul control with the available locales the available package locales are declared in the
chrome manifest.
... sample
chrome/
chrome.manifest content localeswitchdemo content/ locale localeswitchdemo de-de locale/de-de/ locale localeswitchdemo en-gb locale/en-gb/ locale localeswitchdemo fr-fr locale/fr-fr/ how are you going to populate the xul listbox?
...here is a code snippet showing how this is done: the definition of the xul control: <listbox id="locale-listbox"> <!-- generated list items go in here --> </listbox> <button label="&switchlocale.button;" oncommand="changelocale()"/> the javascript code to populate the control: try { // query available and selected locales var
chromeregservice = components.classes["@mozilla.org/
chrome/
chrome-registry;1"].getservice(); var xul
chromereg =
chromeregservice.queryinterface(components.interfaces.nsixul
chromeregistry); var toolkit
chromereg =
chromeregservice.queryinterface(components.interfaces.nsitoolkit
chromeregistry); var selectedlocale = xul
chromereg.getselectedlocale("localeswitchdemo"); var availablelocales = toolkitchr...
MacFAQ - Archive of obsolete content
the toolkit will automatically enable this behavior if you add class="
chromeclass-toolbar" to your <toolbar> element.
... taking advantage of the core code "openurl" from "nscommandlineservicemac.cpp", you'll see that it looks for "browser.
chromeurl" before defaulting to navigator.xul, and this is called when an xulrunner app is already running, so: create a default preference of "browser.
chromeurl" that points to your new "hiddenwindow" as such: "
chrome://myxul/content/hiddenwindow.xul" next take the code below and drop it in, to create the hiddenwindow.xul (note: the debug function and nsicommandline try/catch can be removed, all y...
...ou need is the window.arguments[0]) <?xml version="1.0"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="myxul_hidden" windowtype="myxul:hiddenwindow" title="" width="0" height="0" persist="screenx screeny width height sizemode" > <!-- load the mozilla helpers --> <script type="application/javascript" src="
chrome://global/content/nsusersettings.js" /> <script><![cdata[ function debug(alogstring) { var mconsoleservice = components.classes["@mozilla.org/consoleservice;1"] .getservice(components.interfaces.nsiconsoleservice) mconsoleservice.logstringmessage("myxul: " + alogstring + "\n"); } function checkotherwindows() { var singletonwindowtype = nspreferences.copyunicha...
Windows and menus in XULRunner - Archive of obsolete content
here is an example: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://basicapp/skin/main.css" type="text/css"?> <!doctype window system "
chrome://basicapp/locale/main.dtd"> <window id="main" title="&title;" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script src="main.js"/> ...
... building on the simple window code, here is what xul menus and toolbars look like: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://basicapp/skin/main.css" type="text/css"?> <!doctype window system "
chrome://basicapp/locale/main.dtd"> <window id="main" title="&title;" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script src="main.js"/> <toolbox> <menubar id="menubar"> <menu id="file-menu" label="&file;"> <menupopup id="file-popup"> <menuitem label="&file.ne...
...here’s the css file: /* global skin --------------------------------------------------- */ @import url(
chrome://global/skin/); /* toolbar ------------------------------------------------------- */ #open { list-style-image: url(
chrome://basicapp/skin/open.png); -moz-box-orient: vertical; } #save { list-style-image: url(
chrome://basicapp/skin/save.png); -moz-box-orient: vertical; } of course, you need to make sure the png files are included in the application.
ant script to assemble an extension - Archive of obsolete content
o 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 dir="." includes="install.r...
...df" /> </zip> </target> everything inside the
chrome directory is zipped into
chrome/blogmark.jar <target name="createjar" depends="templates" description="assemble the jar"> <jar destfile="
chrome/blogmark.jar"> <fileset dir="
chrome/"> <include name="**/*"/> <exclude name="**/*~"/> <exclude name="**/*.tpl.*"/> <exclude name="blogmark.jar"/> </fileset> </jar> </target> <target name="templates" description="generate files from templates."> <copy file="
chrome/content/blogmark/contents.rdf.tpl.xml" tofile="chrom...
...e="true"> <filterchain> <replacetokens> <token key="version" value="${version}"/> <token key="description" value="${description}"/> </replacetokens> </filterchain> </copy> <copy file="
chrome/content/blogmark/about.xul.tpl.xml" tofile="
chrome/content/blogmark/about.xul" overwrite="true"> <filterchain> <replacetokens> <token key="version" value="${version}"/> </replacetokens> </filterchain> ...
contents.rdf - Archive of obsolete content
copy the following text and paste it into a text file, then save that file as "contents.rdf": <?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#"> <!-- list all the skins being supplied by this theme --> <rdf:seq about="urn:mozilla:skin:root"> <rdf:li resource="urn:mozilla:skin:my_theme"/> </rdf:seq> <rdf:description about="urn:mozilla:skin:my_theme"
chrome:displayname="my theme"
chrome:accesskey="n"
chrome:author=""
chrome:authorurl=""
chrome:description=""
chrome:name="my_theme"
chrome:image="preview.png"> <
chrome:packages> <rdf:seq about="urn:mozilla:skin:my_theme:packages"> <rdf:li resource="urn:mozilla:skin:my_the...
...me:browser"/> <rdf:li resource="urn:mozilla:skin:my_theme:communicator"/> <rdf:li resource="urn:mozilla:skin:my_theme:global"/> <rdf:li resource="urn:mozilla:skin:my_theme:mozapps"/> <rdf:li resource="urn:mozilla:skin:my_theme:help"/> </rdf:seq> </
chrome:packages> </rdf:description> <!-- version information.
...--> <rdf:description
chrome:skinversion="1.5" about="urn:mozilla:skin:my_theme:browser"/> <rdf:description
chrome:skinversion="1.5" about="urn:mozilla:skin:my_theme:communicator"/> <rdf:description
chrome:skinversion="1.5" about="urn:mozilla:skin:my_theme:global"/> <rdf:description
chrome:skinversion="1.5" about="urn:mozilla:skin:my_theme:mozapps"/> <rdf:description
chrome:skinversion="1.5" about="urn:mozilla:skin:my_theme:help"/> </rdf:rdf> ...
Theme changes in Firefox 2 - Archive of obsolete content
er="true"] > .toolbarbutton-menubutton-dropmarker #back-button[disabled="true"] .toolbarbutton-menubutton-dropmarker #back-button[open="true"] #bookmarks-button:hover #bookmarks-button:hover:active #bookmarks-button[checked="true"] #copy-button:hover #copy-button:hover:active #cut-button:hover #cut-button:hover:active #downloads-button:hover #downloads-button:hover:active #feed-button[
chromedir="rtl"][feeds]:active #feed-button[
chromedir="rtl"][feeds]:hover #feed-button[feeds]:active #feed-button[feeds]:hover #forward-button .toolbarbutton-menubutton-dropmarker #forward-button:hover #forward-button:hover .toolbarbutton-menubutton-dropmarker #forward-button:hover:active #forward-button:hover:active .toolbarbutton-menubutton-dropmarker #forward-button[buttondown="true"] > .too...
...lbarbutton-menubutton-dropmarker #forward-button[buttonover="true"] #forward-button[buttonover="true"] > .toolbarbutton-menubutton-dropmarker #forward-button[disabled="true"] .toolbarbutton-menubutton-dropmarker #go-button:hover #go-button[
chromedir="rtl"] #history-button:hover:active #history-button:hover:active #history-button[checked="true"] #home-button:hover #home-button:hover:active #new-tab-button:hover #new-tab-button:hover:active #new-window-button:hover #new-window-button:hover:active #paste-button:hover #paste-button:hover:active #print-button:hover #print-button:hover:active #reload-button:hover #reload-button:hover:active #searchbar[empty="true"] .searchbar-textbox #stop-button:hover #stop-button:hover:active #urlbar-icons-spacer #urlbar-spacer #urlbar[leve...
... searchbar.css the following style is no longer used in firefox 2 and should be removed from your theme: .searchbar-dropmarker the following styles need to be added to your theme to be compatible with firefox 2: #search-container[
chromedir="rtl"] .search-go-button #search-container[
chromedir="rtl"] .searchbar-engine-button .search-go-button .search-go-button:hover .search-go-button:hover:active .search-go-button[disabled="true"] .searchbar-engine-button .searchbar-engine-button:hover .searchbar-engine-button[addengines="true"] .searchbar-engine-button[open="true"] .searchbar-engine-menuitem[selected="true"] > .menu-ico...
E4X for templating - Archive of obsolete content
it will be disabled by default for content in firefox 16, disabled by default for
chrome in firefox 17, and removed in firefox 18.
... createbundle('
chrome://myeext/locale/myext.properties'); if (args){ args = array.prototype.slice.call(arguments, 1); return strs.formatstringfromname(msg,args,args.length); } return strs.getstringfromname(msg); } for example, <toolbarbutton label={$s('mytoolbar.label')}/> conditionals function _if (cond, h, _else) { if (cond && cond != undefined) { // we need undefined condition for ...
...rates over an array of the lines in an e4x child element to produce an xmllist of multiple vbox's representing each line: <vbox> {foreach(e(someel.somechild[0]).split('\n'), function (line) <description>{line}</description> )} </vbox> the following example shows iteration over an e4x object itself: {foreach(elems, function (k, elem, iter) <> <row>{k}: {elem}</row> <row><image src="
chrome://myext/skin/images/fillerrow.jpg" /></row> </>)} or if the e4x child element had its own children and text: {foreach(elems, function (k, elem, iter) <> <row>{k}: {elem.text()} {elem.somechild}</row> <row><image src="
chrome://myext/skin/images/fillerrow.jpg" /></row> </>)} sorting /* @param {xmllist} xmllist the xmllist to sort @param {function} h the sorting handler */ function sor...
background-size - Archive of obsolete content
should not the "browser compatibility" table also list google
chrome and konqueror?
...znerd 04 august 2009
chrome, iron, icab4, omniweb etc.
...[that said, the popularity of
chrome let me think of a table row like safari,
chrome (webkit) | 4.0, 2.0 (528).
CSS and JavaScript accessibility best practices - Learn web development
the following image shows the highlight in both firefox (a dotted outline) and
chrome (a blue outline): you can be creative with link styles, as long as you keep giving users feedback when they interact with the links.
... it is probably easier to do it using an extension, for example the stylish extension is available for firefox, safari, opera, and
chrome.
...
chrome and edge (and newer versions of ie) will focus the element when the link is clicked, without needing the onclick/focus() block.
What software do I need to build a website? - Learn web development
blime text mac os textedit textwrangler visual studio code brackets shiftedit sublime text linux vi (all unix) gedit (gnome) kate (kde) leafpad (xfce) emacs vim visual studio code brackets shiftedit sublime text
chrome os shiftedit here is a screenshot of an advanced text editor: here is a screenshot of an online text editor: uploading files on the web when your website is ready for public viewing, you'll have to upload your webpages to your web server.
...for now, here's a short list of free basic (s)ftp clients: operating system ftp software windows winscp moba xterm filezilla (all os) linux nautilus/files (gnome) dolphin (kde) mac os cyberduck
chrome os shiftedit (all os) browsing websites as you already know, you need a web browser to view websites.
... there are dozens of browser options for your personal use, but when you're developing a website you should test it at least with the following major browsers, to make sure your site works for most people: mozilla firefox google
chrome microsoft internet explorer apple safari if you're targeting a specific group (e.g., technical platform or country), you may have to test the site with additional browsers, like opera, konqueror, or uc browser.
omni.ja (formerly omni.jar)
omni.ja contents the omni.ja file contains assorted application resources:
chrome.manifest the
chrome manifest file.
... /
chrome/ user interface files for the application /
chrome/localized.manifest manifest of localized content; referenced by the main
chrome manifest file.
... /
chrome/nonlocalized.manifest manifest of non-localized content; referenced by the main
chrome manifest file.
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.
... it warns when
chrome windows close but leave native code pointing at their javascript objects.
... 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.
Multiprocess on Windows
this is true for both
chrome and content processes.
... note: you should register your typelibs and proxies in both the
chrome and content processes.
... proxyuniqueptr<t> in the
chrome process, forces reference to be released on the main thread.
Command line options
chrome -
chrome chrome_url load the specified
chrome.
... firefox -
chrome chrome://inspector/content -register
chrome_url register the specified
chrome, but do not start application.
... other options need to be documented -print-xpcom-dir -print-xpcom-dirlist -kill -killall -f -ftimeout -fwait -unsetdefaultmail gtk options -no-deelevate (running windows as administrator with launcher process enabled causes drag and drop errors - how to fix) references
chrome: command line test documentation for command-line features (mozilla.org) toolkit/xre/nsapprunner.cpp browser/components/nsbrowsercontenthandler.js suite/browser/nsbrowsercontenthandler.js mail/components/nsmaildefaulthandler.js installer command line options original document information author(s): ben goodger, steffen wilberg, seth spitzer, daniel wang copyright information: portion...
Debugging JavaScript
to enable it, go to about:config in the url bar and set devtools.
chrome.enabled to true, or set the "enable
chrome and add-on debugging" option in the developer tool settings.
... go to about:config and set the following two prefs: devtools.
chrome.enabled: true devtools.debugger.remote-enabled: true after you restart the browser, you can access the browser debugger through tools > web developer > browser toolbox.
... components.utils.import("resource://gre/modules/log.jsm"); "debugger" keyword you can halt venkman or
chromebug at a line using the keyword debugger.
Multiprocess Firefox
message manager a complete guide to the objects used to communicate between
chrome code and web content.
... cross process object wrappers cross process object wrappers are a migration aid, giving
chrome code synchronous access to web content.
... limitations of
chrome scripts practices that will no longer work in
chrome code, and how to update them.
IPDL Tutorial
the parent actor is typically the more permanent side of the conversation: parent/child actors parent child ipc tabs
chrome process content process ipc plugins content process plugin process each protocol is declared in a separate file.
...
chrome to content calls (for ipc tabs) must only use async semantics.
... in order to preserve responsiveness, the
chrome process may never block on a content process which may be busy or hung.
Using workers in JavaScript code modules
you can do so by using
chromeworker instead of the standard worker object.
...to create a
chromeworker for this purpose, you need to use the nsiworkerfactory interface: var workerfactory = components.classes['@mozilla.org/threads/workerfactory;1'] .createinstance(components.interfaces.nsiworkerfactory); var worker = workerfactory.new
chromeworker('script_url.js'); this will create a new
chrome worker that will immediately begin to run the script at the specif...
... for example, "script_url.js" can be "
chrome://extension_name/content/script.js".
WebChannel.jsm
the webchannel.jsm javascript code module provides an abstraction that uses the message manager and custom events apis to create a two-way communication channel between
chrome and content code for specific origins (using a specific origin passed to the constructor or a lookup with nsipermissionmanager while also ensuring the scheme is https).
... examples setting up a webchannel between
chrome code and a webpage
chrome code let channel = new webchannel(webchannelid, services.io.newuri("https://mozilla.org", null, null)); // receive messages channel.listen(function (webchannelid, message, sendercontext) { // send messages channel.send({ data: { greeting: true } }, sendercontext); }); webpage code receive messages from an existing webchannel in content code window.addeven...
...tlistener("webchannelmessagetocontent", function(e) { // receive messages console.log(e.detail); }, true); send messages to an existing webchannel in
chrome code window.dispatchevent(new window.customevent("webchannelmessageto
chrome", { detail: { id: webchannelid, message: { something: true } } })); ...
Localizing with Mozilla Translator
but in the cvs and mozilla-central repositories the locale part looks like this: toolkit |-- locales | |-- en-us | | |--
chrome | | | |-- alerts | | | | `-- notificationnames.properties | | | |-- autoconfig | | | | `-- autoconfig.properties | | | |-- cookie | | | | |-- cookieacceptdialog.dtd | | | | `-- cookieacceptdialog.properties | | | |-- global | | | | |-- about.dtd | | | | |-- apppicker.dtd .
... browser |-- locales | |-- en-us | | |-- readme.txt | | |--
chrome | | | |-- branding | | | | |-- brand.dtd | | | | `-- brand.properties | | | |-- browser | | | | |-- aboutdialog.dtd as you see, there is ''link'' point, usually at
chrome (in cvs & mozilla-central), sometimes in a deeper point.
... for instance, '''toolkit/locales/
chrome''' in mozilla-central matches '''locale/en-us''' and '''browser/locales/
chrome''' matches '''locale/browser'''.
Localization technical reviews
string lengths in pipnss.properties there are some character limits in the security/manager/
chrome/pipnss/pipnss.properties file that you should be aware of.
... check for bad migration of access keys in the past, it was common to find broken access keys for safari and camino in browser/
chrome/browser/migration/migration.dtd.
...there should not be any utf-7 encodings in the file toolkit/
chrome/global/intl.properties.
about:memory
(00.75%) ++ dom │ │ │ │ └──0.05 mb (00.02%) ── property-tables │ │ │ └───9.61 mb (05.01%) ++ (18 tiny) │ │ └───4.39 mb (02.29%) -- js-zone(0x7f69425b5800) │ ├──15.75 mb (08.21%) ++ top(http://techcrunch.com/, id=20) │ ├──12.85 mb (06.69%) ++ top(http://arstechnica.com/, id=14) │ ├───6.40 mb (03.33%) ++ top(
chrome://browser/content/browser.xul, id=3) │ └───3.59 mb (01.87%) ++ (4 tiny) ├───45.74 mb (23.84%) ++ js-non-window ├───33.73 mb (17.58%) ── heap-unclassified ├───22.51 mb (11.73%) ++ heap-overhead ├────6.62 mb (03.45%) ++ images ├────5.82 mb (03.03%) ++ workers/workers(
chrome) ├────5.36 mb (02.80%) ++ (16 tiny) ├────4.07 ...
...for example, the "top(http://edition.cnn.com/, id=8)" sub-tree represents the tab open to cnn.com, and "top(
chrome://browser/content/browser.xul, id=3)" represents the main browser ui window.
...a8b2-2b9879e08c5d%7d.xpi!/bootstrap.js (from: resource://gre/modules/addons/xpiprovider.jsm:4307)) │ ├──11,583,312 b (01.20%) ++ jid1-xufzosoflzsoxg@jetpack/js-non-window/zones/zone(0x100496800) │ ├───5,574,608 b (00.58%) -- {59c81df5-4b7a-477b-912d-4e0fdf64e5f2} │ │ ├──5,529,280 b (00.57%) -- window-objects │ │ │ ├──4,175,584 b (00.43%) ++ top(
chrome://chatzilla/content/chatzilla.xul, id=4293) │ │ │ └──1,353,696 b (00.14%) ++ top(
chrome://chatzilla/content/output-window.html, id=4298) │ │ └─────45,328 b (00.00%) ++ js-non-window/zones/zone(0x100496800)/compartment([system principal], file:///users/njn/library/application%20support/firefox/profiles/puna0zr8.new/extensions/%7b59c81df5-4b7a-477b-912d-4e0fdf64...
Preference reference
javascript.options.showinconsolethe preference javascript.options.showinconsole controls whether errors or warnings in
chrome code are shown in the error console.javascript.options.stricttechnical review completed.mail.tabs.drawintitlebarstarting in thunderbird 17.0, the tabs are drawn in the title bar.
... the old behavior can be restored by setting the preference mail.tabs.drawintitlebar to false.nglayout.debug.disable xul fastloadthe preference nglayout.debug.disable_xul_fastload controls whether or not xul fastload is used.nglayout.debug.disable_xul_cacheto improve performance, mozilla caches
chrome xul documents the first time they load for faster loading later.
... the effect is that the source xml file is not read and re-parsed each time the
chrome in question is displayed.
Making cross-thread calls using runnables
in the mozilla platform, most activities such as layout, dom operations, content javascript, and
chrome javascript run on the main thread.
...
chrome javascript should instead use workers.
...} see also
chromeworker using workers in javascript code modules the thread manager ...
Components.utils.Sandbox
this is primarily visible for
chrome code accessing content.
...however, sandboxes are often used when
chrome wants to run script as another origin, possibly to interact with the page.
... see safely accessing content dom from
chrome for more details.
amIInstallTrigger
1.0 66 introduced gecko 2.0 inherits from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview boolean enabled(); boolean install(in nsivariant aargs, [optional] in amiinstallcallback acallback); boolean install
chrome(in pruint32 atype, in astring aurl, in astring askin); deprecated since gecko 2.0 boolean startsoftwareupdate(in astring aurl, [optional] in print32 aflags); deprecated since gecko 2.0 boolean updateenabled(); deprecated since gecko 2.0 constants retained for backwards compatibility.
... install
chrome starts installing a new add-on.
... boolean install
chrome( in pruint32 atype, in astring aurl, in astring askin ); parameters atype unused, retained for backwards compatibility.
imgICache
method overview void clearcache(in boolean
chrome); nsiproperties findentryproperties(in nsiuri uri); void removeentry(in nsiuri uri); methods clearcache() evict images from the cache.
... void clearcache( in boolean
chrome ); parameters
chrome if true, evict only
chrome images.
... if false, evict everything except
chrome images.
mozIJSSubScriptLoader
jsval loadsubscript( in string url, in object targetobj optional, in string charset optional, ); example let context = {}; services.scriptloader.loadsubscript("
chrome://my-package/content/foo-script.js", context, "utf-8" /* the script's encoding */); parameters url the url pointing to the script to load.
... it must be a local
chrome:, resource: or file: url (see bug 307686 and bug 418356).
...it must be a local
chrome:, resource: or file: url.
nsIFrameScriptLoader
if this function is called on a
chromemessagebroadcaster (for example, a global frame message manager or a window message manager) then: loadframescript() will load the frame script independently into each applicable frame: every open frame in the given window for the window message manager, or every frame in every window for the global message manager if aallowdelayedload is true, then the script will also be loaded into any appl...
... if this function is called on a
chromemessagesender: it will load the frame script only into this
chromemessagesender's frame aallowdelayedload should always be true.
... it's possible that the frame for this
chromemessagesender is not yet available at the time of the loadframescript() call, and if you pass false in this situation, your process script won't be loaded.
nsIScriptError
if you want to log an error at
chrome level you should set a category from the first section (leaving it empty might log it as content error).
... as addon author i would recommend using "
chrome javascript" for logging exceptions caused by addon code.
... categories the web console does not display "xpconnect javascript" "component javascript" "
chrome javascript" "
chrome registration" "xbl" "xbl prototype handler" "xbl content sink" "xbl javascript" "frameconstructor" categories the web console displays "hudconsole" "css parser" "css loader" "content javascript" "dom events" "dom:html" "dom window" "svg" "imagemap" "html" "canvas" "dom3 load" "dom" "malformed-xml" "dom worker javascript" "mixed content blocker" "csp" "invalid hsts headers" "insecure password field" see also using the web console error console nsiconsolemessage nsiscripterror2 ...
nsISessionStore
this kind of domwindow object can be obtained from other nsidomwindow objects (like the sidebar window object) by applying the 'mainwindow' statement from working_with_windows_in_
chrome_code.
... this outermost or root window can also be obtained from the list returned by nsiwindowmediator; see example #3 in working_with_windows_in_
chrome_code.
...if you just hold a reference to some content document in the overlay's
chrome window, here is how you find its corresponding tab: function tabfromdoc(doc) { var no = gbrowser.getbrowserindexfordocument(doc); return gbrowser.tabcontainer.childnodes[no]; } // example use: cc['@mozilla.org/browser/sessionstore;1'] .getservice(ci.nsisessionstore) .settabvalue(tabfromdoc(mycontentdoc), 'mykey', 'myvalue'); see also the session store api article.
nsPIPromptService
method overview void dodialog(in nsidomwindow aparent, in nsidialogparamblock aparamblock, in string a
chromeurl); methods dodialog() opens a dialog.
... void dodialog( in nsidomwindow aparent, in nsidialogparamblock aparamblock, in string a
chromeurl ); parameters aparent the parent window of the dialog.
...a
chromeurl the url of the dialog implementation.
XPCOM Interface Reference
treamnsiblocklistpromptnsiblocklistservicensiboxobjectnsibrowserboxobjectnsibrowserhistorynsibrowsersearchservicensicrlinfonsicrlmanagernsicachensicachedeviceinfonsicacheentrydescriptornsicacheentryinfonsicachelistenernsicachemetadatavisitornsicacheservicensicachesessionnsicachevisitornsicachingchannelnsicancelablensicategorymanagernsichannelnsichanneleventsinknsichannelpolicynsicharsetresolvernsi
chromeframemessagemanagernsi
chromeregistrynsiclassinfonsiclipboardnsiclipboardcommandsnsiclipboarddragdrophooklistnsiclipboarddragdrophooksnsiclipboardhelpernsiclipboardownernsicollectionnsicommandcontrollernsicommandlinensicommandlinehandlernsicommandlinerunnernsicomponentmanagernsicomponentregistrarnsicompositionstringsynthesizernsiconsolelistenernsiconsolemessagensiconsoleservicensicontainerboxobject...
...nsiconverteroutputstreamnsicookiensicookie2nsicookieacceptdialognsicookieconsentnsicookiemanagernsicookiemanager2nsicookiepermissionnsicookiepromptservicensicookieservicensicookiestoragensicrashreporternsicryptohmacnsicryptohashnsicurrentcharsetlistenernsicyclecollectorlistenernsidbchangelistenernsidbfolderinfonsidnslistenernsidnsrecordnsidnsrequestnsidnsservicensidomcanvasrenderingcontext2dnsidom
chromewindownsidomclientrectnsidomdesktopnotificationnsidomdesktopnotificationcenternsidomelementnsidomeventnsidomeventgroupnsidomeventlistenernsidomeventtargetnsidomfilensidomfileerrornsidomfileexceptionnsidomfilelistnsidomfilereadernsidomfontfacensidomfontfacelistnsidomgeogeolocationnsidomgeopositionnsidomgeopositionaddressnsidomgeopositioncallbacknsidomgeopositioncoordsnsidomgeopositionerrornsidomgeo...
...ifixupnsiurifixupinfonsiurlnsiurlformatternsiurlparsernsiutf8converterservicensiutf8stringenumeratornsiuuidgeneratornsiupdatensiupdatechecklistenernsiupdatecheckernsiupdateitemnsiupdatemanagernsiupdatepatchnsiupdatepromptnsiupdatetimermanagernsiuploadchannelnsiuploadchannel2nsiurllistmanagercallbacknsiusercertpickernsiuserinfonsivariantnsiversioncomparatornsiweakreferencensiwebbrowsernsiwebbrowser
chromensiwebbrowser
chrome2nsiwebbrowser
chrome3nsiwebbrowser
chromefocusnsiwebbrowserfindnsiwebbrowserfindinframesnsiwebbrowserpersistnsiwebcontenthandlerregistrarnsiwebnavigationnsiwebnavigationinfonsiwebpagedescriptornsiwebprogressnsiwebprogresslistenernsiwebprogresslistener2nsiwebsocketchannelnsiwebsocketlistenernsiwebappssupportnsiwifiaccesspointnsiwifilistenernsiwifimonitornsiwinaccessnodensiwinapphe...
XPCOM Interface Reference by grouping
onsolelistener nsiconsolemessage nsiconsoleservice document nsidocshell dom device nsidomgeogeolocation nsidomgeoposition nsidomgeopositionaddress nsidomgeopositioncallback nsidomgeopositioncoords nsidomgeopositionerror nsidomgeopositionerrorcallback nsidomgeopositionoptions nsidomglobalpropertyinitializer element nsidom
chromewindow nsidomclientrect nsidomelement nsidomhtmlaudioelement nsidomhtmlformelement nsidomhtmlmediaelement nsidomhtmlsourceelement nsidomhtmltimeranges nsidomjswindow nsidomnode nsidomnshtmldocument nsidomstorageitem nsidomstoragemanager nsidomwindow nsidomwindow2 nsidomwindowinternal nsidomwindowutils nsidynamiccontainer nsied...
...sageport nsiworkerscope tree nsitreeboxobject nsitreecolumn nsitreecolumns nsitreecontentview nsitreeselection nsitreeview xform nsixformsmodelelement nsixformsnsinstanceelement nsixformsnsmodelelement xmlhttprequest nsixmlhttprequesteventtarget favicon nsifavicondatacallback nsifaviconservice frame nsi
chromeframemessagemanager nsiframeloader nsiframeloaderowner nsiframemessagelistener nsiframemessagemanager interface nsijsxmlhttprequest jetpack nsijetpack nsijetpackservice offlinestorage nsiapplicationcache nsiapplicationcachechannel nsiapplicationcachecontainer nsiapplicationcachenamespace nsiapplicationcacheservice places ...
... nsiwebbrowser nsiwebbrowserpersist cache nsicache nsicachedeviceinfo nsicacheentrydescriptor nsicacheentryinfo nsicachelistener nsicachemetadatavisitor nsicacheservice nsicachesession nsicachevisitor nsicachingchannel nsiselectionimageservice
chrome nsisearchengine nsisearchsubmission nsiwebbrowser
chrome nsiwindowcreator nsiwindowmediator nsiwindowwatcher clipboard nsiclipboard nsiclipboardcommands nsiclipboarddragdrophooklist nsiclipboarddragdrophooks nsiclipboardhelper nsiclipboardowner core ...
nsIMsgCloudFileProvider
iconclass acstring readonly: a
chrome url for an icon to be used for representing the service.
... settingsurl acstring readonly: a
chrome url for an xhtml page displayed in the account setup dialog window, used for displaying and setting provider-specific settings.
... managementurl acstring readonly: a
chrome url for an xhtml page displayed within the filelink preferences dialog, used for displaying and setting provider-specific settings once the account has already been set up.
Filelink Providers
if the nsimsgcloudfileprovider is being created as part of an add-on, the add-on must register the component in
chrome.manifest.
...see cloudfile/cloudfilecomponents.manifest for an example, as well as this document on
chrome.manifest files.
... a provider implementation can choose what information it gets from the user from the setup dialog by pointing the settingsurl attribute of their nsimsgcloudfileprovider implementation to a
chrome url for an xhtml page that contains a form with the extra information.
Main Windows
the base
chrome directory of thunderbird can sometimes appear confusing when you're just beginning to look at it.
...at compile time these files are added to the toolkit directory so that their
chrome addresses are in global, the same as firefox’s.
...i assume that customizetoolbars was originally not in the toolkit, but in firefox's
chrome, or that there were some special changes wanted for thunderbird's implementation at some point.
Add Option to Context Menu
assuming this on
chrome.manifest: overlay
chrome://messenger/content/mailwindowoverlay.xul
chrome://myext/content/thunderbird-overlay.xul add the next in thunderbird-overlay.xul.
...this can be reached by adding these lines to the
chrome.manifest file: overlay
chrome://messenger/content/mailwindowoverlay.xul
chrome://myaddon/content/tboverlay-tb2.xul appversion<3.0 overlay
chrome://messenger/content/mailwindowoverlay.xul
chrome://myaddon/content/tboverlay-tb3.xul appversion=>3.0 than we need two overlay xul files with content from examples above.
...for more details see
chrome registration.
Theme Packaging
theme file layout thunderbird themes are packaged in an xpi file with the following structure: theme.xpi: install.rdf preview.png icon.png
chrome/ browser/files communicator/files global/files mozapps/files ...
... 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.
...lable 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 ...
ctypes.open
see: http://stackoverflow.com/questions/19382201/how-to-load-dll-from-sdk-addon-data-folder it is important to note that custom native files cannot be loaded through
chrome:// or resource:// uris.
... if the native file is located at
chrome://youraddon/content/mysubfolder/mycfunctionsforunix.so then it is converted to a file uri like this: components.utils.import("resource://gre/modules/services.jsm"); var cr = components.classes['@mozilla.org/
chrome/
chrome-registry;1'].getservice(components.interfaces.nsi
chromeregistry); var
chromeuri_mylib = services.io.newuri('
chrome://youraddon/content/mysubfolder/mycfunctionsforunix.so', 'utf-8', null); var localfile_mylib = cr.convert
chromeurl(
chromeuri_mylib); var ...
...xse.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 procedure of the bootstrap add-on obtain the file and/or jar path from installpath from the adata parameter.
DOM Inspector FAQ - Firefox Developer Tools
inspect
chrome document inspect application
chrome, including open xul windows, e.g., the browser window.
...these can include
chrome documents, but it's not suggested that you inspect xul documents by directly inspecting them via url, since some behavior may rely on the document being contained in another xul document, or the converse, where it won't behave correctly because it doesn't expect to be loaded as a framed document.
... instead, get the xul document to load as you normally would (e.g., by invoking commands or opening windows via standard application use), then locate it in the inspect
chrome document menu.
Debugger - Firefox Developer Tools
(allowing the handler to substitute its own value for the new global object doesn’t seem useful.) this handler method is only available to debuggers running in privileged code (“
chrome”, in firefox).
... this method is only available to debuggers running in privileged code (“
chrome”, in firefox).
...(naturally, once the function has returned, the array’s debugger.object instances strongly reference the globals they refer to.) this handler method is only available to debuggers running in privileged code (“
chrome”, in firefox).
about:debugging (before Firefox 68) - Firefox Developer Tools
the "enable add-on debugging" button works by turning on the devtools.
chrome.enabled and devtools.debugger.remote-enabled preferences.
... you can also modify the preferences directly in about:config, or by checking "enable browser
chrome and add-on debugging toolboxes" and "enable remote debugging" in the developer tools settings.
... workers the workers page shows your workers, categorised as follows: all registered service workers all registered shared workers other workers, including
chrome workers and dedicated workers you can connect the developer tools to each worker, and send push notifications to service workers.
characteristic - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcharacteristic experimental
chrome full support 57notes full support 57notes notes macos only.
...to change preferences in
chrome, visit
chrome://flags.
... full support 57notes notes windows 10.safari no support nowebview android no support no
chrome android full support 57firefox android no support noopera android full support 44safari ios no support nosamsung internet android full support 7.0legend ...
readValue() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadvalue experimental
chrome full support 57notes full support 57notes notes macos only.
...to change preferences in
chrome, visit
chrome://flags.
... full support 57notes notes windows 10.safari no support nowebview android no support no
chrome android full support 57firefox android no support noopera android full support 44safari ios no support nosamsung internet android full support 7.0legend ...
uuid - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetuuid experimental
chrome full support 57notes full support 57notes notes macos only.
...to change preferences in
chrome, visit
chrome://flags.
... full support 57notes notes windows 10.safari no support nowebview android no support no
chrome android full support 57firefox android no support noopera android full support 44safari ios no support nosamsung internet android full support 7.0legend ...
value - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetvalue experimental
chrome full support 57notes full support 57notes notes macos only.
...to change preferences in
chrome, visit
chrome://flags.
... full support 57notes notes windows 10.safari no support nowebview android no support no
chrome android full support 57firefox android no support noopera android full support 44safari ios no support nosamsung internet android full support 7.0legend ...
writeValue() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetwritevalue experimental
chrome full support 57notes full support 57notes notes macos only.
...to change preferences in
chrome, visit
chrome://flags.
... full support 57notes notes windows 10.safari no support nowebview android no support no
chrome android full support 57firefox android no support noopera android full support 44safari ios no support nosamsung internet android full support 7.0legend ...
console.log() - Web APIs
please be warned that if you log objects in the latest versions of
chrome and firefox what you get logged on the console is a reference to the object, which is not necessarily the 'value' of the object at the moment in time you call console.log(), but it is the value of the object at the moment you open the console.
... another useful difference in
chrome exists when sending dom elements to the console.
... there's more information in the
chrome console api reference about this and other functions.
Element.scroll() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetscroll
chrome full support 45edge full support 79firefox full support 36ie no support ...
... noopera full support 32safari full support 10webview android full support 45
chrome android full support 45firefox android full support 36opera android full support 32safari ios no support nosamsung internet android full support 5.0scrolltooptions parameter
chrome full support 45edge full support 79firefox full support ...
... yesie no support noopera full support 32safari no support nowebview android full support 45
chrome android full support 45firefox android full support yesopera android full support 32safari ios no support nosamsung internet android full support 5.0legend full support full support no suppo...
Element.scrollTo() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollto
chrome full support 45edge full support 79firefox full support 36ie no support ...
... noopera full support 32safari full support 10webview android full support 45
chrome android full support 45firefox android full support 36opera android full support 32safari ios no support nosamsung internet android full support 5.0scrolltooptions parameter
chrome full support 45edge full support 79firefox full support ...
... yesie no support noopera full support 32safari no support nowebview android full support 45
chrome android full support 45firefox android full support yesopera android full support 32safari ios no support nosamsung internet android full support 5.0legend full support full support no sup...
EventTarget.addEventListener() - Web APIs
available only in code running in xbl or in the
chrome of the firefox browser.
...if true, the listener receives synthetic events dispatched by web content (the default is false for browser
chrome and true for regular web pages).
... to prevent this problem, some browsers (specifically,
chrome and firefox) have changed the default value of the passive option to true for the touchstart and touchmove events on the document-level nodes window, document, and document.body.
Using files from web applications - Web APIs
if you want to use the dom file api from extensions or other browser
chrome code, you can; however, note there are some additional features to be aware of.
... see using the dom file api in
chrome code for details.
... consider this html: <input type="file" id="fileelem" multiple accept="image/*" class="visually-hidden"> <label for="fileelem">select some files</label> and this css: .visually-hidden { position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); } /* separate rule for compatibility, :focus-within is required on modern firefox and
chrome */ input.visually-hidden:focus + label { outline: thin dotted; } input.visually-hidden:focus-within + label { outline: thin dotted; } there is no need to add javascript code to call fileelem.click().
FileSystemDirectoryReader.readEntries() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadentries deprecatednon-standard
chrome full support 8edge ?
... safari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support yesopera android no support nosafari ios full support 11.3samsung internet android ?
... on
chrome 77, readentries() will only return the first 100 filesystementry instances.
HTMLInputElement.webkitEntries - Web APIs
this property is called webkitentries in the specification due to its origins as a google
chrome-specific api.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetwebkitentries non-standard
chrome full support 13edge full support ≤18firefox full support 50ie no support ...
... noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50opera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no supportnon-standard.
IDBCursor.key - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetkey
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yesbinary keys
chrome ...
... opera full support 45safari full support 10.1webview android full support 58
chrome android full support 58firefox android ?
IDBDatabase.transaction() - Web APIs
details optional dictionary of other settings, supported only by
chrome: return value an idbtransaction object.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettransaction
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBVersionChangeRequest - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbversionchangerequest deprecatednon-standard
chrome no support 12 — 23prefixed no support 12 — 23prefixed prefixed implemented with the vendor prefix: webkitedge ?
... firefox no support noie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support nosetversion deprecatednon-standard
chrome no support ...
... noedge no support nofirefox no support noie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support nolegend ...
Browser storage limits and eviction criteria - Web APIs
opera and
chrome should behave the same in all cases.
... in
chrome/opera, the quota management api handles quota management for appcache, indexeddb, websql, and file system api.
... note: in
chrome the soft and hard storage quota limits has changed since m66.
NodeList.prototype.forEach() - Web APIs
= function (callback, thisarg) { thisarg = thisarg || window; for (var i = 0; i < this.length; i++) { callback.call(thisarg, this[i], i, this); } }; } or if (window.nodelist && !nodelist.prototype.foreach) { nodelist.prototype.foreach = array.prototype.foreach; } the above behavior is how many browsers actually implement nodelist.prototype.foreach() (
chrome, for example).
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetforeach
chrome full support 51edge full support 16firefox full support 50ie no support ...
... noopera full support 38safari full support 10webview android full support 51
chrome android full support 51firefox android full support 50opera android full support 41safari ios full support 10samsung internet android full support 5.0legend full support full support no support no support ...
PaymentResponse.complete() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcomplete()
chrome full support 61edge full support 15firefox full support 56notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support yeswebview android no support no
chrome android full support 56 full support 56 no support 53 — 56disabled disabled from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in
chrome, visit
chrome://flags.firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentResponse.details - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdetails
chrome full support 61edge full support 15firefox full support 56notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support yeswebview android no support no
chrome android full support 56 full support 56 no support 53 — 56disabled disabled from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in
chrome, visit
chrome://flags.firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentResponse.payerEmail - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpayeremail
chrome full support 61edge full support 15firefox full support 56notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support yeswebview android no support no
chrome android full support 56 full support 56 no support 53 — 56disabled disabled from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in
chrome, visit
chrome://flags.firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentResponse.shippingAddress - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetshippingaddress
chrome full support 61edge full support 15firefox full support 56notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support yeswebview android no support no
chrome android full support 56 full support 56 no support 53 — 56disabled disabled from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in
chrome, visit
chrome://flags.firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentResponse.shippingOption - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetshippingoption
chrome full support 61edge full support 15firefox full support 56notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support yeswebview android no support no
chrome android full support 56 full support 56 no support 53 — 56disabled disabled from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in
chrome, visit
chrome://flags.firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
Using the Permissions API - Web APIs
at the moment, implementation of the api is at an early stage, so support in browsers is pretty spotty: it can only be found in
chrome 44 and later and firefox 43 and later.
... the only two apis currently recognized by the permissions api in
chrome are geolocation and notification, with firefox also recognizing push and webmidi.
...
chrome: hamburger menu > settings > show advanced settings.
SVGTransformList - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgtransformlist
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslength non-standard
chrome full support yesedge full support ≤79firefox full support ...
... webview android full support yes
chrome android full support yesfirefox android full support 9opera android full support yessafari ios ?
Selection.extend() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetextend experimental
chrome full support yesedge full support 12firefox full support yesie no support ...
... noopera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yesoffset parameter is optional experimental
chrome full support yesedge full support ≤79firefox ...
... full support 55ie no support noopera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support 55opera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full supp...
Background audio processing using AudioWorklet - Web APIs
note: at this time, unfortunately,
chrome does not implement this algorithm in a manner that matches the current standard.
...thus for compatibility reasons you must always return true from process(), at least on
chrome.
... however, once this
chrome issue is fixed, you will want to change this behavior if possible as it may have a slight negative impact on performance.
Functions and classes available to Web Workers - Web APIs
comparison of the properties and methods of the different type of workers function dedicated workers shared workers service workers
chrome workers outside workers atob() yes, on workerglobalscope yes, on workerglobalscope yes, on workerglobalscope yes, on workerglobalscope yes, on window btoa() yes, on workerglobalscope yes, on workerglobalscope yes, on workerglobalscope yes, on workerglobalscope yes, on window clearinterval() yes, on workerglobalscope yes, on worke...
... unknown no postmessage() yes, on dedicatedworkerglobalscope no no unknown no apis available in workers function functionality support in gecko (firefox) support in ie support in blink (
chrome and opera) support in webkit (safari) broadcast channel api allows simple communication between browsing contexts (that is windows, tabs, frames, or iframes) with the same origin (usually pages from the same site).
... 3.5 (1.9.1) 10.0 enabled since
chrome 69 no support workerglobalscope the global scope of workers.
Using Web Workers - Web APIs
passing data by transferring ownership (transferable objects) google
chrome 17+ and firefox 18+ contain an additional way to pass certain types of objects (transferable objects, that is objects implementing the transferable interface) to or from a worker with high performance.
...
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.
... see
chromeworker for more details.
Window.content - Web APIs
note: since firefox 57 (initially nightly-only), both the content and _content variants are only available to
chrome (privileged) code, and not available to the web anymore.
... syntax var windowobject = window.content; example executing the following code in a
chrome xul window with a <browser type="content-primary"/> element in it draws a red border around the first div on the page currently displayed in the browser: content.document.getelementsbytagname("div")[0].style.border = "solid red 1px"; specification none.
... see also working with windows in
chrome code when accessing content documents from privileged code, be aware of xpcnativewrappers.
Privileged features - Web APIs
this page lists the windowfeatures parameter of window.open function that requires
chrome-privilege in firefox.
... the following features require the
chrome-privilege.
...
chrome if on, the page is loaded as window's only content, without any of the browser's interface elements.
Window.prompt() - Web APIs
the above prompt appears as follows (in
chrome on os x): notes a prompt dialog contains a single-line textbox, a cancel button, and an ok button, and returns the (possibly empty) text the user entered into that textbox.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetprompt
chrome full support 1notes full support 1notes notes starting with
chrome 46, this method is blocked inside an <iframe> unless its sandbox attribute has the value all...
... unless its sandbox attribute has the value allow-modals.safari full support 1webview android full support 1notes full support 1notes notes starting with webview 46, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.
chrome android full support 18notes full support 18notes notes starting with
chrome 46, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.firefox android full support 4opera android full support ...
Window.scroll() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetscroll
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 4opera full support 3safari full support 1webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0scrolltooptions parameter
chrome full support 45edge full support 79firefox full support ...
... yesie no support noopera full support 32safari no support nowebview android full support 45
chrome android full support 45firefox android full support yesopera android full support 32safari ios no support nosamsung internet android full support 5.0legend full support full support no support...
Window.scrollBy() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollby
chrome full support 1edge full support 79 full support 79 no support 12 — 79notes notes only...
... support 1ie partial support 11notes partial support 11notes notes only scrollby(x-coord, y-coord) is supported.opera full support 3safari full support 1webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0scrolltooptions paramete...
...r
chrome full support 45edge full support 79firefox full support yesie no support noopera full support 32safari no support nowebview android full support 45
chrome android full support 45firefox android full support yesopera android full support 32safari ios no support nosamsung internet android ...
Window.setCursor() - Web APIs
this function is a part of
chromewindow interface.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsetcursor non-standard
chrome no support noedge no support nofirefox no support noie ?
... webview android no support no
chrome android no support nofirefox android no support noopera android ?
Window.showModalDialog() - Web APIs
this method was removed in
chrome 43 and firefox 56.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetshowmodaldialog deprecatednon-standard
chrome no support ?
... full support 4opera no support nosafari full support 5.1notes full support 5.1notes notes see webkit bug 151885 for possible future removal from safari.webview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support nolegend ...
Window.updateCommands() - Web APIs
summary updates the state of commands of the current
chrome window (ui).
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetupdatecommands non-standard
chrome no support noedge no support nofirefox full support yesie ?
... webview android no support no
chrome android no support nofirefox android full support yesopera android ?
Window - Web APIs
window.controllers read only returns the xul controller objects for the current
chrome window.
...since firefox 57 (initially nightly-only), both versions are only available from
chrome (privileged) code, and not available to the web anymore.
... window.updatecommands() updates the state of commands of the current
chrome window (ui).
WindowOrWorkerGlobalScope.setTimeout() - Web APIs
take this example: function cb() { f(); settimeout(cb, 0); } settimeout(cb, 0); setinterval(f, 0); in
chrome and firefox, the 5th successive callback call is clamped; safari clamps on the 6th call; in edge its the 3rd one.
...
chrome implements this behavior since version 11 (crbug.com/66078).
... maximum delay value browsers including internet explorer,
chrome, safari, and firefox store the delay as a 32-bit signed integer internally.
background-position-x - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbackground-position-x
chrome full support 1edge full support 12firefox full support 49ie full support ...
... 6opera full support 15safari full support 1webview android full support ≤37
chrome android full support 18firefox android full support 49opera android full support 18safari ios full support 1samsung internet android full support 1.0two-value syntax (support for offsets from any edge)
chrome no support noedge no support 12 — 79firefox ful...
...l support 49ie full support 9opera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 49opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support ...
background-position-y - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbackground-position-y
chrome full support 1edge full support 12firefox full support 49ie full support ...
... 6opera full support 15safari full support 1webview android full support ≤37
chrome android full support 18firefox android full support 49opera android full support 14safari ios full support 1samsung internet android full support 1.0two-value syntax (support for offsets from any edge)
chrome no support noedge no support 12 — 79firefox ful...
...l support 49ie full support 9opera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 49opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support ...
clear - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetclear
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 4opera full support 3.5safari full support 1webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0flow-relative values inline-start and inline-end
chrome no support noedge no support nofirefox full support ...
... 55ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 55opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no ...
Adapting to the new two-value syntax of display - CSS: Cascading Style Sheets
therefore display: block flex will only get you flex layout in firefox, and will be ignored as invalid in
chrome.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmulti-keyword values experimental
chrome no support noedge no support nofirefox full support 70ie no support noopera no support nosafari ...
... no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportexperimental.
letter-spacing - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetletter-spacing
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 4opera full support 3.5safari full support 1webview android full support ≤37
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0svg support
chrome full support 1edge full support 12firefox full support ...
... 72ie full support 9opera full support 7safari full support 5.1webview android full support ≤37
chrome android full support 18firefox android no support noopera android full support 10.1safari ios full support 5.1samsung internet android full support 1.0legend full support full support no s...
mix-blend-mode - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmix-blend-mode
chrome full support 41edge full support 79firefox full support 32ie no support ...
... noopera full support 28safari full support 8webview android full support 41
chrome android full support 41firefox android full support 32opera android full support 28safari ios full support 8samsung internet android full support 4.0on svg elements
chrome full support 41edge full support 79firefox full support ...
... 32ie no support noopera full support 28safari no support nowebview android no support no
chrome android no support nofirefox android full support 32opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support ...
object-position - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetobject-position
chrome full support 31edge full support 16firefox full support 36ie no support ...
... noopera full support 19 full support 19 full support 11.6prefixed prefixed implemented with the vendor prefix: -o-safari full support 10webview android full support 4.4.3
chrome android full support 31firefox android full support 36opera android full support 19 full support 19 full support 12prefixed prefixed implemented with the vendor prefix: -o-sa...
...fari ios full support 10samsung internet android full support 2.0support for three-value syntax of position
chrome no support 31 — 68edge no support 16 — 79firefox no support 36 — 70ie no support noopera no support 19 — 55 no support 19 — 55 full support 11.6prefixed prefixed implemented with the vendor prefix: -o-safari full support 10webview android no support 4.4.3 — 68
chrome android no support...
outline-color - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetoutline-color
chrome full support 1edge full support 12firefox full support 1.5 full support ...
... 1.5 no support 1 — 3.6prefixed prefixed implemented with the vendor prefix: -moz-ie full support 8opera full support 7safari full support 1.2webview android full support 37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0invert
chrome no suppo...
...rt noedge no support 12 — 79firefox no support 1 — 3ie full support 8opera no support 7 — 15safari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support nolegend full ...
pointer-events - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpointer-events
chrome full support 1edge full support 12firefox full support 1.5ie full support ...
... 11opera full support 9safari full support 4webview android full support 2
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 3.2samsung internet android full support 1.0applies to html elements experimental
chrome full support 2edge full support 12firefox full support...
... 3.6ie full support 11opera full support 15safari full support 4webview android full support 37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 3.2samsung internet android full support 1.0legend full support full supportexperimental.
quotes - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetquotes
chrome full support 11edge full support 12firefox full support 1.5ie full support ...
... 8opera full support 4safari full support 9webview android full support 37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 9samsung internet android full support 1.0auto keyword
chrome no support nonotes no support nonotes notes this value is not supported, but the default browser behavi...
...his value is not supported, but the default browser behavior is to choose appropriate quotes for the user's language settingwebview android no support nonotes no support nonotes notes this value is not supported, but the default browser behavior is to choose appropriate quotes for the user's language setting
chrome android no support nonotes no support nonotes notes this value is not supported, but the default browser behavior is to choose appropriate quotes for the user's language settingfirefox android no support noopera android no support ...
ruby-position - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetruby-position experimental
chrome no support noedge no support 12 — 79firefox full support 38ie no support ...
... nonotes no support nonotes notes safari implements a non-standard, prefixed, version of ruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start).webview android no support no
chrome android no support nofirefox android full support 38opera android no support nosafari ios no support nonotes no support nonotes notes safari implements a non-standard, prefi...
...xed, version of ruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start).samsung internet android no support nointer-character experimental
chrome no support noedge no support nofirefox no support noie no support noopera no support nosafari no support nowebview android no support no
chrome android no support ...
<shape> - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet<shape> deprecated
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 5.5opera full support 9.5safari full support 1.3webview android full support 37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0rect() deprecated
chrome full support 1edge full support 12firefox full support ...
...for internet explorer 8 and later versions, only the standard comma-separated syntax is supported.opera full support 9.5safari full support 1.3webview android full support 37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0legend ...
Adding captions and subtitles to HTML5 video - Developer guides
the text track cues you can write: ::cue { color:#ccc; } if the webvtt file uses voice spans, which allow cues to be defined as having a particular "voice": 0 00:00:00.000 --> 00:00:12.000 <v test>[test]</v> then this specific 'voice' will be stylable like so: ::cue(v[voice='test']) { color:#fff; background:#0095dd; } note: some of the styling of cues with ::cue currently works on
chrome, opera, and safari, but not yet on firefox.
...
chrome and opera these browsers have similar implementations again: subtitles are enabled by default and the default control set contains a 'cc' button that turns subtitles on and off.
...
chrome and opera ignore the default attribute on the <track> element and will instead try to match the browser's language to the subtitle's language.
Writing Web Audio API code that works in every browser - Developer guides
unfortunately,
chrome, safari and opera still use the webkitaudiocontext prefixed name.
... furthermore, as a result of the spec being still in flux, some browsers use deprecated properties and method names that are not present in standards-compliant browsers: safari uses the old method names, firefox uses the new ones, and
chrome and opera use both.
...once you include it in your page, you can write in "modern web audio api" style, and do things such as: var audiocontext = new audiocontext(); everywhere, including
chrome/ium, opera, safari, and ---of course!--- firefox.
<acronym> - HTML: Hypertext Markup Language
opera, firefox,
chrome, and some others add a dotted underline to the content of the element.
... desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetacronym deprecatednon-standard
chrome full support yesedge full support 12firefox full support yesie full support...
... yesopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full supportnon-standard.
<input type="range"> - HTML: Hypertext Markup Language
firefox doesn't support hash marks and labels at all, for example, while
chrome supports hash marks but doesn't support labels.
... version 66 (66.0.3359.181) of
chrome supports labels but the <datalist> tag has to be styled with css as its display property is set to none by default, hiding the labels.
...(see firefox bug 981916,
chrome bug 341071).
<input type="search"> - HTML: Hypertext Markup Language
webkit and blink only (safari,
chrome, opera, etc.).
... 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.
...the following screenshot comes from
chrome: in addition, modern browsers also tend to automatically store search terms previously entered across domains, which then come up as autocomplete options when subsequent searches are performed in search inputs on that domain.
User-Agent - HTTP
examples mozilla/5.0 (windows nt 6.1; win64; x64; rv:47.0) gecko/20100101 firefox/47.0 mozilla/5.0 (macintosh; intel mac os x x.y; rv:42.0) gecko/20100101 firefox/42.0
chrome ua string the
chrome (or chromium/blink-based engines) user agent string is similar to firefox’s.
... examples mozilla/5.0 (x11; linux x86_64) applewebkit/537.36 (khtml, like gecko)
chrome/51.0.2704.103 safari/537.36 opera ua string the opera browser is also based on the blink engine, which is why it almost looks the same, but adds "opr/<version>".
... examples mozilla/5.0 (x11; linux x86_64) applewebkit/537.36 (khtml, like gecko)
chrome/51.0.2704.106 safari/537.36 opr/38.0.2220.41 older, presto-based opera releases used: opera/9.80 (macintosh; intel mac os x; u; en) presto/2.2.15 version/10.00 opera/9.60 (windows nt 6.0; u; en) presto/2.1.1 safari ua string in this example, the user agent string is mobile safari’s version.
WebAssembly.CompileError - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jscompileerror
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung in...
...ternet android full support 7.0nodejs full support 8.0.0compileerror() constructor
chrome full support 57edge full support 16firefox full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android ...
WebAssembly.LinkError - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jslinkerror
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung inter...
...net android full support 7.0nodejs full support 8.0.0linkerror() constructor
chrome full support 57edge full support 16firefox full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android fu...
WebAssembly.Memory() constructor - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsmemory() constructor
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11sa...
...msung internet android full support 7.0nodejs full support 8.0.0shared flag
chrome full support 74edge full support 79firefox full support 78ie no support noopera full support 62safari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android ...
WebAssembly.RuntimeError - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsruntimeerror
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung in...
...ternet android full support 7.0nodejs full support 8.0.0runtimeerror() constructor
chrome full support 57edge full support 16firefox full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android ...
Certificate Transparency - Web security
browser requirements google
chrome requires ct log inclusion for all certificates issues with a notbefore date of after 30 april 2018.
...
chrome had previously required ct inclusion for extended validation (ev) and symantec-issued certificates.
...in
chrome, even if the certificate was issued with a notbefore date prior to april).
Porting the Library Detector - Archive of obsolete content
each test also contains a
chrome:// url pointing to the icon associated with its library.
... once the list is built, the switchlibraries() function constructs a xul statusbarpanel element for each library it found, populates it with the icon at the corresponding
chrome:// url, and adds it to the box.
/loader - Archive of obsolete content
any attempt to load a module not listed in the manifest is unauthorized and is rejected with an exception: let { loader } = require('toolkit/loader'); let manifest = { './main': { 'requirements': { 'panel': 'sdk/panel' } }, 'sdk/panel': { 'requirements': { '
chrome': '
chrome' } } '
chrome': { 'requirements': {} } }; let loader = loader({ resolve: function(id, requirer) { let requirements = manifest[requirer].requirements; if (id in manifest) return requirements[id]; else throw error('module "' + requirer + '" has no authority to require ' + 'module "' + id + "') } }); thrown exceptions will propaga...
...p an environment) the requirer must be created first: let { require, loader, module } = require('toolkit/loader'); let loader = loader(options); let requirer = module(requirerid, requireruri); let require = require(loader, requirer); let boostrap = require(bootstrapid); built-in modules each loader instance exposes the following built-in pseudo modules in addition to those passed via modules:
chrome this pseudo module exposes everything that is typically available for js contexts with system principals under the components global.
preferences/service - Archive of obsolete content
example: var prefs = require("sdk/preferences/service"); var name = "general.useragent.locale"; prefs.get(name); // is equal to "
chrome://global/locale/intl.properties" prefs.getlocalized(name) // is equal to "en-us" setlocalized(name, value) sets the localized application preference name to value.
... value : string preference value, a url to a properties file example: require("sdk/preferences/service").set("general.useragent.locale", "
chrome://global/locale/intl.properties"); example: setting global preferences var { get, set } = require("sdk/preferences/service"); var { when: unload } = require("sdk/system/unload"); var oldvalue = get("browser.urlbar.autofill"); set("browser.urlbar.autofill", true); // by amo policy global preferences must be changed back to their original value unload(function() { set("browser.urlbar.autofill", oldvalue); }); ...
remote/parent - Archive of obsolete content
usage in multiprocess firefox: the browser ui runs in one process, sometimes called the
chrome process or the parent process web content runs in one or more other processes, sometimes called content processes or remote processes or child processes.
... by default, add-ons run in the
chrome process and can't directly access web content.
Alerts and Notifications - Archive of obsolete content
ms that don't implement nsialertsservice } } if you need to display a comparable alert on a platform that doesn't support nsialertsservice, you can do this: function popup(title, msg) { var image = null; var win = components.classes['@mozilla.org/embedcomp/window-watcher;1'] .getservice(components.interfaces.nsiwindowwatcher) .openwindow(null, '
chrome://global/content/alerts/alert.xul', '_blank', '
chrome,titlebar=no,popup=yes', null); win.arguments = [image, title, msg, false, '']; } using notification box another way of non-modal notification and further interaction with users is using of xul elements notificationbox and notification (implicitly).
...; var notification = box.getnotificationwithvalue('popup-blocked'); if (notification) { notification.label = message; } else { var buttons = [{ label: 'button', accesskey: 'b', popup: 'blockedpopupoptions', callback: null }]; let priority = box.priority_warning_medium; box.appendnotification(message, 'popup-blocked', '
chrome://browser/skin/info.png', priority, buttons); } ...
Boxes - Archive of obsolete content
make the box style="display: block" and the wrapping behavior will occur when the box is resized: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="yourwindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <hbox style="display: block"> <label value="aaa"/> <label value="bbb"/> <label value="ccc"/> <label value="ddd"/> <label value="eee"/> <label value="fff"/> <label value="ggg"/> <label value="hhh"/> <label value="iii"/> <label value="jjj"/> <label ...
...this keeps the image from stretching inside the box: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <box align="start" style="display:block"> <image src="
chrome://global/skin/icons/error.png" style="padding:5px"/> <textbox /> <image src="
chrome://global/skin/icons/error.png" style="padding:5px"/> <button label="hello"/> <image src="
chrome://global/skin/icons/error.png" sty...
HTML to DOM - Archive of obsolete content
l", null), body = document.createelementns("http://www.w3.org/1999/xhtml", "body"); html.documentelement.appendchild(body); body.appendchild(components.classes["@mozilla.org/feed-unescapehtml;1"] .getservice(components.interfaces.nsiscriptableunescapehtml) .parsefragment(ahtmlstring, false, null, body)); return body; } it works by creating a content-level (this is safer than
chrome-level) <div> in the current page, then parsing the html fragment and attaching that fragment to the <div>.
...of body), you have all document object with its complete functions list, therefore you can retrieve info within div tag like this: var dompars = htmlparser("<div id='userinfo'>john was a mediocre programmer, but people liked him <strong>anyway</strong>.</div>"); alert(dompars.getelementbyid('userinfo').innerhtml); to parse a complete html page, load it into an iframe whose type is content (not
chrome).
Windows - Archive of obsolete content
however, window.open() returns a window object for content, not for the browser window itself, so you should get the
chrome window first.
... var wenum = components.classes["@mozilla.org/embedcomp/window-watcher;1"] .getservice(components.interfaces.nsiwindowwatcher) .getwindowenumerator(); var index = 1; var windowname = "yourwindowname"; while (wenum.hasmoreelements()) { var win = wenum.getnext(); if (win.name == windowname) { win.focus(); return; } index++ } window.open("
chrome://to/your/window.xul", windowname, "features"); uniquely identifying dom windows requires gecko 2.0(firefox 4 / thunderbird 3.3 / seamonkey 2.1) in gecko, each dom window has a unique 64-bit id number.
Extension Packaging - Archive of obsolete content
extensions use a directory structure which can provide
chrome, components, and other files to extend the functionality of an xul program.
...lable 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 ...
Installing Extensions and Themes From Web Pages - Archive of obsolete content
themes pretty much everything i've described applies to themes too, except you'll use the install
chrome function.
...furthermore, calling updateenabled may lead to problems if your distribution site is not in the user's whitelist, because firefox only displays the "installation blocked" message when install or install
chrome are called, or when a xpi file is loaded.
Offering a context menu for form controls - Archive of obsolete content
overlay the content the first thing to do is to establish an overlay over the
chrome for the window in which you want to allow context menus on form controls.
... <overlay id="formcontrolcontextmenu-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript" src="
chrome://formcontrolcontextmenu/content/overlay.js"/> </overlay> change the right-click behavior the overlaid code is responsible for adjusting the behavior of right-clicking on form controls.
Adding sidebars - Archive of obsolete content
<menupopup id="viewsidebarmenu"> <menuitem id="xulschoolhello-sidebar" label="&xulschoolhello.sidebar.title;" accesskey="&xulschoolhello.sidebar.accesskey;" type="checkbox" autocheck="false" group="sidebar" sidebarurl="
chrome://xulschoolhello/content/sidebar.xul" sidebartitle="&xulschoolhello.sidebar.title;" oncommand="togglesidebar('xulschoolhello-sidebar');" /> </menupopup> the example in the mdc page includes a shortcut key combination to toggle the new sidebar.
...one common use for a stack is to have an image background that stretches horizontally and vertically depending on the size of the foreground object: <stack> <hbox flex="1"> <image src="
chrome://xulschoolhello/skin/stack-bg.png" flex="1" /> </hbox> <hbox> <!-- some content here.
Appendix E: DOM Building and Insertion (HTML & XUL) - Archive of obsolete content
{}; document.documentelement.appendchild( jsontodom(["xul:hbox", {}, ["div", {}, ["a", { href: href, key: "link", onclick: function (event) { alert(event.target.href); } }, text], ["span", { class: "stuff" }, "stuff"]]], document, nodes)); alert(nodes.link); function addentrytopopup(menupopup, doc,
chromewindow) { var newitem = doc.createelement("menuitem"); newitem.setattribute("value", "testvalue"); newitem.setattribute("label", "another popup menu item"); menupopup.appendchild(newitem); }; var jsontemplatebtn = ["xul:toolbarbutton", { id: "mytestbutton", class: "toolbarbutton-1", type: "menu", label: "test button label...
... let { cc, ci } = require("
chrome"); /** * safely parse an html fragment, removing any executable * javascript, and return a document fragment.
Setting Up a Development Environment - Archive of obsolete content
adding: install.rdf (deflated 50%) adding:
chrome.manifest (deflated 50%) adding: content/browseroverlay.js (deflated 42%) adding: content/browseroverlay.xul (deflated 69%) adding: skin/browseroverlay.css (stored 0%) adding: locale/browseroverlay.dtd (deflated 52%) adding: locale/browseroverlay.properties (stored 0%) creating xpi file.
...the
chromebug extension helps in making firebug more useful for extension development, but it may still not be powerful enough to replace all of the previously mentioned add-ons.
Updating addons broken by private browsing changes - Archive of obsolete content
ode refers to any of the following interfaces: ff 15: nsidomstoragemanager ff 16: nsitransferable ff 18: imgicache moziasyncfavicons nsifaviconservice nsiwebbrowserpersist ff 19: nsicontentprefservice nsidownloadmanager nsidownload nsihttpauthmanager nsistricttransportsecurityservice ff 20: nsiprivatebrowsingservice nsirecentbadcertservice furthermore, if your code uses any of these common
chrome apis: ff 19: saveurl saveinternal openlinkin ff 20: openbrowserwindow gprivatebrowsingui finally, if your code watches for any of these observer notifications: private-browsing private-browsing-cancel-vote private-browsing-change-granted private-browsing-transition-complete then your addon will require updating to correctly support the new per-window private browser feature in firefox ...
...
chrome apis openbrowserwindow: takes an optional parameter to indicate desired properties of the window.
Add-ons - Archive of obsolete content
extensions use a directory structure which can provide
chrome, components, and other files to extend the functionality of an xul program.
...well, xul overlays and windows, jsm files,
chrome & resource mappings with localization, default preferences, but no xpcom components of your own.
List of Former Mozilla-Based Applications - Archive of obsolete content
to webkit in version 1.8.6 boxee media center software switched to webkit in version 1.0 epiphany browser switched from gecko to webkit flock social browsing flock switched from being firefox-based to chromium-based when it released a new beta on june 16, 2010 jolicloud web operating system as of march 2010, rw/w reports jolicloud is on
chrome/
chrome os joost tv over internet switched from xulrunner-based client to a web application liferea news aggregator switched to webkit in version 1.6 manyone browser browser originally mozilla-based but now i believe the have a web-based tool (need reference for that) miro (formerly democracy player) video switched from xulrunner to webki...
...t in version 3.0.2 moblin browser browser when moblin became meego it switched from a custom gecko-based browser to
chrome nautilus file manager hasn't used mozilla code since version 2.0 raptr client gaming client was a xulrunner app initially but now uses adobe air rift technologies software installation over internet no longer using mozilla technology -- need confirmation and details second life virtual world desktop client switched from embedded mozilla browser to a plugin architecture with a qtwebkit plugin applications that are no longer being developed name description additional information aphrodite browser inactive aol client for mac internet software no longe...
Using XML Data Islands in Mozilla - Archive of obsolete content
pt> the xml source text can then be retrieved like this: var ordersource = document.getelementbyid("purchase-order").textcontent; the xml source text can be parsed into a dom tree using the domparser api: var parser = new domparser(); var doc = parser.parsefromstring(ordersource, "application/xml"); the html5 data block-based way shown here works in firefox, opera, webkit-based browsers such as
chrome and safari, and ie9 while ie's xml data islands work only in ie.
...ce of the first line item is " + firstprice + "."; } </script> </head> <body onload="rundemo()";> demo did not run </body> </html> the xml source text can be parsed into a dom tree using the domparser api: var parser = new domparser(); var doc = parser.parsefromstring(ordersource, "application/xml"); the html5 data block-based way shown here works in firefox, opera, webkit-based browsers such as
chrome and safari, and ie9 while ie's xml data islands work only in ie.
Conclusion - Archive of obsolete content
firefox has slightly different
chrome registry requirements, so you may need to modify the contents.rdf files.
... for example, you need to change
chrome://navigator/content/navigator.xul to
chrome://browser/content/browser.xul.
Specifying the appearance - Archive of obsolete content
for this we have to first create four icons, one for each tinderbox state (none, success, test failed, and busted), then create a set of css rules that displays the icon corresponding to the current tinderbox state: statusbarpanel#tinderbox-status { list-style-image: url("
chrome://navigator/content/tb-nostatus.png"); } statusbarpanel#tinderbox-status[status="success"] { list-style-image: url("
chrome://navigator/content/tb-success.png"); } statusbarpanel#tinderbox-status[status="testfailed"] { list-style-image: url("
chrome://navigator/content/tb-testfailed.png"); } statusbarpanel#tinderbox-status[status="busted"] { list-style-image: url("
chrome://navigator/content/tb-buste...
...lla can have multiple sets of stylesheets that govern its appearance, and we don't want to have to add these rules to each set (and have our extension break when a new set gets installed), so we'll put this stylesheet in a file called tinderstatus.css in the same directory as navigator.xul and reference it at the top of that file right under the global stylesheet reference: <?xml-stylesheet href="
chrome://navigator/skin/" type="text/css"?> <?xml-stylesheet href="
chrome://navigator/content/tinderstatus.css" type="text/css"?> our css rules use the list-style-image property to define an image to appear when our status bar panel, identified by its id attribute, has a given value for its status attribute.
Drag and Drop Example - Archive of obsolete content
first, we'll add the wrapper scripts: <script src="
chrome://global/content/nsdraganddrop.js"/> <script src="
chrome://global/content/nstransferable.js"/> <script src="dragboard.js"/> an additional script file dragboard.js is included which will contain the code we will write ourselves.
...the final code is shown below: <window title="widget dragger" id="test-window" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gat...re.is.only.xul"> <script src="
chrome://global/content/nsdraganddrop.js"/> <script src="
chrome://global/content/nstransferable.js"/> <script src="dragboard.js"/> <stack id="board" style="width:300px; height: 300px; max-width: 300px; max-height: 300px" ondragover="nsdraganddrop.dragover(event, boardobserver)" ondragdrop="nsdraganddrop.drop(event, boardobserver)"> </stack> <vbox> <button label...
Embedding Mozilla in a Java Application using JavaXPCOM - Archive of obsolete content
get the window watcher service nsiwindowwatcher windowwatcher = (nsiwindowwatcher)servicemanager.getservicebycontractid("@mozilla.org/embedcomp/window-watcher;1", nsiwindowwatcher.ns_iwindowwatcher_iid); // set the window creator (from step 6) windowwatcher.setwindowcreator(windowcreator); // create the root xul window: nsidomwindow win = windowwatcher.openwindow(null, "
chrome://your-app/content/window.xul", "mywindow", "
chrome,resizable,centerscreen", null); // set this as the active window windowwatcher.setactivewindow(win); // hand over the application to xpcom/xul, this will block: appstartup.run(); here is an example of a locationprovider that works : public class locationprovider implements iappfilelocprovider { private fin...
... windowproxy.openwindow(null,
chromeuri, name, "centerscreen", null); for more information, please see xulplanet's documentation of nsiproxyobjectmanager this was taken from injecting events onto xpcom’s ui thread ...
Style System Overview - Archive of obsolete content
impl cssstyleruleimpl ↓ ↓ ↓ ↓ h1 nscssdeclaration h2 ↙ ↘ nscsscolor — color: green nscsstext — text-align: right text-indent: 0 css style rule representation problem: the rule structures use too much memory (a few hundred kilobytes for all our
chrome), and require large numbers of allocations to construct.
...(important advice for
chrome css authors.) pseudo-elements are hashed in element hash, so for matching pseudo-elements we only need one hashtable lookup.
Code snippets - Archive of obsolete content
all of the in this page must be executed in a
chrome-privileged console.
... to access a
chrome-privileged console, open an about page (like about:about) then open a web console via the web developer menu.
Menu - Archive of obsolete content
features can also create new menus and attach them almost anywhere,
chrome or content, as popup menus or context menus.
...jetpack.menu.context.browser the
chrome context menu.
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.
...this level of functionality is commonly called
chrome-level privileges.
Remote XUL - Archive of obsolete content
how to use xul delivered from a webserver, not as part of
chrome.
... oreillynet article, part 1 oreillynet article, part 2 restrictions see remote xul bugs for needless restrictions, features which don't work in remote xul (but in
chrome xul) although they really should.
Safely loading URIs - Archive of obsolete content
chrome: give the loaded page expanded privileges.
...so if you're implementing a context menu and you add a "view image" option, the source of the image uri would be the page the image is in, not the
chrome document the context menu code is in.
XPInstall API reference - Archive of obsolete content
adddirectory addfile alert cancelinstall confirm deleteregisteredfile execute gestalt getcomponentfolder getfolder getlasterror getwinprofile getwinregistry initinstall loadresources logcomment patch performinstall refreshplugins register
chrome reseterror setpackagefolder installtrigger no properties methods compareversion enabled getversion install install
chrome startsoftwareupdate installversion properties methods compareto init tostring file no properties methods ...
... iskeywritable keyexists setrootkey setvalue setvaluenumber setvaluestring valueexists winregvalue constructor other information return codes see complete list examples trigger scripts and install scripts code samples file.macalias file.windowsshortcut install.adddirectory install.addfile installtrigger.install
chrome installtrigger.startsoftwareupdate windows install ...
textbox.type - Archive of obsolete content
if you have <binding id="input" extends="
chrome://global/content/bindings/autocomplete.xml#autocomplete" >, then the textbox will have autocomplete type, regardless of tree's 'type' attribute.
... use <binding extends="
chrome://global/content/bindings/textbox.xml#textbox" > for ordinary textbox.
treecol.type - Archive of obsolete content
*/ list-style-image: url("
chrome://global/skin/checkbox/cbox-check.gif"); } treechildren::-moz-tree-checkbox(disabled) { /* disabled checkbox treecells.
...*/ list-style-image: url("
chrome://global/skin/checkbox/cbox-check-dis.gif"); } see also type ...
Introduction - Archive of obsolete content
the datasources attribute should be the url of an xml file, which can be either the location of a web site or a file on the local file system, using its file or
chrome url.
...<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.
Adding Buttons - Archive of obsolete content
<button id="find-button" label="find"/> note: firefox does not allow you to open
chrome windows from web pages, so the view links in the tutorial will open in normal browser windows.
...the code to add is shown in red below: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="findfile-window" title="find files" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <button id="find-button" label="find"/> <button id="cancel-button" label="cancel"/> </window> you'll notice that the cancel button was added also.
Adding Event Handlers - Archive of obsolete content
for example, you may use urls of the following form: <script src="findfile.js"/> <script src="
chrome://findfiles/content/help.js"/> <script src="http://www.example.com/js/items.js"/> this tutorial does not attempt to describe how to use javascript (except as related to event handling) as this is a fairly large topic and there are plenty of other resources that are available for this.
...to show errors in
chrome javascript, it is necessary to change the preference javascript.options.showinconsole to true.
Anonymous Content - Archive of obsolete content
for example, a simplified version of an editable menulist element, might be created as follows: xul: <menu class="dropbox"> <menupopup> <menuitem label="1000"/> <menuitem label="2000"/> </menupopup> </menu> css: menu.dropbox { -moz-binding: url('
chrome://example/skin/example.xml#dropbox'); } xbl: <binding id="dropbox"> <content> <children/> <xul:textbox flex="1"/> <xul:button src="
chrome://global/skin/images/dropbox.jpg"/> </content> </binding> this example creates an input field with a button beside it.
...the resulting content would be: <menu class="dropbox"> <menupopup> <menuitem label="1000"/> <menuitem label="2000"/> </menupopup> <textbox flex="1"/> <button src="
chrome://global/skin/images/dropbox.jpg"/> </menu> includes attribute in some cases, you may wish to only include specific types of content and not others.
Creating a Wizard - Archive of obsolete content
note that wizards currently only work properly from
chrome urls.
... an example wizard source <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <wizard id="example-window" title="select a dog wizard" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <wizardpage> <description> this wizard will help you select the type of dog that is best for you." </description> <label value="why do you want a dog?"/> <menulist> <menupopup> <menuitem label="to...
Introduction to XBL - Archive of obsolete content
for example: scrollbar { -moz-binding: url('
chrome://findfile/content/findfile.xml#binding1'); } the url points to the binding with the id 'binding1' in the file '
chrome://findfile/content/findfile.xml'.
...xul (example.xul): <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <?xml-stylesheet href="
chrome://example/skin/example.css" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <box class="okcancelbuttons"/> </window> css (example.css): box.okcancelbuttons { -moz-binding: url('
chrome://example/skin/example.xml#okcancel'); } xbl (example.xml): <?xml version="1.0"?> <binding...
XBL Attribute Inheritance - Archive of obsolete content
the following demonstrates this: xul: <box class="labeledtextbox" title="enter some text:" value="ok"/> css: box.labeledtextbox { -moz-binding: url('
chrome://example/skin/example.xml#labeledtextbox'); } xbl: <binding id="labeledtextbox"> <content> <xul:label xbl:inherits="value=title"/> <xul:textbox xbl:inherits="value"/> </content> </binding> the textbox inherits the value attribute directly.
...here is another example: xul: <box class="okcancel" oktitle="ok" canceltitle="cancel" image="happy.png"/> css: box.okcancel { -moz-binding: url('
chrome://example/skin/example.xml#okcancel'); } xbl: <binding id="okcancel"> <content> <xul:button xbl:inherits="label=oktitle,image"/> <xul:button xbl:inherits="label=canceltitle"/> </content> </binding> the value of the oktitle attribute is mapped to the label attribute of the first button.
Using Visual Studio as your XUL IDE - Archive of obsolete content
that has to do with the way mozilla implemented localization: < !doctype window system "
chrome://loomo/locale/main.dtd"> visual studio doesn't recognize the
chrome uri prefix, what will give you an error at the previous line ("the uri prefix is not recognized").
... as vs doesn't know how the
chrome protocol works it can't detect where the dtd file is really located and thus will give you errors wherever you use the entities that are declared in this file.
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://myextension/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://myextensions/locale/common.dtd"> %commondtd; <!entity % mainwindowdtd system "
chrome://myextension/locale/mainwindow.dtd"> %mainwindowdtd; ]> you can now access the entities declared in the dtds as shown above.
prefpane - Archive of obsolete content
attributes helpuri, image, label, onpaneload, selected, src properties image, label, preferenceelements, preferences, selected, src examples methods preferenceforelement <prefpane id="panegeneral" label="general" src="
chrome://path/to/paneoverlay.xul"/> or <prefpane id="panegeneral" label="general" onpaneload="ongeneralpaneload(event);"> <preferences> <preference id="pref_one" name="extensions.myextension.one" type="bool"/> ...
... </prefpane> <script type="application/javascript" src="
chrome://myext/content/script0.js"> <script type="application/javascript" src="
chrome://myext/content/script1.js"> </prefwindow> when opening a dialog with multiple panes you must include the toolbar feature in the call to opendialog, for example: window.opendialog("
chrome://example/content/prefwin.xul", "", "
chrome,toolbar"); related prefwindow preferences system documentation: introduc...
titlebar - Archive of obsolete content
this element can't be used to change the platform-native titlebar of normal windows; instead, it's used to create custom titlebars for
chromeless windows.
...arent; -moz-appearance: none;"> <titlebar flex="1" oncommand="close()" style="background: rgba(30, 30, 30, 0.9); -moz-border-radius: 10px; -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.8); margin: 8px 12px 16px;"/> </window> it can be opened from the error console like this: open("file:///users/markus/sites/hudwindow.xul", "", "
chrome=1, titlebar=0") attributes inherited from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, p...
treecol - Archive of obsolete content
however,
chrome://global/skin/checkbox/cbox-check.gif is available in seamonkey on mac os x..
...*/ list-style-image: url("
chrome://global/skin/checkbox/cbox-check.gif"); } for example: create a css file.
Dialogs in XULRunner - Archive of obsolete content
here is an example xul dialog: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <dialog id="mydialog" title="my dialog" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="window.sizetocontent();" buttons="accept,cancel" buttonlabelaccept="set favorite" buttonaccesskeyaccept="s" ondialogaccept="return dosave();" buttonlabelcancel="cancel" buttonaccessk...
...here is the code needed to open a dialog: function opendialog() { window.opendialog("
chrome://basicapp/content/dialog.xul", "newdlg", "modal"); } the resulting dialog looks like this on windows 2000, and will look similar on other operating systems: the first thing that caught my eye about dialog is the button-related attributes on the element.
toolkit.singletonWindowType - Archive of obsolete content
preference type: string specified by: default prefs of xulrunner applications default: none example: pref("toolkit.singletonwindowtype", "xulmine"); by default, the toolkit.default
chromeuri preference will cause xulrunner to open a new main application window each time an application is invoked.
...see also: xulrunner:specifying startup
chrome window, toolkit.default
chromefeatures ...
xulauncher - Archive of obsolete content
-f "$1" ] then echo "\"$1\" is not a file" exit fi # define some variables ############################################################################## wd=/tmp ext=".xul" xulfile=`basename $1` xulname=${xulfile%$ext} xuldir="$wd/$xulname/
chrome/$xulname/" xulprefdir="$wd/$xulname/defaults/preferences" xulappini="$wd/$xulname/application.ini" xulmanifest="$wd/$xulname/
chrome/
chrome.manifest" xulprefs="$wd/$xulname/defaults/preferences/prefs.js" # make minimal directory structure ############################################################################## mkdir -p $xuldir mkdir -p $xulprefdir # create application.ini file ###########...
...################################################################### echo " [app] vendor=xulauncher.sh name=$xulname version=0.0.1 buildid=`date +%y%m%d` [gecko] minversion=1.8 maxversion=1.9 ">$xulappini # create
chrome.manifest file ############################################################################## echo " content $xulname file:$xulname/ ">$xulmanifest # create prefs.js file ############################################################################## echo " pref(\"toolkit.default
chromeuri\", \"
chrome://$xulname/content/$xulfile\"); /* debugging prefs */ pref(\"browser.dom.window.dump.enabled\", true); pref(\"javascript.options.showinconsole\", true); pref(\"javascript.options.strict\", true); pref(\"nglayout.debug.disable_xul_cache\", true); pref(\"nglayout.debug.disable_xul_fas...
External resources for plugin creation - Archive of obsolete content
project: nixysa project home page description (from the home page): nixysa is a framework written in python to automatically generate glue code for npapi plugins (plugins for browsers such as google
chrome or firefox), letting you easily expose c++ classes to javascript from a simple idl representation.
...project: qtbrowserplugin project home page description (from the home page): the qtbrowserplugin solution makes it easy to write browser plugins that can be used in mozilla firefox, safari, opera, google
chrome, qtwebkit and any other web browser that supports the "netscape plugin api", npapi articles, information, and tutorials npapi has been around a very long time, and there have been many attempts to distill down useful information on creating them: colonelpanic.net building a firefox plugin - part one: discusses the difference between npapi and npruntime and summarizes the basic apis needed to c...
Scratchpad - Archive of obsolete content
to do this check "enable
chrome and add-on debugging" in the developer tool settings.
... once you've done this, the environment menu has a browser option; once that's selected, your scope is the entire browser rather than just the page content, as you will see from examining some globals: window /* [object
chromewindow] */ gbrowser /* [object xulelement] */ the scratchpad execution context is set to browser when a snippet file has // -sp-context: browser on the first line.
Using workers in extensions - Archive of obsolete content
ce changes this.prefs = components.classes["@mozilla.org/preferences-service;1"] .getservice(components.interfaces.nsiprefservice) .getbranch("stockwatcher2."); this.prefs.queryinterface(components.interfaces.nsiprefbranch2); this.prefs.addobserver("", this, false); this.tickersymbol = this.prefs.getcharpref("symbol").touppercase(); this.worker = new worker("
chrome://stockwatcher2/content/ticker_worker.js"); // small little dance to get 'this' to refer to stockwatcher, not the // worker, when a message is received.
... a note about
chromeworkers requires gecko 2.0(firefox 4 / thunderbird 3.3 / seamonkey 2.1) gecko 2.0 added the new
chromeworker object, which provides a special
chrome-only worker that can be used by applications and extensions.
Window.importDialog() - Archive of obsolete content
asrc the
chrome url of the xul dialog.
... example var dialog = importdialog(null, "
chrome://myextension/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.
RDF in Mozilla FAQ - Archive of obsolete content
for example, file:///tmp/foo.rdf
chrome://mycomponent/content/component-data.rdf http://www.mysite.com/generate-rdf.cgi ftp://ftp.somewhere.org/toc.rdf the load will be processed asynchronously, and as rdf/xml arrives, the template builder will generate content.
... xul that is loaded from a "trusted" url (currently, any
chrome: url) can specify any datasource uri in the datasources attribute of the xul template.
Implementing controls using the Gamepad API - Game development
firefox 29+ and
chrome 35+ support it out of the box.
... opera supports the api in version 22+ (not surprising given that they now use
chrome's blink engine.) and microsoft implemented support for the api in edge recently, which means four main browsers now supporting the gamepad api.
Finishing up - Game development
so, in the draw() function replace the following three lines: alert("game over"); document.location.reload(); clearinterval(interval); // needed for
chrome to end game with this, we can add slightly more complex logic to it as given below: lives--; if(!lives) { alert("game over"); document.location.reload(); clearinterval(interval); // needed for
chrome to end game } else { x = canvas.width/2; y = canvas.height-30; dx = 2; dy = -2; paddlex = (canvas.width-paddlewidth)/2; } now, when the ball hits the bottom ed...
...replace the following line: var interval = setinterval(draw, 10); with simply: draw(); and remove each instance of: clearinterval(interval); // needed for
chrome to end game then, at the very bottom of the draw() function (just before the closing curly brace), add in the following line, which causes the draw() function to call itself over and over again: requestanimationframe(draw); the draw() function is now getting executed again and again within a requestanimationframe() loop, but instead of the fixed 10 milliseconds frame rate, we are giving contr...
Gecko FAQ - Gecko Redirect 1
it paints the browser's content area, which is the blank area inside the browser window's
chrome.
... gecko is so fast and so powerful that it's being used to create the user interface of some applications ("
chrome") as well.
Vendor Prefix - MDN Web Docs Glossary: Definitions of Web-related terms
css prefixes the major browsers use the following prefixes: -webkit- (
chrome, safari, newer versions of opera, almost all ios browsers including firefox for ios; basically, any webkit based browser) -moz- (firefox) -o- (old pre-webkit versions of opera) -ms- (internet explorer and microsoft edge) sample usage: -webkit-transition: all 4s ease; -moz-transition: all 4s ease; -ms-transition: all 4s ease; -o-transition: all 4s ease; transition: all 4s ease; api prefixe...
... interface prefixes prefixes for interface names are upper-cased: webkit (
chrome, safari, newer versions of opera, almost all ios browsers (including firefox for ios); basically, any webkit based browser) moz (firefox) o (older, pre-webkit, versions of opera) ms (internet explorer and microsoft edge) property and method prefixes the prefixes for properties and methods are lower-case: webkit (
chrome, safari, newer versions of opera, almost all ios browsers (including ...
MDN Web Docs Glossary: Definitions of Web-related terms
ffer c cache cacheable caldav call stack callback function canonical order canvas card sorting carddav caret cdn certificate authority certified challenge-response authentication character character encoding character set
chrome cia cipher cipher suite ciphertext class client hints closure cms code splitting codec compile compile time computer programming conditional constant constructor continuous media control flow cookie copyleft co...
...ponse header name fork fragmentainer frame rate (fps) ftp ftu function fuzz testing g gaia garbage collection gecko general header gif gij git global object global scope global variable glyph gonk google
chrome gpl gpu graceful degradation grid grid areas grid axis grid cell grid column grid container grid lines grid row grid tracks guard gutters gzip compression h hash head high-level programming language hmac ...
Accessible multimedia - Learn web development
it looks like so in firefox and
chrome: however, there are problems with these controls: they are not keyboard accessible in most browsers, i.e.
...opera and
chrome provide this to some degree, but it still isn't ideal.
What is accessibility? - Learn web development
some are free products, like nvda (windows),
chromevox (
chrome, windows and mac os x), and orca (linux).
... some are built into the operating system, like voiceover (macos, ipados, ios), narrator (microsoft windows),
chromevox (on
chrome os), and talkback (android).
Flexbox - Learn web development
to get started, you should make a local copy of the first starter file — flexbox0.html from our github repo — load it in a modern browser (like firefox or
chrome), and have a look at the code in your code editor.
... button { flex: 1 auto; margin: 5px; font-size: 18px; line-height: 1.5; } cross browser compatibility flexbox support is available in most new browsers — firefox,
chrome, opera, microsoft edge and ie 11, newer versions of android/ios, etc.
Styling links - Learn web development
k { color: #265301; } a:visited { color: #437a16; } a:focus { border-bottom: 1px solid; background: #bae498; } a:hover { border-bottom: 1px solid; background: #cdfeaa; } a:active { background: #265301; color: #cdfeaa; } we'll also provide some sample html to apply the css to: <p>there are several browsers available, such as <a href="#">mozilla firefox</a>, <a href="#">google
chrome</a>, and <a href="#">microsoft edge</a>.</p> putting the two together gives us this result: so what did we do here?
... playable code <div class="body-wrapper" style="font-family: 'open sans light',helvetica,arial,sans-serif;"> <h2>html input</h2> <textarea id="code" class="html-input" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;"><p>there are several browsers available, such as <a href="#">mozilla firefox</a>, <a href="#">google
chrome</a>, and <a href="#">microsoft edge</a>.</p></textarea> <h2>css input</h2> <textarea id="code" class="css-input" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;">a { } a:link { } a:visited { } a:focus { } a:hover { } a:active { }</textarea> <h2>output</h2> <div class="output" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;"></di...
What is the difference between webpage, website, web server, and search engine? - Learn web development
we'll cover these terms and technologies in more detail as we explore further, but these quick definitions will be a great start for you: web page a document which can be displayed in a web browser such as firefox, google
chrome, opera, microsoft internet explorer or edge, or apple's safari.
...you can perform search engine searches directly in the address bar of firefox,
chrome, etc.) or through a web page (e.g.
The HTML5 input types - Learn web development
the below screenshots show a non-empty search field in firefox 71, safari 13, and
chrome 79 on macos, and edge 18 and
chrome 79 on windows 10.
...at the moment,
chrome, edge, and opera support them well, but there is no support in internet explorer, safari has some mobile support (but no desktop support), and firefox supports time and date only.
HTML forms in legacy browsers - Learn web development
chrome platform status site is also important.
...for example, the input of color type looks different in safari,
chrome and firefox browser, but the color picker widget is the same in all browsers on a device as it opens up the operating system's native color picker.
CSS property compatibility table for form controls - Learn web development
border-radius no[1] no[1] box-shadow no[1] no[1] meters and progress see the <meter> and <progress> elements: property n t note css box model width yes yes height yes yes border partial yes margin yes yes padding yes partial[1]
chrome hides the <progress> and <meter> element when the padding property is applied on a tweaked element.
... property n t note css box model width yes yes height partial[1] partial[1]
chrome and opera add some extra space around the widget, whereas opera on windows 7 stretches the range grip.
Sending form data - Learn web development
viewing http requests http requests are never displayed to the user (if you want to see them, you need to use tools such as the firefox network monitor or the
chrome developer tools).
... as an example, your form data will be shown as follows in the
chrome network tab.
Styling web forms - Learn web development
on the left is the default rendering of an <input type="text">, <input type="date">, <select>, <textarea>, <input type="submit">, and a <button> in
chrome on macos, with the platform's default font style in use.
...they all do, with a strange exception — <input type="submit"> does not inherit from the parent paragraph in
chrome.
What is JavaScript? - Learn web development
people are doing some amazing things using these web technologies —see
chrome experiments and webglsamples.
... note: many of the above demos won't work in an older browser — when experimenting, it's a good idea to use a modern browser like firefox,
chrome, edge or opera to run your code in.
Client-Server Overview - Learn web development
the actual content itself, which is in the body): get https://developer.mozilla.org/search?q=client+server+overview&topic=apps&topic=html&topic=css&topic=js&topic=api&topic=webdev http/1.1 host: developer.mozilla.org connection: keep-alive pragma: no-cache cache-control: no-cache upgrade-insecure-requests: 1 user-agent: mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko)
chrome/52.0.2743.116 safari/537.36 accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 referer: https://developer.mozilla.org/ accept-encoding: gzip, deflate, sdch, br accept-charset: iso-8859-1,utf-8;q=0.7,*;q=0.7 accept-language: en-us,en;q=0.8,es;q=0.6 cookie: sessionid=6ynxs23n521lu21b1t136rhbv7ezngie; csrftoken=zipujsazv6pcgcbjscj1zu6pqzbfmuat; dwf_section_edit=false;...
... post https://developer.mozilla.org/profiles/hamishwillee/edit http/1.1 host: developer.mozilla.org connection: keep-alive content-length: 432 pragma: no-cache cache-control: no-cache origin: https://developer.mozilla.org upgrade-insecure-requests: 1 user-agent: mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko)
chrome/52.0.2743.116 safari/537.36 content-type: application/x-www-form-urlencoded accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 referer: https://developer.mozilla.org/profiles/hamishwillee/edit accept-encoding: gzip, deflate, br accept-language: en-us,en;q=0.8,es;q=0.6 cookie: sessionid=6ynxs23n521lu21b1t136rhbv7ezngie; _gat=1; csrftoken=zipujsazv6pcgcbjscj1zu6pqzbf...
A bird's-eye view of the Mozilla framework
a xul package consists of a xul description of the ui widget cascading style sheets customizing appearance javascript services implementing the ui behavior a package (also known as
chrome) is really just a bundling of a set of ui widgets and associated services implementing a particular application feature.
...
chrome and extensions are examples of packages.
Creating a Language Pack
while in that directory, issue the following command: $ make merge-x-testing locale_mergedir=$(pwd)/mergedir x-testing: browser
chrome browser aboutcerterror.dtd // add and localize this file ...
...issue the following command: $ make merge-x-testing locale_mergedir=$(pwd)/mergedir rm -f -rf mergedir macosx_deployment_target= compare-locales -m mergedir /users/your_id/mozilla/vc/mozilla-aurora/browser/locales/l10n.ini /users/your_id/mozilla/vc/l10n-central x-testing x-testing: browser
chrome browser aboutcerterror.dtd // add and localize this file ...
Creating reftest-based unit tests
any tests that require such privileges to work correctly should be testing
chrome only pieces of ui.
... register them in the
chrome package in layout/tools/reftest/jar.mn, and reference the
chrome uris in the manifest file (see an example).
Makefile - variables
dist_
chrome_files exists in rules.mk but not referenced by mozilla-central.
... l10nbasedir moz_
chrome_multilocale a list of locale names to process moz_
chrome_file_format both, file, jar, omni, symlink packager_no_libs hack to allow one makefile to include another without pulling in libs:: target definitions.
How Mozilla's build system works
building jar files jar files are used for packaging
chrome files (xul, javascript, and css).
...although the common practice is to have a resources directory that contains the jar.mn and
chrome files, you may also put a jar.mn file in a directory that creates a library, in which case it will be processed.
ESLint
my script is a frame-script, or includes items that loaded into content scripts: add a line to tell eslint to use the frame-script environment: /* eslint-env mozilla/frame-script */ my script is a worker: add a line to tell eslint to use the worker environment: /* eslint-env worker */ or, to use a
chrome worker environment: /* eslint-env mozilla/
chrome-worker */ my file uses
chrome/xbl specific globals either, specify the global at the top of the file: /* globals my
chromeglobal */ or, add to the global section toolkit/.eslintrc.js if it is widely used.
... ensure there is a .eslintrc.js file that extends one of: "plugin:mozilla/browser-test" "plugin:mozilla/
chrome-test" "plugin:mozilla/mochitest-test" "plugin:mozilla/xpcshell-test" see other test directories for how to do this.
Displaying Places information using views
every xul document containing a built-in view must import the stylesheet browser/components/places/content/places.css and overlay the file browser/components/places/content/placesoverlay.xul: <?xml-stylesheet href="
chrome://browser/content/places/places.css" ?> <?xul-overlay href="
chrome://browser/content/places/placesoverlay.xul" ?> it's this stylesheet that binds elements with the special type attribute to one of the views.
...the following stylesheet is optional and only applies styles and icons to the built-in tree view: <?xml-stylesheet href="
chrome://browser/skin/places/places.css" ?> for examples of instantiating a tree view from javascript rather than xul, see programmatic generation of the built-in tree view.
Message manager
message managers provide a way for
chrome-privileged javascript code to communicate across process boundaries.
... 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.
Security best practices for Firefox front-end engineers
existing security controls sanitizing all strings that enter the dom through apis such as innerhtml when running system-privileged
chrome code, we sanitize all html fragments that are created for
chrome-privileged documents.
...developers are able to avoid tripping the rule by using escaping functions in combination with template strings, for example: bar.innerhtml = escapehtml`<a href='${url}'>about</a>`; in system-privileged
chrome code, any kind of remaining scripts will still be removed by our sanitizer.
CSS -moz-bool-pref() @supports function
the -moz-bool-pref() @supports condition is available to gecko
chrome and ua stylesheets to check if a boolean preference is enabled.
... example warning: this will only work when loaded from a gecko
chrome stylesheet.
Gecko Keypress Event
(
chrome accesskey, including menu accesskey, handling is currently similar, but this should not be relied on.
... there should be no
chrome access keys with punctuation characters or other characters that would normally require depressing the shift key.) during accel key handling, if the event includes the shift modifier, but an alternative charcode is not a bicameral letter (i.e., it does not have upper and lower case forms), then the shift modifier state should be ignored if there is no exactly matching handler (requiring shift to be down).
JavaScript OS.Constants
init(); from a
chrome worker no initialization is required.
... module os.constants is always available for
chrome workers.
JavaScript OS
the javascript os module contains tools that allow
chrome content (i.e.
...at the time of this writing, some of the features of this module are available only to
chrome workers.
TimerFirings logging
-991946880[7f46c365ba00]: [6775] fn timer (one_shot 0 ms): [content]
chrome://browser/content/tabbrowser.xml:1816:0 711637568[7f3219c48000]: [6835] fn timer (one_shot 100 ms): [content] http://edition.cnn.com/:5:7231 711637568[7f3219c48000]: [6835] fn timer (one_shot 100 ms): [content] http://a.visualrevenue.com/vrs.js:6:9423 these js timers are annotated with [content] and show the javascript source location where they were created.
... they can come from
chrome code within firefox, or from web content.
javascript.options.showInConsole
the preference javascript.options.showinconsole controls whether errors or warnings in
chrome code are shown in the error console.
... true (default) errors and warnings from both
chrome and content are shown in the error console.
nglayout.debug.disable_xul_cache
to improve performance, mozilla caches
chrome xul documents the first time they load for faster loading later.
... the effect is that the source xml file is not read and re-parsed each time the
chrome in question is displayed.
Preferences system
ui elements that refer to the preferences above, e.g.: <checkbox id="check1" preference="pref1" label="&check1.label;" accesskey="&check1.accesskey;"/> </prefpane> <prefpane id="pane2" label="&pane2.title;" src="
chrome://uri/to/pane.xul"/> </prefwindow> pane content can be specified inline or an external
chrome uri supplied for pane content to be loaded in via a dynamic overlay.
...example: var features = "
chrome,titlebar,toolbar,centerscreen,modal"; window.opendialog(url, "preferences", features); bugzilla the component for bugs in the preferences bindings (but not in firefox/thunderbird options ui) is toolkit:preferences (file a bug list open bugs) ...
compare-locales
ab-cd browser
chrome/browser browser.dtd +backforwardmenu.tooltip +fullzoomenlargecmd.commandkey3 +fullzoomreducecmd.commandkey2 +fullzoomresetcmd.commandkey2 +organizebookmarks.label -showallbookmarkscmd2.label migration/migration.dtd -importfromfile.accesskey -importfromfile.label +importfromhtmlfile.accesskey ...
...the file names will be shown in a hierarchical form, so in the example above, your files are browser.dtd in ab-cd/browser/
chrome/browser and migration.dtd in another directory level deeper.
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 xul...
...runner 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 ...
Components.utils.unwaiveXrays
example suppose a page script adds an expando to its global window: // page script foo = "i'm an expando"; by default,
chrome code won't see foo, because it sees the content window with xray vision, but the
chrome code can waive xray protection.
... the
chrome code can then use unwaivexrays to restore xray protection: //
chrome code // contentwindow is an xray var isxray = components.utils.isxraywrapper(gbrowser.contentwindow); // true // expandos are not visible in xrays var foo = gbrowser.contentwindow.foo; // undefined // you can waive xray vision for an object var waived = components.utils.waivexrays(gbrowser.contentwindow); isxray = components.utils.isxraywrapper(waived); // false foo = waived.foo; // "i'm an expando" // waiving is transitive isxray = components.utils.isxraywrapper(waived.document); // false // use unwaivexrays to undo the waiver var unwaived = components.utils.unwaivexrays(waived); isxray = compo...
nsIAlertsService
getservice(components.interfaces.nsialertsservice); try { alertsservice.showalertnotification("
chrome://mozapps/skin/downloads/downloadicon.png", "alert title", "alert text goes here.", false, "", null, ""); } catch (e) { // this can fail on mac os x } listening for callbacks you can be notified when the notification window disappears or the user clicks on the message by passing an object implementing nsiobserver as ...
...click'); services.prompt.alert(services.wm.getmostrecentwindow('navigator:firefox'), 'focus firefox', 'will now focus fireox and then focus the tab'); } else if (atopic == 'alertshow') { console.log('just showed notification'); } else if (atopic == 'alertfinished') { console.log('just alertfinished') } } }; as.showalertnotification('
chrome://branding/content/icon64.png', 'stackoverflow - new messages', 'there are ## new messages.
nsIContentFrameMessageManager
it enables these scripts to receive messages from the
chrome process and send messages back to the
chrome process.
... frame scripts can send either synchronous or asynchronous messages to the
chrome process: for details on these messaging apis see the documentation for the nsicontentframemessagemanager's parent classes nsisyncmessagesender and nsimessagesender.
nsIDOMParser
creating a domparser to create a domparser object from a web page or a
chrome script running in a window, simply use new domparser().
... when a domparser is instantiated by calling new domparser(), it inherits the calling code's principal (except that for
chrome callers the principal is set to the null principal) and the documenturi and baseuri of the window the constructor came from.
nsIDOMWindow
the window hierarchy does not cross
chrome-content boundaries.
...the window hierarchy does not cross
chrome-content boundaries.
nsIDOMWindowUtils
this is more useful for javascript in
chrome.
...this is more useful for javascript in
chrome selection_set_flag_reverse 0x0002 one of values of aadditionalflags of sendselectionsetevent().
nsIDragSession
only
chromedrop boolean indicates if the drop event should be dispatched only to
chrome.
... this allows
chrome to handle a drag that was refused by content.
nsIFrameLoader
messagemanager nsi
chromeframemessagemanager the message manager handling messages for this frame.
... see also content process event handling nsiframeloaderowner nsiframemessagelistener nsi
chromeframemessagemanager nsidomwindowutils ...
nsIJetpack
js/jetpack/nsijetpack.idlscriptable this interface enables communication between the
chrome process and a remote jetpack process.
...special messages if an exception goes uncaught in the jetpack process, it will be reported to the
chrome process via a message with the name core:exception.
nsIMsgAccountManagerExtension
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".
...
chromepackagename acstring
chrome package, where the files for the new panel are located.
nsIMsgWindow
rootdocshell nsidocshell this is used to track the
chrome window's nsidocshell object.
... domwindow nsidomwindow the message window's global
chrome window object.
nsINavHistoryResultNode
if the entry doesn't have a favicon, this is the
chrome uri of the default favicon.
... if the favicon originally lived in
chrome, this will be the original
chrome uri of the icon.
nsIStringBundleService
chrome://global/locale/global.properties return value a string bundle corresponding to the properties file.
...(automatically called for the memory-pressure and
chrome-flush-caches global observer topics.) void flushbundles(); parameters none.
Building a Thunderbird extension 2: extension file layout
at a minimum, they contain an install.rdf, the
chrome.manifest and a
chrome/ folder.
...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 followin...
Building a Thunderbird extension 5: XUL
the status bar is implemented in a xul file called messenger.xul, which can be found in the
chrome/messenger/content/messenger folder which is packaged inside the omni.ja archive.
... example xul overlay document create a new file called myhelloworld.xul within the content folder you created earlier with the following content: <?xml version="1.0"?> <overlay id="sample" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript" src="
chrome://myfirstext/content/overlay.js"/><!-- a reference to your javascript file --> <statusbar id="status-bar"> <statusbarpanel id="my-panel" label="date"/> </statusbar> </overlay> the <statusbar> widget named status-bar specifies the merge point within the application window that we want to attach to.
Creating a Custom Column
for this we overlay messenger.xul, by placing the following line in our
chrome.manifest file: overlay
chrome://messenger/content/messenger.xul
chrome://replyto_col/content/replyto_col_overlay.xul now that our overlay is set up we need to connect a column to the current columns that exist.
...is.only.xul"> <tree id="threadtree"> <treecols id="threadcols"> <splitter class="tree-splitter" /> <treecol id="colreplyto" persist="hidden ordinal width" currentview="unthreaded" flex="2" label="reply-to" tooltiptext="click to sort by the reply-to header" /> </treecols> </tree> <!-- include our javascript file --> <script type="text/javascript" src="
chrome://replyto_col/content/replyto_col.js"/> </overlay> that's it!
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 stringbundleservice = 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 ...
Using popup notifications
you can use this to style the icon, like this: .popup-notification-icon[popupid="sample-popup"] { list-style-image: url("
chrome://popupnotifications/skin/mozlogo.png"); } with this css in place, the result is the look we want: adding secondary options to provide options in the drop-down menu, add an array of notification actions to the call to the show() method, like this: popupnotifications.show(gbrowser.selectedbrowser, "sample-popup", "this is a sample popup notification.", null, /* anchor id */ ...
... = notify.show( // browser gbrowser.selectedbrowser, // popup id "pdes-popup", // message "hi, there!, i'm gonna show you something today!!", // anchor id null, // main action { label: "click here", accesskey: "d", callback: function() { // you can call your function here } }, // secondary action null, // options { // alternative way to set the popup icon popupiconurl: "
chrome://popupnotifications/skin/mozlogo.png" } ); settimeout(function(){ notification.remove(); }, 900); // time in milliseconds to disappear the door-hanger popup.
js-ctypes
note: js-ctypes is only available from
chrome code; that is, ctypes is not available to websites, only application and extension code.
... using js-ctypes ctypes.open custom native file standard os libraries finding window handles working with data working with arraybuffers declaring types declaring and calling functions declaring and using callbacks type conversion memory management
chromeworker js-ctypes reference a reference guide to the js-ctypes api.
Flash Activation: Browser Comparison - Plugins
mozilla firefox google
chrome microsoft edge setting name ask to activate html5 by default click-to-run 'application/x-shockwave-flash' in navigator.mimetypes by default when flash is inactive yes no no 'application/x-shockwave-flash' in navigator.mimetypes when user enables flash yes yes yes <object> with fallback content triggers ui yes, with exception...
...the user can click on the flash object or the location bar icon to activate flash: users have the choice to allow flash just for the current session, or to remember their choice: google
chrome in-page ui is displayed when the site attempts to use flash without fallback content: a user can click the plugin element to show a prompt for allowing flash: if the site provides fallback content for an object element,
chrome will display that content and will not prompt the user to enable flash.
Preferences System
ui elements that refer to the preferences above, e.g.: <checkbox id="check1" preference="pref1" label="&check1.label;" accesskey="&check1.accesskey;"/> </prefpane> <prefpane id="pane2" label="&pane2.title;" src="
chrome://uri/to/pane.xul"/> </prefwindow> pane content can be specified inline or an external
chrome uri supplied for pane content to be loaded in via a dynamic overlay.
...example: var features = "
chrome,titlebar,toolbar,centerscreen,modal"; window.opendialog(url, "preferences", features); bugzilla the component for bugs in the preferences bindings (but not in firefox/thunderbird options ui) is toolkit:preferences (file a bug list open bugs) ...
Access debugging in add-ons - Firefox Developer Tools
the following items are accessible in the context of
chrome://browser/content/debugger.xul (or, in version 23 beta,
chrome://browser/content/devtools/debugger.xul): window.addeventlistener("debugger:editorloaded") - called when the read-only script panel loaded.
... window.addeventlistener("debugger:editorunloaded") relevant files:
chrome://browser/content/devtools/debugger-controller.js
chrome://browser/content/devtools/debugger-toolbar.js
chrome://browser/content/devtools/debugger-view.js
chrome://browser/content/devtools/debugger-panes.js unfortunately there is not yet any api to evaluate watches/expressions within the debugged scope, or highlight elements on the page that are referenced as variables in the debugged scope.
Tutorial: Show Allocations Per Call Path - Firefox Developer Tools
visit the url about:config, and set the devtools.
chrome.enabled preference to true: setting the 'devtools.
chrome.enabled' preference open a developer scratchpad (menu button > developer > scratchpad), and select "browser" from the "environment" menu.
...the saved stacks // are new, and firefox doesn't yet understand that they // are safe for
chrome code to use, so we must tell it // so explicitly.
Debugger-API - Firefox Developer Tools
(firefox’s builtin tools have a protocol defined for this purpose.) in gecko, the debugger api is available to
chrome code only.
... gecko-specific features while the debugger core api deals only with concepts common to any javascript implementation, it also includes some gecko-specific features: [global tracking][global] supports debugging all the code running in a gecko instance at once—the ‘
chrome debugging’ model.
Index - Firefox Developer Tools
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.
... 118 access debugging in add-ons the following items are accessible in the context of
chrome://browser/content/debugger.xul (or, in version 23 beta,
chrome://browser/content/devtools/debugger.xul): 119 breaking on exceptions when an exception occurs, the line where it occurs is highlighted in the source pane, with a squiggly red line under the problematic code.
AnalyserNode.AnalyserNode() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetanalysernode() constructor
chrome full support 55edge full support ≤79firefox full support 53ie no support ...
... noopera full support 42safari full support 6webview android full support 55
chrome android full support 55firefox android full support 53opera android full support 42safari ios full support 6samsung internet android full support 6.0legend full support full support no support no suppo...
AudioBuffer() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetaudiobuffer() constructor
chrome full support 55notes full support 55notes notes the context parameter was supported up until version 57, but has now been removed.edge ...
... webview android full support 55notes full support 55notes notes the context parameter was supported up until version 57, but has now been removed.
chrome android full support 55notes full support 55notes notes the context parameter was supported up until version 57, but has now been removed.firefox android full support 53opera android full support 42notes ...
AudioBufferSourceNode.AudioBufferSourceNode() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetaudiobuffersourcenode() constructor
chrome full support 55notes full support 55notes notes before version 59, the default values were not supported.edge full...
... webview android full support 55notes full support 55notes notes before version 59, the default values were not supported.
chrome android full support 55notes full support 55notes notes before version 59, the default values were not supported.firefox android full support 53opera android full support 42safari ios ?
AudioContext() - Web APIs
google
chrome per-tab audio context limitation in
chrome prior to version 66 google
chrome only supported up to six audio contexts per tab at a time.
... non-standard exceptions in
chrome if the value of the latencyhint property isn't valid,
chrome throws a typeerror exception with the message "the provided value '...' is not a valid enum value of type audiocontextlatencycategory".
AudioContext.baseLatency - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbaselatency experimental
chrome full support 58edge full support ≤79firefox full support 70ie no support ...
... noopera full support 45safari no support nowebview android full support 58
chrome android full support 58firefox android no support noopera android full support 43safari ios no support nosamsung internet android full support 7.0legend full support full support no support no supportexpe...
AudioContext.getOutputTimestamp() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetoutputtimestamp experimental
chrome full support 57edge full support ≤79firefox full support 70ie no support...
... noopera full support 44safari no support nowebview android full support 57
chrome android full support 57firefox android no support noopera android full support 43safari ios no support nosamsung internet android full support 7.0legend full support full support no support no supp...
AudioParam.cancelAndHoldAtTime() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcancelandholdattime
chrome full support 57 full support 57 no support ?
...— 56alternate name alternate name uses the non-standard name: cancelvaluesandholdattime()
chrome android full support 57 full support 57 no support ?
BaseAudioContext.createConstantSource() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreateconstantsource
chrome full support 56edge full support ≤79firefox full support 53ie no support ...
... noopera full support 43safari no support nowebview android full support 56
chrome android full support 56firefox android full support 53opera android full support 43safari ios no support nosamsung internet android full support 6.0legend full support full support no support no support ...
BasicCardRequest.supportedNetworks - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsupportednetworks
chrome no support noedge no support ≤18 — 79firefox full support 56notes disabled full support ...
... webview android no support no
chrome android full support 57firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
BasicCardResponse.billingAddress - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbillingaddress
chrome no support noedge no support ≤18 — 79firefox full support 56notes disabled full support ...
... webview android no support no
chrome android full support 57firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
BasicCardResponse.cardNumber - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcardnumber
chrome no support noedge no support ≤18 — 79firefox full support 56notes disabled full support ...
... webview android no support no
chrome android full support 57firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
BasicCardResponse.cardSecurityCode - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcardsecuritycode
chrome no support noedge no support ≤18 — 79firefox full support 56notes disabled full support ...
... webview android no support no
chrome android full support 57firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
BasicCardResponse.cardholderName - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcardholdername
chrome no support noedge no support ≤18 — 79firefox full support 56notes disabled full support ...
... webview android no support no
chrome android full support 57firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
BasicCardResponse.expiryMonth - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetexpirymonth
chrome no support noedge no support ≤18 — 79firefox full support 56notes disabled full support ...
... webview android no support no
chrome android full support 57firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
BasicCardResponse.expiryYear - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetexpiryyear
chrome no support noedge no support ≤18 — 79firefox full support 56notes disabled full support ...
... webview android no support no
chrome android full support 57firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
BiquadFilterNode() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbiquadfilternode() constructor
chrome full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.edge full suppo...
... webview android full support 55notes full support 55notes notes before version 59, the default values were not supported.
chrome android full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.firefox android full support 53opera android full support 42notes full support ...
BlobEvent.timecode - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettimecode experimental
chrome full support 57edge full support ≤79firefox ?
... ie no support noopera full support 44safari no support nowebview android full support 57
chrome android full support 57firefox android ?
BudgetService.getBudget() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetbudget experimentaldeprecatednon-standard
chrome full support 55edge full support ≤79firefox ?
... webview android full support 55
chrome android full support 55firefox android ?
BudgetService.getCost() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetcost experimentaldeprecatednon-standard
chrome full support 55edge full support ≤79firefox ?
... webview android full support 55
chrome android full support 55firefox android ?
BudgetService.reserve() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreserve experimentaldeprecatednon-standard
chrome full support 55edge full support ≤79firefox ?
... webview android full support 55
chrome android full support 55firefox android ?
BudgetState.budgetAt - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbudgetat experimentaldeprecatednon-standard
chrome full support 60edge full support ≤79firefox ?
... webview android no support no
chrome android full support 60firefox android ?
BudgetState.time - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettime experimentaldeprecatednon-standard
chrome full support 60edge full support ≤79firefox ?
... webview android no support no
chrome android full support 60firefox android ?
CSSStyleRule.selectorText - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetselectortext
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 9opera full support yessafari full support 6webview android full support 4.4
chrome android full support 18firefox android full support 4opera android full support yessafari ios full support yessamsung internet android full support 1.0legend full support full support ...
CanvasRenderingContext2D.drawWindow() - Web APIs
if you're writing
chrome code, you probably want windowglobalparent.drawsnapshot from the parent process.
... ted mielczarek's tab preview extension uses this technique in
chrome to provide thumbnails of web pages, and the source is available for reference.
CanvasRenderingContext2D - Web APIs
non-standard apis blink and webkit most of these apis are deprecated and were removed shortly after
chrome 36.
... internal apis (
chrome-context only) canvasrenderingcontext2d.drawwindow() renders a region of a window into the canvas.
Clients.openWindow() - Web APIs
in
chrome for android, the method may instead open the url in an existing browsing context provided by a standalone web app previously added to the user's home screen.
... as of recently, this also works on
chrome for windows.
ConvolverNode() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetconvolvernode() constructor
chrome full support 55edge full support ≤79firefox full support 53ie no support ...
... webview android full support 55
chrome android full support 55firefox android full support 53opera android full support 42safari ios ?
DOMException() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdomexception() constructor
chrome full support yesedge full support 79firefox ?
... webview android full support yes
chrome android full support yesfirefox android ?
DOMException.code - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcode
chrome full support yesedge full support 12firefox full support 1ie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 4opera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown co...
DOMException.message - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmessage
chrome full support yesedge full support 12firefox full support 1ie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 4opera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown co...
DOMHighResTimeStamp - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdomhighrestimestamp
chrome full support 6edge full support 12firefox full support 7ie full support ...
... 9opera full support 15safari full support 8webview android full support yes
chrome android full support 18firefox android full support 15opera android full support 14safari ios full support 9samsung internet android full support 1.0legend full support full support ...
DOMRectReadOnly.fromRect() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfromrect() static function
chrome full support 57edge full support 79firefox full support 69ie no support ...
... noopera full support 44safari full support 10.1webview android full support 57
chrome android full support 57firefox android no support noopera android full support 43safari ios full support 10.3samsung internet android full support 7.0legend full support full support no support no supp...
DOMTokenList.forEach() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetforeach
chrome full support 45edge full support 16firefox full support 50ie no support ...
... noopera full support 32safari full support 10webview android full support 45
chrome android full support 45firefox android full support 50opera android full support 32safari ios full support 10samsung internet android full support 5.0legend full support full support no support no support ...
DataTransferItem.webkitGetAsEntry() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetwebkitgetasentry
chrome full support 13edge full support 14firefox full support 50ie no support ...
... noopera no support nosafari full support 11.1webview android no support no
chrome android full support yesfirefox android full support 50opera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no support ...
DelayNode() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdelaynode() constructor
chrome full support 55notes full support 55notes notes before version 59, the default values were not supported.edge full support ...
... webview android full support 55notes full support 55notes notes before version 59, the default values were not supported.
chrome android full support 55notes full support 55notes notes before version 59, the default values were not supported.firefox android full support 53opera android full support 42safari ios ?
DirectoryReaderSync - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdirectoryreadersync non-standard
chrome full support 13prefixed full support 13prefixed prefixed implemented with the vendor prefix: webkitedge full support ...
... noie no support noopera no support nosafari no support nowebview android full support 37prefixed full support 37prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 18prefixed full support 18prefixed prefixed implemented with the vendor prefix: webkitfirefox android no support noopera android no support nosafari ios no support ...
Document.cookie - Web APIs
before
chrome 52, this flag could appear with cookies from http domains.
...for
chrome the path attribute must always be the origin.
Document.designMode - Web APIs
the earlier versions of
chrome and ie default to "inherit".
... starting in
chrome 43, the default is "off" and "inherit" is no longer supported.
Document.evaluate() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetevaluate
chrome full support 1edge full support 12firefox full support 1.5ie no support ...
... noopera full support 9safari full support 5webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 4.2samsung internet android full support 1.0legend full support full support no support no support see also docu...
Document.fonts - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfonts
chrome full support 60edge full support 79firefox full support 41 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 47safari full support 10webview android full support 60
chrome android full support 60firefox android full support yesopera android full support 44safari ios full support 10samsung internet android full support 5.0legend ...
Document.forms - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetforms
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown ...
Document - Web APIs
note that this is currently only implemented by
chrome; other browsers still implement them directly on the document interface.
...note that this is currently only implemented by
chrome; other browsers still implement them on the document interface.
DocumentFragment.querySelector() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetqueryselector
chrome full support 1edge full support 12firefox full support 3.5ie full support ...
... 9opera full support 10safari full support 3.2webview android full support yes
chrome android full support yesfirefox android full support 4opera android full support 10.1safari ios full support 3.2samsung internet android full support yeslegend full support full support see also the documentfragment interface it belongs to.
DocumentOrShadowRoot.getSelection() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetselection experimental
chrome full support 53edge full support 12firefox full support 63ie full support ...
... yesopera full support 40safari full support yeswebview android full support 53
chrome android full support 53firefox android full support 63opera android full support 41safari ios full support yessamsung internet android full support 6.0legend full support full supportexperimental.
DynamicsCompressorNode() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdynamicscompressornode() constructor
chrome full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.edge full...
... webview android full support 55notes full support 55notes notes before version 59, the default values were not supported.
chrome android full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.firefox android full support 53opera android full support 42safari ios ?
Element.currentStyle - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcurrentstyle non-standard
chrome no support noedge no support nofirefox no support noie full support ...
... 6opera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportnon-standard.
Element.runtimeStyle - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetruntimestyle non-standard
chrome no support noedge no support nofirefox no support noie full support ...
... 6opera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportnon-standard.
Element.scrollLeftMax - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollleftmax non-standard
chrome no support noedge no support nofirefox full support 16ie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 16opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportnon-standard.
Element.slot - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetslot
chrome full support 53edge full support ≤79firefox full support 63ie ?
... opera full support yessafari full support 10webview android full support 53
chrome android full support 53firefox android full support 63opera android full support yessafari ios full support yessamsung internet android full support 6.0legend full support full support compatibility unknown comp...
Event.initEvent() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetinitevent deprecated
chrome full support yesedge full support 12firefox full support 17 full support ...
...es before firefox 17, a call to this method after the dispatching of the event raised an exception instead of doing nothing.ie full support yesopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 17 full support 17 no support ?
EventTarget.dispatchEvent() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdispatchevent
chrome full support 4edge full support 12firefox full support 2ie full support ...
...ort 6 — 11notes alternate name notes older versions of ie supported an equivalent, proprietary eventtarget.fireevent() method.alternate name uses the non-standard name: fireeventopera full support 9safari full support 3.2webview android full support 4
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 3samsung internet android full support 1.0legend ...
FederatedCredential - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfederatedcredential() constructor non-standard
chrome full support 51edge full support ≤79firefox ?
... webview android full support 51
chrome android full support 51firefox android ?
FederatedCredential.protocol - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetprotocol experimental
chrome full support 51edge full support ≤79firefox ?
... webview android full support 51
chrome android full support 51firefox android ?
FederatedCredential.provider - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetprovider experimental
chrome full support 51edge full support ≤79firefox ?
... webview android full support 51
chrome android full support 51firefox android ?
FetchEvent.navigationPreload - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnavigationpreload experimental
chrome full support 59edge full support ≤79firefox ?
... ie no support noopera full support 46safari no support nowebview android full support 59
chrome android full support 59firefox android ?
File.webkitRelativePath - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetwebkitrelativepath
chrome full support 13prefixed full support 13prefixed prefixed implemented with the vendor prefix: webkitedge full support ...
... 13firefox full support 49ie no support noopera no support nosafari full support 11.1webview android full support yes
chrome android full support 18prefixed full support 18prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 49opera android no support nosafari ios full support 11.3samsung internet android...
FileEntrySync - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfileentrysync non-standard
chrome full support 13prefixed full support 13prefixed prefixed implemented with the vendor prefix: webkitedge full support ...
... noie no support noopera no support nosafari no support nowebview android full support 37prefixed full support 37prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 18prefixed full support 18prefixed prefixed implemented with the vendor prefix: webkitfirefox android no support noopera android no support nosafari ios no support ...
FileError - Web APIs
when you're just testing your app, and you don't want to set up a web server, you can bypass the security restriction on
chrome.
... just start
chrome with the --allow-file-access-from-files flag.
FileException - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfileexception deprecatednon-standard
chrome no support 13 — 29prefixed no support 13 — 29prefixed prefixed implemented with the vendor prefix: webkitedge no support ...
... nofirefox no support noie no support noopera no support nosafari no support nowebview android no support no
chrome android no support 18 — 29prefixed no support 18 — 29prefixed prefixed implemented with the vendor prefix: webkitfirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support 1.0 — 3.0prefix...
FileReaderSync.readAsArrayBuffer() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadasarraybuffer
chrome full support yesedge full support 12firefox full support 8ie full support ...
... yesopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 8opera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support ...
FileReaderSync.readAsBinaryString() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadasbinarystring
chrome full support yesedge full support 12firefox full support 8ie full support ...
... yesopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 8opera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support ...
FileReaderSync.readAsDataURL() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadasdataurl
chrome full support yesedge full support 12firefox full support 8ie full support ...
... yesopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 8opera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support ...
FileReaderSync.readAsText() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadastext
chrome full support yesedge full support 12firefox full support 8ie full support ...
... yesopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 8opera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support ...
FileSystem.name - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetname
chrome full support 7edge full support ≤18firefox full support 50ie no support ...
... noopera full support 15safari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50opera android full support 14safari ios full support 11.3samsung internet android full support 1.0legend full support full support no support no support ...
FileSystem.root - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetroot
chrome full support 7edge full support ≤18firefox full support 50ie no support ...
... noopera full support 15safari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50opera android full support 14safari ios full support 11.3samsung internet android full support 1.0legend full support full support no support no support ...
FileSystemDirectoryEntry.createReader() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreatereader experimental
chrome full support 13edge full support 79firefox full support 50ie no support ...
... noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50opera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no supp...
FileSystemDirectoryEntry.getDirectory() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetdirectory experimental
chrome full support 8edge full support 79firefox full support 50notes full support ...
... 50notes notes in firefox, the errorcallback's input parameter is a domexception rather than a fileerror object.ie no support noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50notes full support 50notes notes in firefox, the errorcallback's input parameter is a domexception rather than a fileerror object.opera android no support nosafari ...
FileSystemDirectoryEntry.getFile() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetfile experimental
chrome full support 8edge full support 79firefox full support 50notes full support ...
... 50notes notes in firefox, the errorcallback's input parameter is a domexception rather than a fileerror object.ie no support noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50notes full support 50notes notes in firefox, the errorcallback's input parameter is a domexception rather than a fileerror object.opera android no support nosafari ...
FileSystemDirectoryEntry.removeRecursively() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetremoverecursively deprecatednon-standard
chrome full support 8edge full support 79firefox no support 50 — 52notes no support ...
...2notes notes while the removerecursively() method existed, it immediately called the error callback with ns_error_dom_security_err.ie no support noopera no support nosafari no support nowebview android full support ≤37
chrome android full support 18firefox android no support 50 — 52notes no support 50 — 52notes notes while the removerecursively() method existed, it immediately called the error callback with ns_error_dom_security_err.opera android no support nosafari ios ...
FileSystemEntry.copyTo() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcopyto experimentaldeprecatednon-standard
chrome full support 8edge full support 79firefox no support noie no sup...
...port noopera no support nosafari no support nowebview android full support ≤37
chrome android full support 18firefox android no support noopera android no support nosafari ios no support nosamsung internet android full support yeslegend full support full support no support no s...
FileSystemEntry.filesystem - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystem experimental
chrome full support 8edge full support 79firefox full support 50ie no support ...
... noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50opera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no support...
FileSystemEntry.fullPath - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfullpath experimental
chrome full support 8edge full support 79firefox full support 50ie no support ...
... noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50opera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no supportex...
FileSystemEntry.getMetadata() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetmetadata experimentaldeprecatednon-standard
chrome full support 8edge full support 79firefox no support noie n...
...o support noopera no support nosafari no support nowebview android full support ≤37
chrome android full support 18firefox android no support noopera android no support nosafari ios no support nosamsung internet android full support yeslegend full support full support no support ...
FileSystemEntry.getParent() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetparent experimental
chrome full support 8edge full support 79firefox no support noie no support ...
... noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android no support noopera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no supportexper...
FileSystemEntry.isDirectory - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetisdirectory experimental
chrome full support 8edge full support 79firefox full support 50ie no support ...
... noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50opera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no suppor...
FileSystemEntry.isFile - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetisfile experimental
chrome full support 8edge full support 79firefox full support 50ie no support ...
... noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50opera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no supportexpe...
FileSystemEntry.moveTo() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmoveto experimentaldeprecatednon-standard
chrome full support 8edge full support 79firefox no support noie no sup...
...port noopera no support nosafari no support nowebview android full support ≤37
chrome android full support 18firefox android no support noopera android no support nosafari ios no support nosamsung internet android full support yeslegend full support full support no support no s...
FileSystemEntry.name - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetname experimental
chrome full support 8edge full support 79firefox full support 50ie no support ...
... noopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50opera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no supportexperi...
FileSystemEntry.remove() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetremove experimentaldeprecatednon-standard
chrome full support 8edge full support 79firefox no support noie no sup...
...port noopera no support nosafari no support nowebview android full support ≤37
chrome android full support 18firefox android no support noopera android no support nosafari ios no support nosamsung internet android full support yeslegend full support full support no support no s...
FileSystemEntry.toURL() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettourl experimentaldeprecatednon-standard
chrome full support 8edge full support 79firefox no support noie no supp...
...ort noopera no support nosafari no support nowebview android full support ≤37
chrome android full support 18firefox android no support noopera android no support nosafari ios no support nosamsung internet android full support yeslegend full support full support no support no su...
FileSystemEntrySync - Web APIs
you can use the filesystem: scheme on google
chrome to see all the files and folders that are stored in the origin of your app.
...
chrome shows a read-only list of all the files and folders stored the origin of your app.
FileSystemFileEntry.createWriter() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreatewriter deprecatednon-standard
chrome full support 8edge full support 79firefox no support 50 — 52notes no support ...
...2notes notes while the createwriter() method existed, it immediately called errorcallback with the ns_error_dom_security_err error.ie no support noopera no support nosafari no support nowebview android full support ≤37
chrome android full support 18firefox android no support 50 — 52notes no support 50 — 52notes notes while the createwriter() method existed, it immediately called errorcallback with the ns_error_dom_security_err error.opera android no support nosafari ios ...
FileSystemFileEntry.file() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfile
chrome full support 8edge full support 79firefox full support 50ie no support n...
...oopera no support nosafari full support 11.1webview android full support ≤37
chrome android full support 18firefox android full support 50opera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no support ...
FileSystemFlags.create - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreate experimental
chrome full support 13prefixed full support 13prefixed prefixed implemented with the vendor prefix: webkitedge full support ...
...t.ie no support noopera no support nosafari no support nowebview android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkit
chrome android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkitfirefox android partial support 50notes partial support 50notes notes for security reasons, firefox does not support creating files.
FileSystemFlags.exclusive - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetexclusive experimental
chrome full support 13prefixed full support 13prefixed prefixed implemented with the vendor prefix: webkitedge full support ...
...t.ie no support noopera no support nosafari no support nowebview android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkit
chrome android full support yesprefixed full support yesprefixed prefixed implemented with the vendor prefix: webkitfirefox android partial support 50notes partial support 50notes notes for security reasons, firefox does not support creating files.
File and Directory Entries API - Web APIs
there are also two global functions (which are not part of the specification at this time and are implemented only by google
chrome).
... there are also two global functions (which are not part of the specification at this time and are implemented only by google
chrome).
FontFace.display - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdisplay experimental
chrome full support 60edge full support 79firefox full support 58ie ?
... opera full support 47safari full support 11webview android full support 60
chrome android full support 60firefox android no support noopera android full support 44safari ios no support nosamsung internet android full support 8.0legend full support full support no support no support ...
FontFaceSetLoadEvent.FontFaceSetLoadEvent() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfontfacesetloadevent() constructor experimental
chrome full support 57edge full support ≤79firefox ?
... webview android no support no
chrome android full support 57firefox android ?
FontFaceSetLoadEvent.fontfaces - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfontfaces experimental
chrome full support 35edge full support ≤79firefox full support yesie ?
... webview android no support no
chrome android full support 35firefox android full support yesopera android full support 22safari ios ?
Using the Frame Timing API - Web APIs
this section briefly describes the web performance tools for the firefox and
chrome/canary browsers.
...
chrome performance tool the
chrome (and canary) browsers also have a performance tool with similar functions as firefox.
GainNode() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgainnode() constructor
chrome full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.edge full support ...
... webview android full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.
chrome android full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.firefox android full support 53opera android full support ...
GamepadButton - Web APIs
note: this is the case in firefox gecko 28 and later;
chrome and earlier firefox versions still return an array of double values when this property is accessed.
... example the following code is taken from my gamepad api button demo (you can view the demo live, and find the source code on github.) note the code fork — in
chrome navigator.getgamepads needs a webkit prefix and the button values are stored as an array of double values, whereas in firefox navigator.getgamepads doesn't need a prefix, and the button values are stored as an array of gamepadbutton objects; it is the gamepadbutton.value or gamepadbutton.pressed properties of these we need to access, depending on what type of buttons they are.
HTMLAnchorElement.referrerPolicy - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreferrerpolicy
chrome full support 51edge full support 79firefox full support 50ie no support ...
... noopera full support 38safari full support 11.1webview android full support 51
chrome android full support 51firefox android full support 50opera android full support 41safari ios no support nosamsung internet android full support 7.2legend full support full support no support no support ...
HTMLAreaElement.referrerPolicy - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreferrerpolicy
chrome full support 51edge full support 79firefox full support 50ie no support ...
... noopera full support 38safari full support 11.1webview android full support 51
chrome android full support 51firefox android full support 50opera android full support 41safari ios no support nosamsung internet android full support 7.2legend full support full support no support no support ...
HTMLElement.offsetParent - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetoffsetparent
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 8opera full support 8safari full support 3webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0legend full support full support ...
HTMLElement.offsetTop - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetoffsettop
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 8opera full support 8safari full support 3webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0legend full support full support in compliance with the specification, this property will return null on webkit if the element is hidden (the ...
HTMLIFrameElement.csp - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcsp experimental
chrome full support 61edge full support ≤79firefox ?
... webview android full support 61
chrome android full support 61firefox android ?
HTMLIFrameElement.referrerPolicy - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreferrerpolicy
chrome full support 51edge full support 79firefox full support 50ie no support ...
... noopera full support 38safari full support 11.1webview android full support 51
chrome android full support 51firefox android full support 50opera android full support 41safari ios no support nosamsung internet android full support 5.0legend full support full support no support no support ...
HTMLIFrameElement.src - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsrc
chrome full support 43edge full support 12firefox full support yesie ?
... opera full support yessafari full support 6webview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown co...
HTMLImageElement.align - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetalign
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.alt - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetalt
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.border - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.complete - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcomplete
chrome full support 1edge full support 12firefox full support yesie full support ...
... 8notes full support 8notes notes ie reports false for broken images.opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.crossOrigin - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcrossorigin
chrome full support 13edge full support 12firefox full support yesie full support ...
... 9opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.currentSrc - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcurrentsrc experimental
chrome full support 45edge full support 13firefox full support 38 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support yessafari full support 10.1webview android full support 45
chrome android full support 45firefox android full support 38 full support 38 no support 32 — 52disabled disabled from version 32 until version 52 (exclusive): this feature is behind the dom.image.srcset.enabled preference (needs to be set to ...
HTMLImageElement.decoding - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdecoding
chrome full support 65edge full support ≤79firefox full support 63ie no support ...
... noopera full support yessafari full support 11.1webview android full support 65
chrome android full support 65firefox android full support 63opera android ?
HTMLImageElement.height - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetheight
chrome full support 1edge full support 12firefox full support yesie .html?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.hspace - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internethspace
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.isMap - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetismap
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.longDesc - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetlongdesc
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.lowSrc - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetlowsrc
chrome full support 1edge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android ?
HTMLImageElement.name - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetname
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.naturalHeight - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnaturalheight
chrome full support 1edge full support 12firefox full support yesie full support ...
... 9opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.naturalWidth - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnaturalwidth
chrome full support 1edge full support 12firefox full support yesie full support ...
... 9opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android ?
HTMLImageElement.referrerPolicy - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreferrerpolicy
chrome full support 51edge full support 79firefox full support 50ie no support ...
... noopera full support 38safari full support 11.1webview android full support 51
chrome android full support 51firefox android full support 50opera android full support 41safari ios no support nosamsung internet android full support 5.0legend full support full support no support no support ...
HTMLImageElement.sizes - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsizes experimental
chrome full support 45edge full support 13firefox full support 38 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support yessafari no support nowebview android full support 45
chrome android full support 45firefox android full support 38 full support 38 no support 33 — 52disabled disabled from version 33 until version 52 (exclusive): this feature is behind the dom.image.picture.enabled preference (needs to be set to...
HTMLImageElement.src - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsrc
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown ...
HTMLImageElement.srcset - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsrcset experimental
chrome full support 34edge full support 12firefox full support 38 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 21safari full support 8webview android full support 37
chrome android full support 34firefox android full support 38 full support 38 no support 32 — 52disabled disabled from version 32 until version 52 (exclusive): this feature is behind the dom.image.srcset.enabled preference (needs to be set to ...
HTMLImageElement.useMap - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetusemap
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown ...
HTMLImageElement.vspace - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetvspace
chrome full support 1edge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown ...
HTMLImageElement.width - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetwidth
chrome full support 1edge full support 12firefox full support yesie .html?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown ...
HTMLImageElement.x - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetx
chrome full support 1edge full support 12firefox full support 14 full support 14 ...
...— 7ie no support noopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 14 full support 14 no support ?
HTMLImageElement.y - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internety
chrome full support 1edge full support 12firefox full support 14 full support 14 ...
...— 7ie no support noopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support 14 full support 14 no support ?
HTMLInputElement.webkitdirectory - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetwebkitdirectory non-standard
chrome full support 13edge full support 13firefox full support 50ie no support ...
... noopera no support nosafari full support 11.1webview android full support yes
chrome android full support yesfirefox android full support 50opera android no support nosafari ios full support 11.3samsung internet android full support yeslegend full support full support no support no supportnon-standard.
HTMLLinkElement.as - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetas experimental
chrome full support 50edge full support 17firefox full support 56ie full support ...
... yesopera full support 37safari full support yeswebview android full support 50
chrome android full support 50firefox android full support 56opera android full support 37safari ios full support yessamsung internet android full support 5.0legend full support full supportexperimental.
HTMLMediaElement.controlsList - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontrolslist
chrome full support 58edge full support ≤79firefox ?
... webview android full support 58
chrome android full support 58firefox android ?
HTMLMediaElement.onencrypted - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonencrypted
chrome full support yesedge full support 13firefox full support yesie ?
...
chrome android ?
HTMLMediaElement.onwaitingforkey - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonwaitingforkey
chrome full support 55edge full support 79firefox full support yesie ?
... webview android full support 55
chrome android full support 55firefox android ?
HTMLMediaElement.setMediaKeys() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsetmediakeys
chrome full support yesedge full support 13firefox full support yesie ?
...
chrome android ?
HTMLOrForeignElement.nonce - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnonce
chrome full support 61edge full support 79firefox full support 75ie no support ...
... noopera full support yessafari full support 10webview android full support 61
chrome android full support 61firefox android no support noopera android full support yessafari ios full support 10samsung internet android full support 8.0legend full support full support no support no support ...
HTMLScriptElement.referrerPolicy - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreferrerpolicy
chrome full support 70edge full support ≤79firefox full support 65ie no support ...
... noopera full support yessafari no support nowebview android full support 70
chrome android full support 70firefox android full support 65opera android full support yessafari ios no support nosamsung internet android full support 10.0legend full support full support no support no support ...
HTMLSlotElement.assignedElements() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetassignedelements experimental
chrome full support 65edge full support 79firefox full support 66ie no support ...
... webview android full support 65
chrome android full support 65firefox android full support 66opera android full support yessafari ios ?
HTMLSlotElement.name - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetname experimental
chrome full support 53edge full support 79firefox full support 63 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 40safari full support 10.1webview android full support 53
chrome android full support 53firefox android full support 63 full support 63 no support 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to...
History.back() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetback
chrome full support yesedge full support 12firefox full support yesie full support ...
... 10opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support ...
History.forward() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetforward
chrome full support yesedge full support 12firefox full support yesie full support ...
... 10opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support ...
History.scrollRestoration - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollrestoration
chrome full support 46edge full support 79firefox full support 46ie no support ...
... noopera full support 33safari full support yeswebview android no support no
chrome android full support 46firefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support 5.0legend full support full support no support no support ...
IDBCursor.advance() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetadvance
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBCursor.continue() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontinue
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBCursor.delete() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdelete
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge f...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBCursor.direction - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdirection
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBCursor.primaryKey - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetprimarykey
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBCursor.request - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetrequest
chrome full support 76edge full support 79firefox full support 77ie no support ...
... webview android full support 76
chrome android full support 76firefox android no support noopera android full support 54safari ios ?
IDBCursor.source - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsource
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge f...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBCursor.update() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetupdate
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge f...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBCursorWithValue.value - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetvalue
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge fu...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBDatabase.close() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetclose
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge fu...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBDatabase.createObjectStore() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreateobjectstore
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBDatabase.deleteObjectStore() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdeleteobjectstore
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBDatabase.name - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetname
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ful...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBDatabase.objectStoreNames - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetobjectstorenames
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBDatabase.onabort - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonabort
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBDatabase.onclose - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonclose
chrome full support 31notes full support 31notes notes approxedge full support ≤18firefox full support...
... opera full support yessafari full support 10.1webview android full support yes
chrome android full support 31firefox android full support 50opera android full support yessafari ios full support 10.3samsung internet android full support 2.0legend full support full support compa...
IDBDatabase.onerror - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonerror
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBDatabase.onversionchange - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonversionchange
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBDatabase.version - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetversion
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBDatabaseException - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbdatabaseexception deprecatednon-standard
chrome full support 12prefixed full support 12prefixed prefixed implemented with the vendor prefix: webkitedge fu...
... ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox no support 4 — 14ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support 4 — 14opera android no support nosafari ios no support nosamsung internet android no support nolegend full su...
IDBFactory.cmp() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcmp
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
databases - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdatabases experimental
chrome full support 71edge full support 79firefox no support nonotes no support ...
... nonotes notes see bug 934640.ie no support noopera full support 58safari no support nowebview android full support 71
chrome android full support 71firefox android no support nonotes no support nonotes notes see bug 934640.opera android full support yessafari ios no support nosamsung internet android full support 10.0legend ...
IDBFactory.deleteDatabase() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdeletedatabase
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBFactory.open() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetopen
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ful...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBIndex.count() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcount
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge fu...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBIndex.get() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetget
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBIndex.getKey() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetkey
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge f...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBIndex.keyPath - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetkeypath
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBIndex.multiEntry - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmultientry
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBIndex.objectStore - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetobjectstore
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBIndex.openCursor() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetopencursor
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBIndex.openKeyCursor() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetopenkeycursor
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBIndex.unique - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetunique
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge f...
...— ?prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25firefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support 1.5legend ...
IDBKeyRange.bound() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbound
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge fu...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBKeyRange.includes() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetincludes
chrome full support 52edge full support ≤18firefox full support 47ie ?
... opera full support 39safari full support 10.1webview android full support 52
chrome android full support 52firefox android full support yesopera android full support 41safari ios full support 10.3samsung internet android full support 6.0legend full support full support compatibility unknown co...
IDBKeyRange.lower - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetlower
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge fu...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBKeyRange.lowerBound() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetlowerbound
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBKeyRange.lowerOpen - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetloweropen
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBKeyRange.only() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonly
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ful...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBKeyRange.upper - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetupper
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge fu...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBKeyRange.upperBound() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetupperbound
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBKeyRange.upperOpen - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetupperopen
chrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBObjectStore.add() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetadd
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.autoIncrement - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetautoincrement
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.clear() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetclear
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge fu...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.count() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcount
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge fu...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.createIndex() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreateindex
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.delete() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdelete
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge f...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.deleteIndex() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdeleteindex
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.get() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetget
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.getKey() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetkey
chrome full support 48edge full support ≤79firefox full support 51ie ?
... opera full support 45safari full support 10.1webview android full support 48
chrome android full support 48firefox android full support 58opera android full support 43safari ios full support 10.3samsung internet android full support 5.0legend full support full support compatibility unknown com...
IDBObjectStore.index() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetindex
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge fu...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.indexNames - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetindexnames
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.keyPath - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetkeypath
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.openCursor() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetopencursor
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.put() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetput
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBObjectStore.transaction - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettransaction
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBOpenDBRequest.onblocked - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonblocked
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBOpenDBRequest.onupgradeneeded - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonupgradeneeded
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBRequest.onerror - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonerror
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBRequest.onsuccess - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonsuccess
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBRequest.readyState - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadystate
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedge...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBRequest.result - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetresult
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBRequest.source - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsource
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBRequest.transaction - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettransaction
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedg...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBTransaction.objectStoreNames - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetobjectstorenames
chrome full support 48edge full support ≤79firefox full support yesie ?
... opera full support 35safari full support yeswebview android full support 48
chrome android full support 48firefox android full support yesopera android full support 35safari ios full support yessamsung internet android full support 5.0legend full support full support compatibility unknown comp...
IDBTransaction.abort() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetabort
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBTransaction.commit() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcommit
chrome full support 76edge full support 79firefox full support 74ie no support ...
... noopera full support 63safari no support nowebview android full support 76
chrome android full support 76firefox android no support noopera android full support 54safari ios no support nosamsung internet android full support 12.0legend full support full support no support no support ...
IDBTransaction.db - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdb
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBTransaction.mode - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmode
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBTransaction.objectStore() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetobjectstore
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedg...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBTransaction.onabort - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonabort
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBTransaction.oncomplete - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetoncomplete
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedge...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBTransaction.onerror - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonerror
chrome full support 24 full support 24 full support 23prefixed prefixed implemented with the vendor prefix: webkitedge ...
... support 16 no support 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial support 10opera full support 15safari full support 7webview android full support yes
chrome android full support yesfirefox android full support 22opera android full support 14safari ios full support 8samsung internet android full support yeslegend ...
IDBVersionChangeEvent.newVersion - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnewversion
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBVersionChangeEvent.oldVersion - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetoldversion
chrome full support 24 full support 24 no support 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge ...
...— 57prefixed prefixed implemented with the vendor prefix: webkit
chrome android full support 25 full support 25 no support 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full support 22opera android full support 14safari ios ...
IDBVersionChangeEvent.version - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetversion deprecatednon-standard
chrome full support 12edge full support ≤18firefox full support 16 full support ...
... 16 full support 10prefixed prefixed implemented with the vendor prefix: mozie no support noopera no support nosafari no support nowebview android full support yes
chrome android full support 18firefox android full support 22opera android full support 22safari ios no support nosamsung internet android full support 1.0legend ...
IDBVersionChangeRequest.setVersion() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsetversion deprecatednon-standard
chrome no support noedge no support nofirefox no support noie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android no support nolegend no support no supportnon-standard.
IIRFilterNode() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetiirfilternode() constructor
chrome full support 55notes full support 55notes notes before version 59, the default values were not supported.edge full support...
... webview android full support 55notes full support 55notes notes before version 59, the default values were not supported.
chrome android full support 55notes full support 55notes notes before version 59, the default values were not supported.firefox android full support 53opera android full support 42safari ios ?
ImageCapture.takePhoto() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettakephoto experimental
chrome full support 60 full support 60 no support 59 — 60notes notes photosettings argument not supported.edge ...
... webview android full support 60 full support 60 no support 59 — 60notes notes photosettings argument not supported.
chrome android full support 60 full support 60 no support 59 — 60notes notes photosettings argument not supported.firefox android ?
InputEvent.dataTransfer - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdatatransfer experimental
chrome full support 60edge full support 79firefox full support 67ie no support ...
... noopera full support 47safari no support nowebview android full support 60
chrome android full support 60firefox android full support 67opera android full support 44safari ios no support nosamsung internet android full support 8.0legend full support full support no support no supportexpe...
InputEvent.getTargetRanges() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgettargetranges experimental
chrome full support 60edge full support 79firefox no support noie no support ...
... noopera full support 47safari full support 10.1webview android full support 60
chrome android full support 60firefox android no support noopera android full support 44safari ios full support 10.3samsung internet android full support 8.0legend full support full support no support no supp...
MediaDeviceInfo.deviceId - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdeviceid
chrome full support 55notes full support 55notes notes for earlier versions, this interface is available through the adapter.js polyfilledge full su...
... nonotes notes this property can be used in opera by using the adapter.js polyfill.safari no support nowebview android full support 55notes full support 55notes notes for earlier versions, this interface is available through the adapter.js polyfill
chrome android full support 55notes full support 55notes notes for earlier versions, this interface is available through the adapter.js polyfillfirefox android full support 39opera android no support nonotes ...
MediaDeviceInfo.kind - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetkind
chrome full support 55notes full support 55notes notes for earlier versions, this interface is available through the adapter.js polyfilledge full suppor...
... nonotes notes this property can be used in opera by using the adapter.js polyfill.safari no support nowebview android full support 55notes full support 55notes notes for earlier versions, this interface is available through the adapter.js polyfill
chrome android full support 55notes full support 55notes notes for earlier versions, this interface is available through the adapter.js polyfillfirefox android full support 39opera android no support nonotes ...
MediaKeyMessageEvent() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmediakeymessageevent() constructor experimental
chrome full support 42edge full support ≤18firefox ?
... webview android no support no
chrome android full support 42firefox android ?
MediaKeyStatusMap.entries() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetentries experimental
chrome full support 42edge full support 16firefox ?
... webview android full support 43
chrome android full support 42firefox android ?
MediaKeyStatusMap.forEach() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetforeach experimental
chrome full support 42edge full support 13firefox ?
... webview android full support 43
chrome android full support 42firefox android ?
MediaKeyStatusMap.get() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetget experimental
chrome full support 42edge full support 13firefox full support yesie ?
... webview android full support 43
chrome android full support 42firefox android full support yesopera android full support 29safari ios ?
MediaKeyStatusMap.has() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internethas experimental
chrome full support 42edge full support 13firefox full support yesie ?
... webview android full support 43
chrome android full support 42firefox android full support yesopera android full support 29safari ios ?
MediaKeyStatusMap.keys() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetkeys experimental
chrome full support 42edge full support 16firefox ?
... webview android full support 43
chrome android full support 42firefox android ?
MediaKeyStatusMap.size - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsize experimental
chrome full support 42edge full support 13firefox full support yesie ?
... webview android full support 43
chrome android full support 42firefox android full support yesopera android full support 29safari ios ?
MediaKeyStatusMap.values() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetvalues experimental
chrome full support 42edge full support 16firefox ?
... webview android full support 43
chrome android full support 42firefox android ?
MediaMetadata.album - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetalbum experimental
chrome full support 57edge no support nofirefox full support 71ie no support ...
... webview android no support no
chrome android full support 57firefox android ?
MediaMetadata.artist - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetartist experimental
chrome full support 57edge no support nofirefox full support 71ie no support ...
... webview android no support no
chrome android full support 57firefox android ?
MediaMetadata.artwork - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetartwork experimental
chrome full support 57edge no support nofirefox full support 71ie no support ...
... webview android no support no
chrome android full support 57firefox android ?
MediaMetadata.title - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettitle experimental
chrome full support 57edge no support nofirefox full support 71ie no support ...
... webview android no support no
chrome android full support 57firefox android ?
MediaRecorder.audioBitsPerSecond - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetaudiobitspersecond experimental
chrome full support 49edge full support 79firefox full support 71ie no support ...
... noopera full support 36safari no support nowebview android full support 49
chrome android full support 49firefox android ?
MediaRecorder.ignoreMutedMedia - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetignoremutedmedia deprecatednon-standard
chrome no support 49 — 57edge no support nofirefox ?
... ie no support noopera no support 36 — 44safari no support nowebview android no support 49 — 57
chrome android no support 49 — 57firefox android ?
MediaSession.playbackState - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetplaybackstate experimental
chrome full support 73edge full support ≤79firefox no support noie no support ...
... webview android no support no
chrome android full support 57firefox android no support noopera android no support nosafari ios ?
MediaStream.getTracks() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgettracks experimental
chrome full support 45edge full support 12firefox full support yesie no support ...
... noopera full support yessafari full support yeswebview android full support 45
chrome android full support 45firefox android full support yesopera android no support nosafari ios full support yessamsung internet android full support 5.0legend full support full support no support no support...
MediaStream.id - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetid
chrome no support ?
...— 54
chrome android no support ?
Metadata.modificationTime - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetmodificationtime experimentalnon-standard
chrome full support 13edge full support ≤79firefox no support noie no...
... support noopera no support nosafari no support nowebview android no support no
chrome android full support yesfirefox android no support noopera android no support nosafari ios no support nosamsung internet android full support yeslegend full support full support no support no supportexperimental.
Metadata.size - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsize experimentalnon-standard
chrome full support 13edge full support ≤79firefox no support noie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android full support yesfirefox android no support noopera android no support nosafari ios no support nosamsung internet android full support yeslegend full support full support no support no supportexperimental.
Navigator.onLine - Web APIs
in
chrome and safari, if the browser is not able to connect to a local area network (lan) or a router, it is offline; all other conditions return true.
...until firefox 41, all other conditions return a true value; testing actual behavior on nightly 68 on windows shows that it only looks for lan connection like
chrome and safari giving false positives.
NonDocumentTypeChildNode.nextElementSibling - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnextelementsibling
chrome full support 4edge full support 12notes full support 12notes notes before edge 79, this property was o...
...see polyfill.opera full support 10safari full support 4webview android full support yes
chrome android full support yesfirefox android full support 4opera android full support 10.1safari ios full support yessamsung internet android full support yeslegend ...
OfflineAudioCompletionEvent.OfflineAudioCompletionEvent() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetofflineaudiocompletionevent() constructor
chrome full support 57notes full support 57notes notes before
chrome 59, the default values were not supported.edge ...
... webview android full support 57notes full support 57notes notes before version 59, the default values were not supported.
chrome android full support 57notes full support 57notes notes before
chrome 59, the default values were not supported.firefox android full support 53opera android full support 42safari ios ?
OfflineAudioCompletionEvent.renderedBuffer - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetrenderedbuffer
chrome full support 14edge full support 12firefox full support 25ie no support ...
... noopera full support 15safari full support 6webview android full support yes
chrome android full support 18firefox android full support 26opera android full support 14safari ios full support yessamsung internet android full support 1.0legend full support full support no support no support ...
PaymentRequest.abort() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetabort()
chrome full support 61edge full support 15firefox full support 55notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support 11.1webview android no support no
chrome android full support 53firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.canMakePayment() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcanmakepayment()
chrome full support 61edge full support 16firefox full support 55notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support 11.1webview android no support no
chrome android full support 53firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.prototype.id - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetid
chrome full support 61edge full support 16firefox full support 55notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support 11.1webview android no support no
chrome android full support 60firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.onshippingaddresschange - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonshippingaddresschange
chrome full support 61edge full support 15firefox full support 55notes disabled full sup...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support 11.1webview android no support no
chrome android full support 53firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.onshippingoptionchange - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonshippingoptionchange
chrome full support 61edge full support 15firefox full support 55notes disabled full supp...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support 11.1webview android no support no
chrome android full support 53firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.shippingOption - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetshippingoption
chrome full support 61edge full support 15firefox full support 55notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support 11.1webview android no support no
chrome android full support 53firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.shippingType - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetshippingtype
chrome full support 61edge full support 15firefox full support 55notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support 11.1webview android no support no
chrome android full support 55firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.payerName - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpayername
chrome full support 61edge full support 15firefox full support 56notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support yeswebview android no support no
chrome android full support 58firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentResponse.requestId - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetrequestid
chrome full support 61edge full support 16firefox full support 56notes disabled full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari full support yeswebview android no support no
chrome android full support 60firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
Performance.timeOrigin - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettimeorigin experimental
chrome full support 62edge full support 16firefox full support 53ie ?
... opera full support 49safari no support nowebview android full support 62
chrome android full support 62firefox android full support 53opera android full support 46safari ios no support nosamsung internet android full support 8.0legend full support full support no support no support ...
PerformanceLongTaskTiming.attribution - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetattribution experimental
chrome full support 58edge full support ≤79firefox no support noie ?
... webview android full support 58
chrome android full support 58firefox android no support noopera android full support yessafari ios ?
PhotoCapabilities.fillLightMode - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilllightmode experimental
chrome full support 59edge full support ≤79firefox ?
... webview android full support 59
chrome android full support 59firefox android ?
PhotoCapabilities.imageHeight - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetimageheight experimental
chrome full support 59edge full support ≤79firefox ?
... webview android full support 59
chrome android full support 59firefox android ?
imageWidth - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetimagewidth experimental
chrome full support 59edge full support ≤79firefox ?
... webview android full support 59
chrome android full support 59firefox android ?
PhotoCapabilities.redEyeReduction - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetredeyereduction experimental
chrome full support 59edge full support ≤79firefox ?
... webview android full support 59
chrome android full support 59firefox android ?
PointerEvent.getCoalescedEvents() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetcoalescedevents experimental
chrome full support 58edge full support 79firefox full support 59ie no support ...
... noopera full support 45safari no support nowebview android full support 58
chrome android full support 58firefox android partial support 59disabled partial support 59disabled disabled from version 59: this feature is behind the dom.w3c_pointer_events.enabled preference (needs to be set to true).
PublicKeyCredentialCreationOptions.extensions - Web APIs
as of june 2020, only appid (used during creation with publickeycredentialrequestoptions.extensions) is supported by
chrome and edge.
...also
chrome doesn't plan to support any other extension in future extension identifier type description authnsel array of buffersource authenticator selection.
PushEvent.PushEvent() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpushevent() constructor experimental
chrome full support 42edge full support 16disabled full support 16disabled disabled from ve...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 37safari no support nowebview android no support no
chrome android full support 42firefox android full support 44 full support 44 full support 48notes notes push enabled by default.opera android full support 37safari ios ...
PushEvent.data - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdata experimental
chrome full support 57edge full support 16disabled full support 16disabled disabled from version 16: this feat...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 44safari no support nowebview android no support no
chrome android full support 57firefox android full support 44 full support 44 full support 48notes notes push enabled by default.opera android full support 43safari ios ...
PushManager.hasPermission() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internethaspermission experimental
chrome full support 42edge full support 16disabled full support 16disabled disabled from version 16: ...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 29safari no support nowebview android no support no
chrome android full support 42firefox android full support 48notes full support 48notes notes push enabled by default.opera android full support 29safari ios no support nosamsung i...
PushManager.supportedContentEncodings - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsupportedcontentencodings experimental
chrome full support 60edge full support 16disabled full support 16disabled disabled from ...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 47safari no support nowebview android no support no
chrome android full support 60firefox android full support 48notes full support 48notes notes push enabled by default.opera android full support 44safari ios no support nosamsung i...
PushMessageData.arrayBuffer() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetarraybuffer experimental
chrome full support 50edge full support ≤79firefox full support 44notes full support ...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 37safari no support nowebview android no support no
chrome android full support 50firefox android full support 48opera android full support 37safari ios no support nosamsung internet android full support 5.0legend ...
PushMessageData.blob() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetblob experimental
chrome full support 50edge full support ≤79firefox full support 44notes full support ...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 37safari no support nowebview android no support no
chrome android full support 50firefox android full support 48opera android full support 37safari ios no support nosamsung internet android full support 5.0legend ...
PushMessageData.json() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetjson experimental
chrome full support 50edge full support ≤79firefox full support 44notes full support ...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 37safari no support nowebview android no support no
chrome android full support 50firefox android full support 48opera android full support 37safari ios no support nosamsung internet android full support 5.0legend ...
PushMessageData.text() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettext experimental
chrome full support 50edge full support ≤79firefox full support 44notes full support ...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 37safari no support nowebview android no support no
chrome android full support 50firefox android full support 48opera android full support 37safari ios no support nosamsung internet android full support 5.0legend ...
PushSubscription.expirationTime - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetexpirationtime
chrome full support 60edge full support 16firefox no support noie no support ...
... noopera full support 47safari no support nowebview android no support no
chrome android full support 60firefox android no support noopera android full support 44safari ios no support nosamsung internet android full support 8.0legend full support full support no support no support ...
PushSubscription.getKey() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetkey()
chrome full support 42edge full support 16firefox full support 44notes full support ...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 29safari no support nowebview android no support no
chrome android full support 42firefox android full support 48opera android full support 29safari ios no support nosamsung internet android full support 4.0legend ...
PushSubscription.options - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetoptions
chrome full support 42edge full support 16firefox full support 44notes full support ...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 29safari no support nowebview android no support no
chrome android full support 42firefox android full support 48opera android full support 29safari ios no support nosamsung internet android full support 4.0legend ...
PushSubscription.subscriptionId - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsubscriptionid
chrome full support 42edge full support ≤18firefox no support noie no support ...
... noopera full support 29safari no support nowebview android no support no
chrome android full support 42firefox android no support noopera android full support 29safari ios no support nosamsung internet android full support 4.0legend full support full support no support no support ...
Push API - Web APIs
in comparison,
chrome applies no limit, but requires that every push message causes a notification to be displayed.
... note:
chrome versions earlier than 52 require you to set up a project on google cloud messaging to send push messages, and use the associated project number and api key when sending push notifications.
RTCPeerConnection.addStream() - Web APIs
the exception is in
chrome, where addstream() does make the peer connection sensitive to later stream changes (though such changes do not fire the negotiationneeded event).
... if you are relying on the
chrome behavior, note that other browsers do not have it.
RTCRtpContributingSource.source - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsource
chrome full support 59edge full support ≤79firefox full support 59disabled full support ...
... webview android full support 59
chrome android full support 59firefox android full support 59disabled full support 59disabled disabled from version 59: this feature is behind the media.peerconnection.rtpsourcesapi.enable preference (needs to be set to true).
RTCRtpReceiver.track - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettrack
chrome full support 59edge full support 12firefox full support yesie no support ...
... noopera full support 46safari full support yeswebview android full support 59
chrome android full support 59firefox android full support yesopera android full support 43safari ios full support yessamsung internet android full support 7.0legend full support full support no support no support ...
SVGAElement.target - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettarget
chrome full support yesedge full support 12firefox full support yesie full support ...
... 9opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support ...
SVGAnimatedAngle - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedangle
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support 10webview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support 3samsung internet android full support yeslegend full support full support no support no support ...
SVGAnimatedBoolean - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedboolean
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGAnimatedEnumeration - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedenumeration
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGAnimatedInteger - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedinteger
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGAnimatedLength - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedlength
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGAnimatedLengthList - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedlengthlist
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGAnimatedNumber - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatednumber
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGAnimatedNumberList - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatednumberlist
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGAnimatedPathData - Web APIs
browser compatibility desktop mobile
chrome edge firefox internet explorer opera safari android webview
chrome for android firefox for android opera for android safari on ios samsung internet svganimatedpathdata
chrome ...
...
chrome android ?
SVGAnimatedPoints - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedpoints
chrome ?
... webview android no support no
chrome android ?
SVGAnimatedPreserveAspectRatio - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedpreserveaspectratio
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGAnimatedRect - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedrect
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGAnimatedString.animVal - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetanimval
chrome full support yesedge full support 12firefox full support yesie no support ...
... noopera full support yessafari full support yeswebview android full support yes
chrome android no support nofirefox android full support yesopera android full support yessafari ios full support yessamsung internet android no support nolegend full support full support no support no support ...
SVGAnimatedString.baseVal - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbaseval
chrome full support yesedge full support 12firefox full support yesie no support ...
... noopera full support yessafari full support yeswebview android full support yes
chrome android no support nofirefox android full support yesopera android full support yessafari ios full support yessamsung internet android no support nolegend full support full support no support no support ...
SVGAnimatedTransformList - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedtransformlist
chrome full support yesedge full support ≤18firefox full support 9ie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support 9opera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGDocument - Web APIs
browser compatibility desktop mobile
chrome edge firefox internet explorer opera safari android webview
chrome for android firefox for android opera for android safari on ios samsung internet svgdocument
chrome ?
...
chrome android ?
SVGFitToViewBox - Web APIs
browser compatibility desktop mobile
chrome edge firefox internet explorer opera safari android webview
chrome for android firefox for android opera for android safari on ios samsung internet svgfittoviewbox
chrome ?
...
chrome android ?
SVGImageElement.decoding - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdecoding experimental
chrome full support 65edge full support ≤79firefox ?
... webview android full support 65
chrome android full support 65firefox android ?
SVGLength - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvglength
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGLengthList - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvglengthlist
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android no support no
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
SVGMarkerElement - Web APIs
browser compatibility desktop mobile
chrome edge firefox internet explorer opera safari android webview
chrome for android firefox for android opera for android safari on ios samsung internet svgmarkerelement
chrome ?
...
chrome android ?
SVGNumberList - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgnumberlist
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown ...
SVGPathSeg - Web APIs
browser compatibility desktop mobile
chrome edge firefox internet explorer opera safari android webview
chrome for android firefox for android opera for android safari on ios samsung internet svgpathseg
chrome ?
...
chrome android ?
SVGPathSegList - Web APIs
browser compatibility desktop mobile
chrome edge firefox internet explorer opera safari android webview
chrome for android firefox for android opera for android safari on ios samsung internet svgpathseglist
chrome ?
...
chrome android ?
SVGPointList - Web APIs
browser compatibility desktop mobile
chrome edge firefox internet explorer opera safari android webview
chrome for android firefox for android opera for android safari on ios samsung internet svgpointlist
chrome ?
...
chrome android ?
SVGPreserveAspectRatio - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgpreserveaspectratio
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown ...
SVGStylable - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgstylable
chrome ?
... webview android no support no
chrome android ?
SVGTransform - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgtransform
chrome full support yesedge full support ≤18firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown ...
SVGTransformable - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgtransformable
chrome ?
... webview android no support no
chrome android ?
ScreenOrientation.angle - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetangle
chrome full support 38edge full support 79firefox full support 43ie no support ...
... noopera full support 25safari no support nowebview android full support 38
chrome android full support 38firefox android full support 43opera android full support 25safari ios no support nosamsung internet android full support 3.0legend full support full support no support no support ...
ScreenOrientation.lock() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetlock
chrome full support 38edge full support 79firefox full support 43ie no support ...
...noopera full support 25safari no support nowebview android full support 38
chrome android full support 38firefox android full support 43opera android full support 25safari ios no support nosamsung internet android full support 3.0legend full support full support no support no support ...
ScreenOrientation.onchange - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonchange
chrome full support 38edge full support 79firefox full support 43ie no support ...
... noopera full support 25safari no support nowebview android full support 38
chrome android full support 38firefox android full support 43opera android full support 25safari ios no support nosamsung internet android full support 3.0legend full support full support no support no support ...
ScreenOrientation.type - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettype
chrome full support 38edge full support 79firefox full support 43ie no support ...
...noopera full support 25safari no support nowebview android full support 38
chrome android full support 38firefox android full support 43opera android full support 25safari ios no support nosamsung internet android full support 3.0legend full support full support no support no support ...
ScreenOrientation.unlock() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetunlock
chrome full support 38edge full support 79firefox full support 43ie no support ...
... noopera full support 25safari no support nowebview android full support 38
chrome android full support 38firefox android full support 43opera android full support 25safari ios no support nosamsung internet android full support 3.0legend full support full support no support no support ...
Selection.removeAllRanges() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetremoveallranges experimental
chrome full support yesedge full support 12firefox full support yesie full support ...
... yesopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full supportexperimental.
Selection.removeRange() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetremoverange experimental
chrome full support 58edge full support 12firefox full support yesie ?
... opera full support 45safari no support nowebview android full support 58
chrome android full support 58firefox android full support yesopera android full support 43safari ios no support nosamsung internet android full support 7.0legend full support full support no support no support ...
Selection.toString() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettostring experimental
chrome full support 1edge full support ≤18firefox full support yesie ?
... webview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios ?
ServiceWorkerRegistration.navigationPreload - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnavigationpreload experimental
chrome full support 59edge full support 17 full support 17 full support ...
... 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera full support 46safari full support 11.1webview android full support 59
chrome android full support 59firefox android full support 44opera android full support 43safari ios full support 11.3samsung internet android full support 4.0legend ...
ServiceWorkerRegistration.showNotification() - Web APIs
if this value is absent or false, the desktop version of
chrome will auto-minimize notifications after approximately twenty seconds.
...buzz!', icon: '../images/touch/
chrome-touch-icon-192x192.png', vibrate: [200, 100, 200, 100, 200, 100, 200], tag: 'vibration-sample' }); }); } }); } to invoke the above function at an appropriate time, you could use the serviceworkerglobalscope.onnotificationclick event handler.
Using Service Workers - Web APIs
chrome canary: go to
chrome://flags and turn on experimental-web-platform-features; restart browser (note that some features are now enabled by default in
chrome.) opera: go to opera://flags and enable support for serviceworker; restart browser.
... self.addeventlistener('activate', (event) => { var cachekeeplist = ['v2']; event.waituntil( caches.keys().then((keylist) => { return promise.all(keylist.map((key) => { if (cachekeeplist.indexof(key) === -1) { return caches.delete(key); } })); }) ); }); developer tools
chrome has
chrome://inspect/#service-workers, which shows current service worker activity and storage on a device, and
chrome://serviceworker-internals, which shows more detail and allows you to start/stop/debug the worker process.
ShadowRoot - Web APIs
note that this is currently only implemented by
chrome; other browsers still implement them on the document interface.
...note that this is currently only implemented by
chrome; other browsers still implement them on the document interface.
SharedWorkerGlobalScope.applicationCache - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetapplicationcache
chrome full support 4edge full support ≤79firefox full support 29ie no support ...
... noopera full support 10.6safari no support nowebview android full support yes
chrome android full support yesfirefox android full support 29opera android full support yessafari ios ?
SharedWorkerGlobalScope.onconnect - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetonconnect
chrome full support 4edge full support ≤79firefox full support 29ie no support ...
... noopera full support 10.6safari no support nowebview android full support yes
chrome android full support 18firefox android full support 29opera android full support yessafari ios ?
Slottable: assignedSlot - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetassignedslot experimental
chrome full support 53edge full support 79firefox full support 63 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 40safari full support 10.1webview android full support 53
chrome android full support 53firefox android full support 63 full support 63 no support 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to...
StereoPannerNode.StereoPannerNode() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetstereopannernode() constructor
chrome full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.edge full suppo...
... full support 53ie no support noopera full support 42safari no support nowebview android full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.
chrome android full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.firefox android full support 53opera android full support ...
StorageManager.persist() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpersist
chrome full support 52 full support 52 no support 48 — 52alternate name alternate name uses the non-standard name: requestpersistentedge ...
... webview android full support 52 full support 52 no support 48 — 52alternate name alternate name uses the non-standard name: requestpersistent
chrome android full support 52 full support 52 no support 48 — 52alternate name alternate name uses the non-standard name: requestpersistentfirefox android full support 55opera android full support ...
Using readable streams - Web APIs
browser support you can consume fetch body objects as streams and create your own custom readable streams in firefox 65+ and
chrome 42+ (and equivalent chromium-based browsers).
... pipe chains are only supported in
chrome at the moment, and that functionality is subject to change.
TaskAttributionTiming.containerId - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontainerid experimental
chrome full support 58edge full support ≤79firefox no support noie ?
... webview android full support 58
chrome android full support 58firefox android no support noopera android full support yessafari ios ?
TaskAttributionTiming.containerType - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontainertype experimental
chrome full support 58edge full support ≤79firefox no support noie ?
... webview android full support 58
chrome android full support 58firefox android no support noopera android full support yessafari ios ?
HTMLSlotElement.assignedSlot - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetassignedslot
chrome full support 53edge full support ≤18firefox full support yesie ?
... opera full support 40safari full support 10.1webview android full support 53
chrome android full support 53firefox android full support yesopera android full support 41safari ios full support 10.3samsung internet android full support 6.0legend full support full support compatibility unknown co...
TextEncoder() - Web APIs
syntax encoder = new textencoder(); parameters textencoder() takes no parameters since firefox 48 and
chrome 53 note: prior to firefox 48 and
chrome 53, an encoding type label was accepted as a paramer to the textencoder object, since then both browers have removed support for any encoder type other than utf-8, to match the spec.
... exceptions textencoder() throws no exceptions since firefox 48 and
chrome 53 note: prior to firefox 48 and
chrome 53 an exception would be thrown for an unknown encoding type.
UIEvent.initUIEvent() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetinituievent deprecatednon-standard
chrome full support yesedge full support 12firefox full support yesie ?
... webview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios ?
UIEvent.layerX - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetlayerx non-standard
chrome full support yesedge full support 12firefox full support yesie full support ...
... 9opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full supportnon-standard.
URLUtilsReadOnly.hash - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internethash experimental
chrome no support noedge no support nofirefox full support 38 full support ...
...this has been fixed to match the spec.ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 38 full support 38 no support 4 — 38notes notes before firefox 38, firefox returned the hash percent encoded.
URLUtilsReadOnly.host - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internethost experimental
chrome no support noedge no support nofirefox full support 3.5ie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 4opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportexperimental.
URLUtilsReadOnly.hostname - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internethostname experimental
chrome no support noedge no support nofirefox full support 3.5ie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 4opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportexperimental.
URLUtilsReadOnly.href - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internethref experimental
chrome no support noedge no support nofirefox full support 3.5ie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 4opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportexperimental.
URLUtilsReadOnly.origin - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetorigin experimental
chrome no support noedge no support nofirefox full support 29ie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 29opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportexperimental.
URLUtilsReadOnly.pathname - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpathname experimental
chrome no support noedge no support nofirefox full support 3.5ie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 4opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportexperimental.
URLUtilsReadOnly.port - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetport experimental
chrome no support noedge no support nofirefox full support 3.5ie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 4opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportexperimental.
URLUtilsReadOnly.protocol - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetprotocol experimental
chrome no support noedge no support nofirefox full support 3.5ie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 4opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportexperimental.
URLUtilsReadOnly.search - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsearch experimental
chrome no support noedge no support nofirefox full support 3.5ie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 4opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportexperimental.
URLUtilsReadOnly.toString() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettostring experimental
chrome no support noedge no support nofirefox full support 3.5ie no support ...
... noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 4opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportexperimental.
VTTCue - Web APIs
lector('video'); video.addeventlistener('loadedmetadata', () => { const track = video.addtexttrack("captions", "简体中文subtitles", "zh_cn"); track.mode = "showing"; const cuecn = new vttcue(0, 2.500, '字幕会在0至2.5秒间显示'); track.addcue(cuecn); const cueen = new vttcue(2.6, 4, 'subtitles will display between 2.6 and 4 seconds'); track.addcue(cueen); }); result
chrome: please open in jsfiddle to view the live sample.
... embed live sample can not show subtitles in
chrome.
WaveShaperNode.WaveShaperNode() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetwaveshapernode() constructor
chrome full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.edge full support...
... webview android full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.
chrome android full support 55notes full support 55notes notes before
chrome 59, the default values were not supported.firefox android full support 53opera android full support ...
WebGL2RenderingContext.samplerParameter[if]() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetsamplerparameteri
chrome full support 56edge full support 79firefox full support 51ie no support ...
... noopera full support 43safari no support nowebview android full support 58
chrome android full support 58firefox android full support 51opera android full support 43safari ios no support nosamsung internet android full support 7.0legend full support full support no support no support ...
Improving compatibility using WebRTC adapter.js - Web APIs
for example, on firefox versions older than 38, the adapter adds the rtcpeerconnection.urls property; firefox doesn't natively support this property until firefox 38, while on
chrome, the adapter adds support for the promise based api is added if it's not present.
... the webrtc adapter currently supports mozilla firefox, google
chrome, apple safari, and microsoft edge.
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.
... 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.
Using the Web Animations API - Web APIs
browser support the basic web animations api features discussed in this article are available by default in firefox 48+ and
chrome 36+.
... conclusion these are the basic features of the web animations api, most of which are already supported across the latest release versions of firefox and
chrome.
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.
... see
chromeworker for more details.
window.cancelIdleCallback() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcancelidlecallback experimental
chrome full support 47edge full support 79firefox full support 55 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support yessafari no support nowebview android full support 47
chrome android full support 47firefox android full support 55 full support 55 full support 53disabled disabled from version 53: this feature is behind the dom.requestidlecallback.enabled preference (needs to be set to true).
Window.controllers - Web APIs
the controllers property of the window interface returns the xul controllers of the
chrome window.
...
chrome code can add controllers (to be used in conjunction with the godocommand and goupdatecommand functions in globaloverlay.js).
Window.customElements - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcustomelements
chrome full support 54edge full support 79firefox full support 63 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 41safari full support 10.1webview android full support 54
chrome android full support 54firefox android full support 63 full support 63 no support 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.customelements.enabled preference (nee...
Window.devicePixelRatio - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdevicepixelratio
chrome full support 1edge full support 12firefox full support 18ie full support ...
... 11opera full support 11.1safari full support 3webview android full support 1
chrome android full support 18firefox android full support 18opera android full support 11.1safari ios full support 1samsung internet android full support 1.0legend full support full support ...
Window.event - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetevent
chrome full support 1edge full support 12firefox full support 63notes disabled full support ...
...to change preferences in firefox, visit about:config.ie full support 4opera full support 7safari full support 1.1webview android full support 1
chrome android full support 18firefox android full support 63notes disabled full support 63notes disabled notes this was briefly enabled by default in 65, then removed again while related compatibility issues are sorted out (see bug 1520756).disabled from version 63: th...
Window.fullScreen - Web APIs
syntax isinfullscreen = windowref.fullscreen; with
chrome privileges, the property is read-write, otherwise it is read-only.
... bear in mind that if you try to set this property without
chrome privileges, it will not throw an exception and instead just silently fail.
Window.minimize() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetminimize non-standard
chrome no support noedge no support nofirefox no support noie ?
... webview android no support no
chrome android no support nofirefox android no support noopera android ?
Window.navigator - Web APIs
if (susrag.indexof("firefox") > -1) { sbrowser = "mozilla firefox"; // "mozilla/5.0 (x11; ubuntu; linux x86_64; rv:61.0) gecko/20100101 firefox/61.0" } else if (susrag.indexof("samsungbrowser") > -1) { sbrowser = "samsung internet"; // "mozilla/5.0 (linux; android 9; samsung sm-g955f build/ppr1.180610.011) applewebkit/537.36 (khtml, like gecko) samsungbrowser/9.4
chrome/67.0.3396.87 mobile safari/537.36 } else if (susrag.indexof("opera") > -1 || susrag.indexof("opr") > -1) { sbrowser = "opera"; // "mozilla/5.0 (macintosh; intel mac os x 10_14_0) applewebkit/537.36 (khtml, like gecko)
chrome/70.0.3538.102 safari/537.36 opr/57.0.3098.106" } else if (susrag.indexof("trident") > -1) { sbrowser = "microsoft internet explorer"; // "mozilla/5.0 (windows nt 10.0...
...; wow64; trident/7.0; .net4.0c; .net4.0e; zoom 3.6.0; wbx 1.0.0; rv:11.0) like gecko" } else if (susrag.indexof("edge") > -1) { sbrowser = "microsoft edge"; // "mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko)
chrome/58.0.3029.110 safari/537.36 edge/16.16299" } else if (susrag.indexof("
chrome") > -1) { sbrowser = "google
chrome or chromium"; // "mozilla/5.0 (x11; linux x86_64) applewebkit/537.36 (khtml, like gecko) ubuntu chromium/66.0.3359.181
chrome/66.0.3359.181 safari/537.36" } else if (susrag.indexof("safari") > -1) { sbrowser = "apple safari"; // "mozilla/5.0 (iphone; cpu iphone os 11_4 like mac os x) applewebkit/605.1.15 (khtml, like gecko) version/11.0 mobile/15e148 safari/604.1 980x1306" } else { sbrowser = "unknown"; } alert("you are using...
Window.print() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetprint
chrome full support 1notes full support 1notes notes starting with
chrome 46, this method is blocked inside an <iframe> unless its sandbox attribute has the value allo...
...nless its sandbox attribute has the value allow-modals.safari full support 1.1webview android full support 1notes full support 1notes notes starting with webview 46, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.
chrome android full support 18notes full support 18notes notes starting with
chrome 46, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.firefox android no support nonotes no support ...
Window.releaseEvents() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetreleaseevents deprecatednon-standard
chrome full support yesedge full support 12firefox full support yesie ?
... opera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown compatibility unknownnon-standard.
window.requestIdleCallback() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetrequestidlecallback experimental
chrome full support 47edge full support 79firefox full support 55notes full sup...
... no support 53 — 55notes notes implemented but disabled by default.ie no support noopera full support 34safari no support nowebview android full support 47
chrome android full support 47firefox android full support 55notes full support 55notes notes enabled by default.
Window.restore() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetrestore
chrome no support noedge no support nofirefox no support noie ?
... webview android no support no
chrome android no support nofirefox android no support noopera android ?
Window.routeEvent() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetrouteevent deprecatednon-standard
chrome no support noedge no support nofirefox no support noie ?
... webview android no support no
chrome android no support nofirefox android no support noopera android ?
Window.stop() - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetstop
chrome full support yesedge full support 14firefox full support yesie no support ...
... noopera full support yessafari full support yeswebview android full support yes
chrome android full support yesfirefox android full support yesopera android full support yessafari ios full support yessamsung internet android full support yeslegend full support full support no support no support ...
WindowOrWorkerGlobalScope.fetch() - Web APIs
starting with
chrome 50, this property also takes a federatedcredential instance or a passwordcredential instance.
...in
chrome the default is follow (before
chrome 47 it defaulted to manual).
WorkerGlobalScope.navigator - Web APIs
r); inside a worker (which would basically be the equivalent of self.console.log(self.navigator);, as these are being called on the worker scope, which can be referenced with workerglobalscope.self), you will get a workernavigator object written to the console — something like the following: object {online: true, useragent: "mozilla/5.0 (macintosh; intel mac os x 10_10_1) ap…ml, like gecko)
chrome/40.0.2214.93 safari/537.36", product: "gecko", platform: "macintel", appversion: "5.0 (macintosh; intel mac os x 10_10_1) applewebki…ml, like gecko)
chrome/40.0.2214.93 safari/537.36"…} appcodename: "mozilla" appname: "netscape" appversion: "5.0 (macintosh; intel mac os x 10_10_1) applewebkit/537.36 (khtml, like gecko)
chrome/40.0.2214.93 safari/537.36" hardwareconcurrency: 4 ...
... online: true platform: "macintel" product: "gecko" useragent: "mozilla/5.0 (macintosh; intel mac os x 10_10_1) applewebkit/537.36 (khtml, like gecko)
chrome/40.0.2214.93 safari/537.36" __proto__: object you could use this navigator object to return more information about the runtime envinronment, as you might do with a normal navigator object.
WorkerNavigator.permissions - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpermissions experimental
chrome full support 43edge full support ≤79firefox no support noie ?
... opera full support 30safari no support nowebview android full support 43
chrome android full support 43firefox android no support noopera android full support 30safari ios no support nosamsung internet android full support 4.0legend full support full support no support no support ...
WritableStreamDefaultWriter.ready - Web APIs
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetready experimental
chrome full support 59edge full support 16firefox no support noie no support ...
... webview android full support 59
chrome android full support 59firefox android no support noopera android full support 43safari ios ?
Web applications and ARIA FAQ - Accessibility
browsers aria is supported in the following browsers: browser minimum version notes firefox 3.0+ works with nvda, jaws 10+, and orca
chrome latest screen reader support still experimental as of
chrome 15 safari 4+ safari 5 support is much improved.
... several inspecting and debugging tools exist to help you test aria in action: object inspector on windows accessibility inspector on os x accprobe on linux firebug's dom inspector the accessibility inspector for firebug the audits tab in
chrome devtools there are several free or open source screen readers that can be used to do hands-on testing with aria.
::-webkit-file-upload-button - CSS: Cascading Style Sheets
this pseudo-element is non-standard and only supported in webkit/blink compatible browsers like
chrome, opera and safari (indicated by the -webkit prefix).
...the screenshot to the left shows what the button will look like if you are without access to
chrome, opera or safari.
::slotted() - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet::slotted
chrome full support 50edge full support 79firefox full support 63 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 37safari full support 10webview android full support 50
chrome android full support 50firefox android full support 63 full support 63 no support 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to...
:checked - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:checked
chrome full support 1notes full support 1notes notes on macos, styling <option&rt; elements has no effect.edge full support ...
... 9notes full support 9notes notes on macos, styling <option&rt; elements has no effect.safari full support 3.1notes full support 3.1notes notes styling <option&rt; elements has no effect.webview android full support 2
chrome android full support 18firefox android full support 4notes full support 4notes notes from firefox 56, <option&rt; elements cannot be styled.opera android full support 10.1safari ios full support ...
:defined - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:defined
chrome full support 54edge full support 79firefox full support 63ie no support ...
... noopera full support 41safari full support 10webview android full support 54
chrome android full support 54firefox android full support 63opera android full support 41safari ios full support 10samsung internet android full support 6.0legend full support full support no support no support ...
:has() - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:has()
chrome no support nonotes no support nonotes notes see bug 669058edge no support nonotes no support ...
... no support nonotes no support nonotes notes see bug 418039ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support nonotes no support nonotes notes see bug 418039opera android no support nosafari ios no support nosamsung internet android ...
:host() - CSS: Cascading Style Sheets
browser compatibility desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:host()
chrome full support 54edge full support 79firefox full support 63 full support ...
... noopera full support 41safari full support 10notes full support 10notes notes certain css selectors do not work (:host > .local-child) and styling slotted content (::slotted) is buggy.webview android full support 54
chrome android full support 54firefox android full support 63 full support 63 no support 61 — 63disabled disabled from version 61 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to...
:host-context() - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:host-context()
chrome full support 54edge full support 79firefox no support nonotes no support ...
... nonotes notes see bug 1082060.ie no support noopera full support 41safari no support nowebview android full support 54
chrome android full support 54firefox android no support nonotes no support nonotes notes see bug 1082060.opera android full support 41safari ios no support nosamsung internet android full support 6.0legend ...
:host - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:host
chrome full support 54edge full support 79firefox full support 63 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 41safari full support 10webview android full support 54
chrome android full support 54firefox android full support 63 full support 63 no support 61 — 63disabled disabled from version 61 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to...
:link - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:link
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 3opera full support 3.5safari full support 1webview android full support 1.5
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 3.2samsung internet android full support 1.0legend full support full support ...
:read-only - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:read-only
chrome full support 1edge full support 13firefox full support 78 full support ...
... 78 full support 1.5prefixed prefixed implemented with the vendor prefix: -moz-ie no support noopera full support 9safari full support 4webview android full support ≤37
chrome android full support 18firefox android full support 4prefixed full support 4prefixed prefixed implemented with the vendor prefix: -moz-opera android full support 10.1safari ios full support ...
:read-write - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet:read-write
chrome full support 1edge full support 13firefox full support 78 full support ...
... 78 full support 1.5prefixed prefixed implemented with the vendor prefix: -moz-ie no support noopera full support 9safari full support 4webview android full support ≤37
chrome android full support 18firefox android full support 4prefixed full support 4prefixed prefixed implemented with the vendor prefix: -moz-opera android full support 10.1safari ios full support ...
@charset - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet@charset
chrome full support 2edge full support 12firefox full support 1.5notes full support ...
... 5.5notes notes from internet explorer 5.5 to ie 7 (inclusive), internet explorer supported an invalid syntax where the character encoding is not between single or double quotes.opera full support 9safari full support 4webview android full support 2
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 4samsung internet android full support 1.0legend ...
@import - CSS: Cascading Style Sheets
chrome://communicator/skin/).
...<mf-value>where <mf-name> = <ident><mf-value> = <number> | <dimension> | <ident> | <ratio> examples importing css rules @import 'custom.css'; @import url("
chrome://communicator/skin/"); importing css rules conditionally @import url("fineprint.css") print; @import url("bluish.css") speech; @import "common.css" screen; @import url('landscape.css') screen and (orientation:landscape); specifications specification status comment css cascading and inheritance level 4the definition of 'the @import rule' in that specification.
animation-delay - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetanimation-delay
chrome full support 43 full support 43 full support 3prefixed prefixed implemented with the vendor prefix: -webki...
... 9 full support 4prefixed prefixed implemented with the vendor prefix: -webkit-webview android full support 43 full support 43 full support ≤37prefixed prefixed implemented with the vendor prefix: -webkit-
chrome android full support 43 full support 43 full support 18prefixed prefixed implemented with the vendor prefix: -webkit-firefox android full support 16 full support 16 ...
border-bottom-width - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-bottom-width
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 4opera full support 3.5safari full support 1webview android full support 2.3
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0legend full support full support see also the other border-width-related css properties: border-left-width, border-right-widt...
border-collapse - CSS: Cascading Style Sheets
e of browser engines html <table class="separate"> <caption><code>border-collapse: separate</code></caption> <tbody> <tr><th>browser</th> <th>layout engine</th></tr> <tr><td class="fx">firefox</td> <td class="gk">gecko</td></tr> <tr><td class="ed">edge</td> <td class="tr">edgehtml</td></tr> <tr><td class="sa">safari</td> <td class="wk">webkit</td></tr> <tr><td class="ch">
chrome</td> <td class="bk">blink</td></tr> <tr><td class="op">opera</td> <td class="bk">blink</td></tr> </tbody> </table> <table class="collapse"> <caption><code>border-collapse: collapse</code></caption> <tbody> <tr><th>browser</th> <th>layout engine</th></tr> <tr><td class="fx">firefox</td> <td class="gk">gecko</td></tr> <tr><td class="ed">edge</td> <td class="tr">edgehtml</td></...
...tr> <tr><td class="sa">safari</td> <td class="wk">webkit</td></tr> <tr><td class="ch">
chrome</td> <td class="bk">blink</td></tr> <tr><td class="op">opera</td> <td class="bk">blink</td></tr> </tbody> </table> css .collapse { border-collapse: collapse; } .separate { border-collapse: separate; } table { display: inline-table; margin: 1em; border: dashed 5px; } table th, table td { border: solid 3px; } .fx { border-color: orange blue; } .gk { border-color: black red; } .ed { border-color: blue gold; } .tr { border-color: aqua; } .sa { border-color: silver blue; } .wk { border-color: gold blue; } .ch { border-color: red yellow green blue; } .bk { border-color: navy blue teal aqua; } .op { border-color: red; } result specifications specification status ...
border-left-style - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-left-style
chrome full support 1edge full support 12firefox full support 1notes full support ...
...this has been fixed in firefox 50.ie full support 5.5opera full support 9.2safari full support 1webview android full support 2.3
chrome android full support 18firefox android full support 14notes full support 14notes notes prior to firefox 50, border styles of rounded corners (with border-radius) were always rendered as if border-bottom-style was solid.
border-left - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-left
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 4opera full support 3.5safari full support 1webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0legend full support full support ...
border-right-style - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-right-style
chrome full support 1edge full support 12firefox full support 1notes full support ...
...this has been fixed in firefox 50.ie full support 5.5opera full support 9.2safari full support 1webview android full support ≤37
chrome android full support 18firefox android full support 14notes full support 14notes notes prior to firefox 50, border styles of rounded corners (with border-radius) were always rendered as if border-bottom-style was solid.
border-right - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-right
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 5.5opera full support 9.2safari full support 1webview android full support ≤37
chrome android full support 18firefox android full support 14opera android full support 14safari ios full support 1samsung internet android full support 1.0legend full support full support ...
border-top - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-top
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 4opera full support 3.5safari full support 1webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0legend full support full support ...
border - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 4opera full support 3.5safari full support 1webview android full support ≤37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0legend full support full support ...
box-align - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbox-align deprecatednon-standard
chrome full support 1prefixed full support 1prefixed prefixed implemented with the vendor prefix: -webkit-edge full support ...
... 3prefixed prefixed implemented with the vendor prefix: -webkit- no support 1.1 — 3prefixed prefixed implemented with the vendor prefix: -khtml-webview android full support ≤37prefixed full support ≤37prefixed prefixed implemented with the vendor prefix: -webkit-
chrome android full support 18prefixed full support 18prefixed prefixed implemented with the vendor prefix: -webkit-firefox android full support 4prefixed full support 4prefixed prefixed implemented with the vendor prefix: -...
box-direction - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbox-direction deprecatednon-standard
chrome full support 1prefixed full support 1prefixed prefixed implemented with the vendor prefix: -webkit-edge full supp...
... 3prefixed prefixed implemented with the vendor prefix: -webkit- no support 1.1 — 3prefixed prefixed implemented with the vendor prefix: -khtml-webview android full support ≤37prefixed full support ≤37prefixed prefixed implemented with the vendor prefix: -webkit-
chrome android full support 18prefixed full support 18prefixed prefixed implemented with the vendor prefix: -webkit-firefox android full support 4prefixed full support 4prefixed prefixed implemented with the vendor prefix: -...
column-count - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcolumn-count
chrome full support 50 full support 50 full support 1prefixed prefixed implemented with the vendor prefix: -webkit-e...
... 9 full support 3prefixed prefixed implemented with the vendor prefix: -webkit-webview android full support 50 full support 50 full support ≤37prefixed prefixed implemented with the vendor prefix: -webkit-
chrome android full support 50 full support 50 full support 18prefixed prefixed implemented with the vendor prefix: -webkit-firefox android full support 52 full support 52 ...
direction - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdirection
chrome full support 2edge full support 12firefox full support 1ie full support ...
... 5.5opera full support 9.2safari full support 1webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0legend full support full support ...
element() - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetelement() experimental
chrome no support noedge no support nofirefox full support 57prefixed full support ...
...� 29prefixed notes prefixed implemented with the vendor prefix: -moz-notes -moz-element() is limited to background-image and background.ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 60prefixed full support 60prefixed prefixed implemented with the vendor prefix: -moz- no support 29 — 60prefixed notes prefixed implemented with the vendor prefix: -moz-notes -moz-eleme...
empty-cells - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetempty-cells
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 8opera full support 4safari full support 1.2webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 3.1samsung internet android full support 1.0legend full support full support ...
font-variant-caps - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-variant-caps
chrome full support 52edge full support 79firefox full support 34 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 39safari no support nowebview android full support 52
chrome android full support 52firefox android full support 34 full support 34 no support 24 — 34disabled disabled from version 24 until version 34 (exclusive): this feature is behind the layout.css.font-features.enabled preference (needs to be...
font-variant-position - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-variant-position
chrome no support noedge no support nofirefox full support 34 full support ...
...to change preferences in firefox, visit about:config.ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android full support 34 full support 34 no support 24 — 34disabled disabled from version 24 until version 34 (exclusive): this feature is behind the layout.css.font-features.enabled preference (needs to be s...
image-set() - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetimage-set()
chrome full support 21prefixed full support 21prefixed prefixed implemented with the vendor prefix: -webkit-edge full support ...
...see bug 160934.webview android full support 4.4prefixed full support 4.4prefixed prefixed implemented with the vendor prefix: -webkit-
chrome android full support 25prefixed full support 25prefixed prefixed implemented with the vendor prefix: -webkit-firefox android no support nonotes no support nonotes notes see bug 1107646.opera android fu...
initial - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetinitial
chrome full support 1edge full support 13firefox full support 19 full support ...
... 19 no support 1 — 24prefixed prefixed implemented with the vendor prefix: -moz-ie no support noopera full support 15safari full support 1.2webview android full support 1
chrome android full support 18firefox android full support 19 full support 19 no support 4 — 24prefixed prefixed implemented with the vendor prefix: -moz-opera android full support 14safari ios full supp...
<integer> - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internet<integer>
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 3opera full support 3.5safari full support 1webview android full support ≤37
chrome android full support 18firefox android full support 4opera android full support 10.1safari ios full support 1samsung internet android full support 1.0legend full support full support ...
object-fit - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetobject-fit
chrome full support 31edge full support 16notes full support 16notes notes edge supports object-fit on img elements o...
... noopera full support 19 full support 19 full support 11.6prefixed prefixed implemented with the vendor prefix: -o-safari full support 10webview android full support 4.4.3
chrome android full support 31firefox android full support 36opera android full support 19 full support 19 full support 12prefixed prefixed implemented with the vendor prefix: -o-sa...
orphans - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetorphans
chrome full support 25edge full support 12firefox no support noie full support ...
... 8opera full support 9.2safari full support 1.3webview android full support ≤37
chrome android full support 25firefox android no support noopera android full support 14safari ios full support 1samsung internet android full support 1.5legend full support full support no support no support see also wi...
outline-offset - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetoutline-offset
chrome full support 1edge full support 15firefox full support 1.5ie no support ...
... noopera full support 9.5safari full support 1.2webview android full support 37
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0legend full support full support no support no support ...
page-break-after - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpage-break-after
chrome full support 1edge full support 12firefox full support 1notes full support ...
... 1notes notes the values avoid, left, and right are unsupported.ie full support 4opera full support 7safari full support 1.2webview android full support 37
chrome android full support 18firefox android full support 4notes full support 4notes notes the values avoid, left, and right are unsupported.opera android full support 14safari ios full support 1samsung internet android ...
page-break-before - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpage-break-before
chrome full support 1edge full support 12firefox full support 1notes full support ...
... 1notes notes the values avoid, left, and right are unsupported.ie full support 4opera full support 7safari full support 1.2webview android full support 37
chrome android full support 18firefox android full support 4notes full support 4notes notes the values avoid, left, and right are unsupported.opera android full support 14safari ios full support 1samsung internet android ...
paint() - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpaint()
chrome full support 65edge full support 79firefox no support noie no support ...
... noopera full support 52safari no support nowebview android full support 65
chrome android full support 65firefox android no support noopera android full support 47safari ios no support nosamsung internet android full support 9.2legend full support full support no support no support see also paintworklet...
right - CSS: Cascading Style Sheets
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetright
chrome full support 1edge full support 12firefox full support 1ie full support ...
... 5.5opera full support 5safari full support 1webview android full support 1
chrome android full support 18firefox android full support 4opera android full support 14safari ios full support 1samsung internet android full support 1.0legend full support full support ...
Event reference
beforeinstallprompt event
chrome specific a user is prompted to save a website to a home screen on mobile.
... ussdreceived firefox os specific a new ussd message is received mscontentzoom microsoft specific msmanipulationstatechanged microsoft specific mspointerhover microsoft specific mozilla-specific events note: these events are never exposed to web content and can only be used in a xul
chrome content context.
Cross-browser audio basics - Developer guides
desktop desktop browser version
chrome 4+ firefox 3.5+ internet explorer 9+ opera 10.5+ safari 4+ mobile mobile browser version
chrome (android) 32+ firefox (android) 26+ ie mobile 10+ opera mobile 11+ safari (ios) 4+ android browser 2.3+ blackberry 7+ audio codec support...
... browser ogg mp3 aac pcm opus firefox 3.5+ ✓ ✓ *26+ ✓ ✓ *14+ safari 5+ ✓ ✓
chrome 6+ ✓ ✓ ✓ ✓ *9+ opera 10.5+ ✓ internet explorer 9+ ✓ ✓ firefox mobile ✓ ✓ ✓ ✓ ✓ safari ios3+ ✓ ✓ ✓ *4.2+
chrome mobile ✓ ✓ ✓ ✓ opera mobile ✓ ✓ ✓ ✓ internet explorer mobile ✓ ✓ ✓ ✓ android 2.3+ ✓ ✓ ✓ ✓ note: we are at the stage where nearly all browsers support mp3 — for more details visit this page on media format browser compa...
Making content editable - Developer guides
for example, even something as simple as what happens when you press enter/return to create a new line of text inside an editable element was handled differently across the major browsers (firefox inserted <br> elements, ie/opera used <p>,
chrome/safari used <div>).
...as of firefox 60, firefox will be updated to wrap the separate lines in <div> elements, matching the behavior of
chrome, modern opera, edge, and safari.
<button>: The Button element - HTML: Hypertext Markup Language
desktop browsers windows 8.1 os x 10.x firefox yes - firefox 30.0 no (even with a tabindex) firefox 63
chrome yes -
chrome 35 yes -
chrome 65 safari n/a no (even with a tabindex) safari 12 (bug 22261) internet explorer yes - internet explorer 11 n/a presto yes - opera 12 yes - opera 12 does tapping on a <button> give it focus?
... mobile browsers ios 7.1.2 android 4.4.4 safari mobile no (even with a tabindex) n/a
chrome 35 no (even with a tabindex) yes specifications specification status comment html living standardthe definition of '<button>' in that specification.
<content>: The Shadow DOM Content Placeholder element (obsolete) - HTML: Hypertext Markup Language
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontent deprecatednon-standard
chrome full support 35edge full support 79firefox no support 33 — 59disabled no support ...
...to change preferences in firefox, visit about:config.ie no support noopera full support 26safari no support nowebview android full support 37
chrome android full support 37firefox android no support 33 — 59disabled no support 33 — 59disabled disabled from version 33 until version 59 (exclusive): this feature is behind the dom.webcomponents.enabled preference (needs to be set to true).
<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 microsoft icon image/x-icon .ico, .cur
chrome, edge, firefox, internet explorer, opera, safari jpeg ...
...joint photographic expert group image image/jpeg .jpg, .jpeg, .jfif, .pjpeg, .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...
<input type="date"> - HTML: Hypertext Markup Language
among browsers with custom interfaces for selecting dates are
chrome and opera, whose data control looks like so: the edge date control looks like: and the firefox date control looks like this: value a domstring representing a date in yyyy-mm-dd format, or empty events change and input supported common attributes autocomplete, list, readonly, and step idl attributes list, value, valueasdate, valueasnumber.
...we had to put the icon on a <span> next to the input, not on the input itself, because in
chrome at least the input's generated content is placed inside the form control, and can't be styled or shown effectively.
<listing> - HTML: Hypertext Markup Language
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetlisting deprecated
chrome no support noedge no support nofirefox no support nonotes no support ...
... nonotes notes before firefox 4, this element implemented the htmlspanelement interface instead of the standard htmlelement interface.ie no support noopera no support nosafari no support nowebview android no support no
chrome android no support nofirefox android no support nonotes no support nonotes notes before firefox 4, this element implemented the htmlspanelement interface instead of the standard htmlelement interface.opera android no support ...
<meter>: The HTML Meter element - HTML: Hypertext Markup Language
examples simple example html <p>heat the oven to <meter min="200" max="500" value="350">350 degrees</meter>.</p> result on google
chrome, the resulting meter looks like this: high and low range example note that in this example the min attribute is omitted.
... html <p>he got a <meter low="69" high="80" max="100" value="84">b</meter> on the exam.</p> result on google
chrome, the resulting meter looks like this: specifications specification status comment html living standardthe definition of '<meter>' in that specification.
<video>: The Video Embed element - HTML: Hypertext Markup Language
chrome 70.0) autoplay doesn't work if no muted attribute is present.
... disableremoteplayback a boolean attribute used to disable the capability of remote playback in devices that are attached using wired (hdmi, dvi, etc.) and wireless technologies (miracast,
chromecast, dlna, airplay, etc).
Preloading content with rel="preload" - HTML: Hypertext Markup Language
because of the potential to waste users bandwidth,
chrome treats prerender as a nostate prefetch instead.
... <link rel="subresource"> was supported in
chrome a while ago, and was intended to tackle the same issue as preload, but it had a problem: there was no way to work out a priority for the items (as didn't exist back then), so they all got fetched with fairly low priority.
MIME types (IANA media types) - HTTP
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 microsoft icon image/x-icon .ico, .cur
chrome, edge, firefox, internet explorer, opera, safari jpeg ...
...joint photographic expert group image image/jpeg .jpg, .jpeg, .jfif, .pjpeg, .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...
X-XSS-Protection - HTTP
the http x-xss-protection response header is a feature of internet explorer,
chrome and safari that stops pages from loading when they detect reflected cross-site scripting (xss) attacks.
...
chrome has removed their xss auditor firefox have not, and will not implement x-xss-protection edge have retired their xss filter this means that if you do not need to support legacy browsers, it is recommended that you use content-security-policy without allowing unsafe-inline scripts instead.
HTTP Index - HTTP
151 feature-policy: xr this feature policy directive was at one point defined as xr (but implemented only in
chrome as vr), use xr-spatial-tracking instead.
... 204 x-xss-protection http, reference, security, xss, header the http x-xss-protection response header is a feature of internet explorer,
chrome and safari that stops pages from loading when they detect reflected cross-site scripting (xss) attacks.
RangeError: precision is out of range - JavaScript
message rangeerror: the number of fractional digits is out of range (edge) rangeerror: the precision is out of range (edge) rangeerror: precision {0} out of range (firefox) rangeerror: toexponential() argument must be between 0 and 20 (
chrome) rangeerror: tofixed() digits argument must be between 0 and 20 (
chrome) rangeerror: toprecision() argument must be between 1 and 21 (
chrome) error type rangeerror what went wrong?
... method firefox (spidermonkey)
chrome, opera (v8) number.prototype.toexponential() 0 to 100 0 to 20 number.prototype.tofixed() -20 to 100 0 to 20 number.prototype.toprecision() 1 to 100 1 to 21 examples invalid cases 77.1234.toexponential(-1); // rangeerror 77.1234.toexponential(101); // rangeerror 2.34.tofixed(-100); // rangeerror 2.34.tofixed(1001); // rangeerror 1234.5.toprecision(-1); // range...
TypeError: cannot use 'in' operator to search for 'x' in 'y' - JavaScript
message typeerror: invalid operand to 'in' (edge) typeerror: right-hand side of 'in' should be an object, got 'x' (firefox) typeerror: cannot use 'in' operator to search for 'x' in 'y' (firefox,
chrome) error type typeerror what went wrong?
... var foo = null; "bar" in foo; // typeerror: cannot use 'in' operator to search for 'bar' in 'foo' (
chrome) // typeerror: right-hand side of 'in' should be an object, got null (firefox) the in operator always expects an object.
Function.name - JavaScript
above class definition in es2015 syntax will behave in
chrome or firefox similar to the following snippet in es5 syntax: function foo() {} object.defineproperty(foo, 'name', { writable: true }); foo.name = function() {}; trying to obtain the class of fooinstance via fooinstance.constructor.name won't give us the class name at all but a reference to the static class method.
... example: let fooinstance = new foo(); console.log(fooinstance.constructor.name); // logs function name() you may also see from the es5 syntax example that in
chrome or firefox our static definition of foo.name becomes writable.
Proxy - JavaScript
{ value = [value]; } // the default behavior to store the value obj[prop] = value; // indicate success return true; } }); console.log(products.browsers); // ['internet explorer', 'netscape'] products.browsers = 'firefox'; // pass a string (by mistake) console.log(products.browsers); // ['firefox'] <- no problem, the value is an array products.latestbrowser = '
chrome'; console.log(products.browsers); // ['firefox', '
chrome'] console.log(products.latestbrowser); // '
chrome' finding an array item object by its property this proxy extends an array with some utility features.
...rn result; } // get products by type if (prop in types) { return types[prop]; } // get product types if (prop === 'types') { return object.keys(types); } return undefined; } }); console.log(products[0]); // { name: 'firefox', type: 'browser' } console.log(products['firefox']); // { name: 'firefox', type: 'browser' } console.log(products['
chrome']); // undefined console.log(products.browser); // [{ name: 'firefox', type: 'browser' }, { name: 'seamonkey', type: 'browser' }] console.log(products.types); // ['browser', 'mailer'] console.log(products.number); // 3 a complete traps list example now in order to create a complete sample traps list, for didactic purposes, we will try to proxify a non-native object that is par...
WebAssembly.CompileError() constructor - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jscompileerror() constructor
chrome full support 57edge full support 16firefox full support 52notes full su...
...pport 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support ...
WebAssembly.Global() constructor - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsglobal() constructor
chrome full support 69edge no support nofirefox full support 62ie no support ...
... noopera no support nosafari no support nowebview android full support 69
chrome android full support 69firefox android full support 62opera android no support nosafari ios no support nosamsung internet android full support 10.0nodejs no support nolegend full support full support ...
WebAssembly.Instance() constructor - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsinstance() constructor
chrome full support 57edge full support 16firefox full support 52notes full suppor...
...t 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11...
WebAssembly.Instance.prototype.exports - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsexports
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung interne...
WebAssembly.LinkError() constructor - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jslinkerror() constructor
chrome full support 57edge full support 16firefox full support 52notes full suppo...
...rt 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 1...
WebAssembly.Memory.prototype.buffer - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsbuffer
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung internet...
WebAssembly.Memory.prototype.grow() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsgrow
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung internet a...
WebAssembly.Module() constructor - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsmodule() constructor
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11sa...
WebAssembly.Module.customSections() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jscustomsections
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung ...
WebAssembly.Module.exports() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsexports
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung interne...
WebAssembly.Module.imports() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsimports
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung interne...
WebAssembly.RuntimeError() constructor - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsruntimeerror() constructor
chrome full support 57edge full support 16firefox full support 52notes full su...
...pport 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support ...
WebAssembly.Table() constructor - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jstable() constructor
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11sam...
WebAssembly.Table.prototype.get() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsget
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung internet an...
WebAssembly.Table.prototype.grow() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsgrow
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung internet a...
WebAssembly.Table.prototype.length - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jslength
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung internet...
WebAssembly.Table.prototype.set() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsset
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung internet an...
WebAssembly.compile() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jscompile
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung interne...
WebAssembly.compileStreaming() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jscompilestreaming
chrome full support 61edge full support 16firefox full support 58ie no support ...
... noopera full support 47safari no support nowebview android full support 61
chrome android full support 61firefox android full support 58opera android full support 45safari ios no support nosamsung internet android full support 8.0nodejs no support nolegend full support full support ...
WebAssembly.instantiate() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsinstantiate
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung int...
WebAssembly.instantiateStreaming() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsinstantiatestreaming
chrome full support 61edge full support 16firefox full support 58ie no support ...
... noopera full support 47safari no support nowebview android full support 61
chrome android full support 61firefox android full support 58opera android full support 45safari ios no support nosamsung internet android full support 8.0nodejs no support nolegend full support full support ...
WebAssembly.validate() - JavaScript
desktopmobileserver
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsvalidate
chrome full support 57edge full support 16firefox full support 52notes full support ...
... 52notes notes disabled in the firefox 52 extended support release (esr).ie no support noopera full support 44safari full support 11webview android full support 57
chrome android full support 57firefox android full support 52notes full support 52notes notes disabled in the firefox 52 extended support release (esr).opera android full support 43safari ios full support 11samsung intern...
function declaration - JavaScript
typeof foo is ${typeof foo}`); if (false) { function foo(){ return 1; } } // in
chrome: // 'foo' name is hoisted.
...typeof foo is ${typeof foo}`); if (true) { function foo(){ return 1; } } // in
chrome: // 'foo' name is hoisted.
Performance fundamentals - Web Performance
general application performance analysis firefox,
chrome, and other browsers include built-in tools that can help you diagnose slow page rendering.
... testcases and submitting bugs if the firefox and
chrome developer tools don't help you find a problem, or if they seem to indicate that the web browser has caused the problem, try to provide a reduced test case that maximally isolates the problem.
How to make PWAs installable - Progressive web apps (PWAs)
requirements to make the web site installable, it needs the following things in place: a web manifest, with the correct fields filled in the web site to be served from a secure (https) domain an icon to represent the app on the device a service worker registered, to allow the app to work offline (this is required only by
chrome for android currently) currently, only the chromium-based browsers such as
chrome, edge, and samsung internet require the service worker.
...browser support is currently limited to firefox for android 58+, mobile
chrome and android webview 31+, and opera for android 32+, but this should improve in the near future.
alignment-baseline - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetalignment-baseline
chrome ?
...
chrome android ?
baseline-shift - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetbaseline-shift
chrome ?
...
chrome android ?
clip-path - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetclip-path
chrome ?
...
chrome android ?
clip-rule - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetclip-rule
chrome ?
...
chrome android ?
color-interpolation - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcolor-interpolation
chrome ?
...
chrome android ?
color-profile - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcolor-profile deprecated
chrome ?
...
chrome android ?
color - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcolor
chrome ?
...
chrome android ?
cursor - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetcursor
chrome ?
...
chrome android ?
dominant-baseline - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetdominant-baseline
chrome ?
...
chrome android ?
fill-opacity - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfill-opacity
chrome ?
...
chrome android ?
fill-rule - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfill-rule
chrome ?
...
chrome android ?
fill - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfill
chrome ?
...
chrome android ?
filter - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilter
chrome ?
...
chrome android ?
font-family - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-family
chrome ?
...
chrome android ?
font-style - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-style
chrome ?
...
chrome android ?
font-weight - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-weight
chrome ?
...
chrome android ?
pointer-events - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetpointer-events
chrome ?
...
chrome android ?
shape-rendering - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetshape-rendering
chrome ?
...
chrome android ?
stroke-dasharray - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetstroke-dasharray
chrome ?
...
chrome android ?
stroke-dashoffset - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetstroke-dashoffset
chrome ?
...
chrome android ?
stroke-linecap - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetstroke-linecap
chrome ?
...
chrome android ?
stroke-miterlimit - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetstroke-miterlimit
chrome ?
...
chrome android ?
stroke-opacity - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetstroke-opacity
chrome ?
...
chrome android ?
stroke-width - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetstroke-width
chrome ?
...
chrome android ?
stroke - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetstroke
chrome ?
...
chrome android ?
text-anchor - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettext-anchor
chrome ?
...
chrome android ?
text-rendering - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internettext-rendering
chrome ?
...
chrome android ?
writing-mode - SVG: Scalable Vector Graphics
desktopmobile
chromeedgefirefoxinternet exploreroperasafariandroid webview
chrome for androidfirefox for androidopera for androidsafari on iossamsung internetwriting-mode
chrome ?
...
chrome android ?
How to fix a website with blocked mixed content - Web security
this follows a practice adopted by internet explorer (since version 9) and
chrome.
... note that since mixed content blocking already happens in
chrome and internet explorer, it is very likely that if your website works in both of these browsers, it will work equally well in firefox with mixed content blocking.
Mixed content - Web security
<object> (data attribute) navigator.sendbeacon (url attribute) other resource types like web fonts and workers may be considered active mixed content, as they are in
chrome.
...
chrome allows mixed content on http://127.0.0.1/ and http://localhost/.
Same-origin policy - Web security
restrictions vary by browser: internet explorer, firefox,
chrome, safari (scroll down to cve-2010-0051) and opera.
...firefox and
chrome use the public suffix list to determine if a domain is a public suffix.
Using templates and slots - Web Components
for example: <template id="my-paragraph"> <style> p { color: white; background-color: #666; padding: 5px; } </style> <p>my paragraph</p> </template> now we can use it by just adding it to our html document: <my-paragraph></my-paragraph> note: templates are well-supported in browsers; the shadow dom api is supported by default in firefox (version 63 onwards),
chrome, opera, safari, and edge (starting with version 79).
...this has more limited support than <template>, available since
chrome 53, opera 40, safari 10, firefox 59, and edge 79.
Introduction to using XPath in JavaScript - XPath
evaluating against an xml document within an extension the following uses an xml document located at
chrome://yourextension/content/peopledb.xml as an example.
... var req = new xmlhttprequest(); req.open("get", "
chrome://yourextension/content/peopledb.xml", false); req.send(null); var xmldoc = req.responsexml; var nsresolver = xmldoc.creatensresolver( xmldoc.ownerdocument == null ?
core/namespace - Archive of obsolete content
also, multiple namespaces can be used with one object: // ./widget.js let { cu } = require('
chrome'); let { ns } = require('sdk/core/namespace'); let { view } = require('./view'); // note this is completely independent from view's internal namespace object.
system/events - Archive of obsolete content
var events = require("sdk/system/events"); var { ci } = require("
chrome"); function listener(event) { var channel = event.subject.queryinterface(ci.nsihttpchannel); channel.setrequestheader("user-agent", "mybrowser/1.0", false); } events.on("http-on-modify-request", listener); globals functions emit(type, event) send an event to observer service parameters type : string the event type.
Bookmarks - Archive of obsolete content
ed when my add-on is loaded onload: function() { bmsvc.addobserver(myext_bookmarklistener, false); }, // this function is called when my add-on is unloaded onunload: function() { bmsvc.removeobserver(myext_bookmarklistener); }, dosomething: function() { alert("did something."); } }; see also nsinavbookmarksservice nsinavbookmarkobserver places using xpcom without
chrome - bookmark observer ...
Embedding SVG - Archive of obsolete content
xlink"> <body> <p>hello</p> <svg:svg version="1.1" baseprofile="full" width="150" height="150"> <svg:rect x="10" y="10" width="100" height="100" fill="red"/> <svg:circle cx="50" cy="50" r="30" fill="blue"/> </svg:svg> <p>world</p> </body> </html> embedding into xul make sure you use the right namespace when embedding <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <!-- xul and svg go here --> </window> example: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster...
JS XPCOM - Archive of obsolete content
components.utils.import("resource://gre/modules/services.jsm"); components.utils.import("resource://gre/modules/xpcomutils.jsm"); const cc = components.classes; const ci = components.interfaces; function abouthandler() {} abouthandler.prototype = { newchannel: function(uri) { var channel = services.io.newchannel("
chrome://mystuff/content/mystuff.xul", null, null); channel.originaluri = uri; return channel; }, geturiflags: function(uri) { // do not return ci.nsiaboutmodule.uri_safe_for_untrusted_content unless // you make sure to set a non-system principal in newchannel.
JavaScript Debugger Service - Archive of obsolete content
jsd.clearfilters(); // clear the list of filters // we exclude the scripts with the following filenames from being tracked jsd.appendfilter(createfilter("*/firefox/components/*")); jsd.appendfilter(createfilter("*/firefox/modules/*")); jsd.appendfilter(createfilter("xstringbundle")); jsd.appendfilter(createfilter("
chrome://*")); jsd.appendfilter(createfilter("x-jsd:ppbuffer*")); jsd.appendfilter(createfilter("xpcsafejsobjectwrapper.cpp")); jsd.appendfilter(createfilter("file://*")); note that appendfilter adds the filter to the end of the list.
On page load - Archive of obsolete content
creating an overlay first, you need to create an overlay to one (or more, depending on which applications you target) of the following xul documents: application uri to overlay firefox
chrome://browser/content/browser.xul thunderbird
chrome://messenger/content/messenger.xul navigator 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", funct...
Post data to window - Archive of obsolete content
posting data to the current tab there is a convenience method in global scope (in firefox,
chrome://browser/content/browser.js): loaduri(auri, areferrer, apostdata, aallowthirdpartyfixup); posting data to a new window window.opendialog('
chrome://browser/content', '_blank', 'all,dialog=no', auri, aflags, areferrer, apostdata); ...
QuerySelector - Archive of obsolete content
// if you'd like to convert it to a array for convenience, use this instead: // return array.prototype.slice.call(el.queryselectorall(selector)); } alert($('#myid').id); (note that while using the firefox web console, the above functions are available automatically.) both xul and even xml can be easily made supportable (an alternative approach to the following would be to add
chromewindow.prototype or window.prototype, accessing this.document.queryselector, or following the jquery style of chaining by returning 'this' within each prototype method of $()): htmldocument.prototype.$ = function (selector) { // only for html return this.queryselector(selector); }; example: <h1>test!</h1> <script> htmldocument.prototype.$ = function (selector) { return this.queryselector...
Tabbox - Archive of obsolete content
examples: .tabs-closebutton { list-style-image: url(http://mozilla.org/favicon.ico); } .tabs-closebutton { list-style-image: url("
chrome://global/skin/icons/close.gif"); } ...
View Source for XUL Applications - Archive of obsolete content
importing gviewsourceutils xul applications wanting to show the source code for documents should import the viewsourceutils.js script instead of attempting to open the viewsource.xul window themselves: <script type="application/javascript" src="
chrome://global/content/viewsourceutils.js"/> viewsourceutils.js exposes a gviewsourceutils global into the scope of the window that imports that script.
Custom about: URLs - Archive of obsolete content
s.jsm"); // globals const aboutpage_description = 'this is my custom about page'; const aboutpage_id = 'aa132730-2278-11e5-867f-0800200c9a66'; // make sure you generate a unique id from https://www.famkruithof.net/uuid/uuidgen const aboutpage_word = 'myaboutpage' const aboutpage_uri = 'data:text/html,hi this is the page that is shown when navigate to about:myaboutpage'; // const aboutpage_uri = '
chrome://myaboutaddon/content/index.html'; class aboutpage { static get classid() { return components.id(`{${aboutpage_id}}`); } static get classdescription() { return aboutpage_description; } static get contractid() { return `@mozilla.org/network/protocol/about;1?what=${aboutpage_word}`; } static get queryinterface() { return xpcomutils.generateqi([ci.nsiaboutmodule]); } constructor() { ...
Default Preferences - Archive of obsolete content
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.
Multiple item extension packaging - Archive of obsolete content
lable 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 ...
Enabling the behavior - updating the status periodically - Archive of obsolete content
<!-- navigator --> <script type="application/javascript" src="
chrome://navigator/content/browser.js"/> <script type="application/javascript" src="
chrome://navigator/content/navigator.js"/> <script type="application/javascript" src="
chrome://navigator/content/navigatordd.js"/> <script type="application/javascript" src="
chrome://navigator/content/sessionhistoryui.js"/> <script type="application/javascript" src="
chrome://navigator/content/tin...
Finding the code to modify - Archive of obsolete content
inspectorwidget the inspectorwidget extension adds a toolbar button and context menus for invoking the dom inspector (domi) for either
chrome or content elements.thus this makes it possible to save all the above dom inspector user interface diggings.
toolbarBindings.xml - Archive of obsolete content
copy the following text and paste it into a text file, then save that file as "toolbarbindings.xml": <bindings id="toolbarbindings"> <binding id="toolbar-primary" extends="
chrome://global/content/bindings/toolbar.xml#toolbar-primary"> <content> <xul:hbox class="toolbar-holder toolbar-primary-holder" flex="1" xbl:inherits="orient=tborient,buttonstyle"> <xul:hbox class="toolbar-button-box" flex="1"> <children/> </xul:hbox> <xul:image class="toolbar-primary-icon" xbl:inherits="buttonstyle"/> </xul:hbox> </content> </binding> </bindings> ...
slideBar - Archive of obsolete content
nt persistdefault slide behavior when being selectedbool autoreloadautomatically reload content on selectbool onclickcallback when the icon is clickedfunction onselectcallback when the feature is selectedfunction onreadycallback when featured is loadedfunction an example: jetpack.slidebar.append({ url: "http://mozilla.com", width: 150, onclick: function(slide){ slide.icon.src = "
chrome://branding/content/icon48.png"; }}); ...
Mozilla Application Framework in Detail - Archive of obsolete content
new mozilla software facilities for detecting and maintaining application versions high-level objects for manipulating local directories and files complete reference documentation, including useful example installations the following snippet from an xpinstall installation gives you some idea about how easy it is to write cross-platform installations that use the mozilla browser: // register
chrome register
chrome(package | delayed_
chrome, getfolder("
chrome","xmlterm.jar"), "content/xmlterm/"); register
chrome(skin | delayed_
chrome, getfolder("
chrome","xmlterm.jar"), "skin/modern/xmlterm/"); register
chrome(locale | delayed_
chrome, getfolder("
chrome","xmlterm.jar"), "locale/xmlterm/"); if (getlasterror() == success) performinstall(); else { alert("error detected: "+getlasterror()); ...
Bundles - Archive of obsolete content
the bundle can hold additional resources currently limited to: application ini settings application icon script for the application
chrome, not the web content installing a bundle when prism opens a webapp bundle it will unpack it into the webapps/{webapp-id} folder.
Examples - Archive of obsolete content
the following samples demonstrate some of the principal installation functions in the xpinstall api: file.macalias file.windowsshortcut [install.]adddirectory [install.]addfile installtrigger.install
chrome installtrigger.startsoftwareupdate windows install example ...
getFolder - Archive of obsolete content
the value of foldername must be one of the following (info is based on mozilla 1.7 stable branch, might also work in other versions): "
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" ...
Return Codes - Archive of obsolete content
source file and got directory source_is_file -234 expected source directory and got file insufficient_disk_space -235 not enough disk space for install filename_too_long -236 unable_to_locate_lib_function -237 unable_to_load_library -238
chrome_registry_error -239 malformed_install -240 key_access_denied -241 access to the registry key has been denied key_does_not_exist -242 registry key does not exist value_does_not_exist -243 registry value does not exist invalid_signature -260 the...
onchange - Archive of obsolete content
window, document, or any of the functions/objects/variables bound to the window object event object example <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="findfile-window" title="find files" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="text/javascript"> function myfunction(e){ /* do something cool here or just say the below */ alert(e.target.nodename); } </script> <textbox id="find-text" onchange="re...
Attribute (XUL) - Archive of obsolete content
lose disabled disablehistory disablekeynavigation disablesecurity dlgtype dragging editable editortype element empty emptytext deprecated since gecko 2 enablecolumndrag enablehistory equalsize eventnode events expr firstdayofweek firstpage first-tab fixed flags flex focused forcecomplete grippyhidden grippytooltiptext group handlectrltab height helpuri hidden hide
chrome hidecolumnpicker hideheader hideseconds hidespinbuttons highlightnonmatches homepage href icon id ignoreblurwhilesearching ignorecase ignoreincolumnpicker ignorekeys image inactivetitlebarcolor increment index inputtooltiptext insertafter insertbefore instantapply inverted iscontainer isempty key keycode keytext label lastpage lastselected last-tab left linkedpa...
How to implement a custom XUL query processor component - Archive of obsolete content
here is an example of what our xul might look like when using a custom query processor: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <grid> <columns> <column flex="1"/> <column flex="3"/> <column flex="2"/> <column flex="1"/> </columns> <rows datasources="dummy" ref="." querytype="simpledata"> <template> <row uri...
appendNotification - Archive of obsolete content
popup: null }; buttons.push(button2); //appendnotification( label , value , image (url) , priority , buttons, eventcallback ) notifybox.appendnotification("my notification text", "test notification unique id", "
chrome://browser/content/aboutrobots-icon.png", notifybox.priority_info_high, buttons, testnotificationcallback); } ...
Panels - Archive of obsolete content
<?xml-stylesheet href="
chrome://global/skin" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <button label="details" type="panel"> <panel id="search-panel"> <label control="name" value="name:"/> <textbox id="name"/> </panel> </button> </window> many panels will be associated with a button, as in this example.
Special per-platform menu considerations - Archive of obsolete content
here is an example: <menubar> <menu label="tools"> <menupopup> <menuitem label="spell check"/> <menuitem id="menu_preferences" label="preferences" oncommand="window.opendialog('options.xul', '_new', '
chrome');"/> </menupopup> </menu> </menubar> this menu item will be placed on the application menu on the macintosh but left in the tools menu on other platforms.
Printing from a XUL App - Archive of obsolete content
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 ...
Sorting and filtering a custom tree view - Archive of obsolete content
sort.xul <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <!doctype window> <window title="sorting a custom tree view example" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="init()"> <script type="application/javascript" src="sort.js"/> <hbox align="center" id="search-box"> <label accesskey="f" control="filter">filter</label> <textbox id="filter" oninput="inputfilter(event)" ...
Style classes - Archive of obsolete content
« xul reference home alert-icon
chromeclass-toolbar error-icon groove header indent listcell-iconic listitem-iconic menuitem-iconic menuitem-non-iconic message-icon monospace plain question-icon small-margin statusbarpanel-iconic statusbarpanel-iconic-text statusbarpanel-menu-iconic text-link thin tree-splitter treecol-image ...
textbox (Toolkit autocomplete) - Archive of obsolete content
window, document, or any of the functions/objects/variables bound to the window object event object example <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="findfile-window" title="find files" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="text/javascript"> function myfunction(e){ /* do something cool here or just say the below */ alert(e.target.nodename); } </script> <textbox id="find-text" onchange="re...
Textbox (XPFE autocomplete) - Archive of obsolete content
window, document, or any of the functions/objects/variables bound to the window object event object example <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="findfile-window" title="find files" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="text/javascript"> function myfunction(e){ /* do something cool here or just say the below */ alert(e.target.nodename); } </script> <textbox id="find-text" onchange="re...
Toolbars - Archive of obsolete content
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) ...
Tree Widget Changes - Archive of obsolete content
(do not set id of the column to be 'checked' it will cause problems with the css) treechildren::-moz-tree-checkbox(checked) { /* css for checked cells */ list-style-image: url("
chrome://global/skin/checkbox/cbox-check.gif"); } in addition, checkmark columns support editing: <tree editable="true"> <treecols> <treecol type="checkbox" editable="true"> ...
Adding HTML Elements - Archive of obsolete content
here is an example as it might be added to the find file window: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="findfile-window" title="find files" orient="horizontal" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> then, you can use html tags as you would normally, keeping in mind the following: you must add a html: prefix to the beginning of each tag, assuming you declared the...
Adding Labels and Images - Archive of obsolete content
here are some examples: xul: <image id="image1"/> <image id="search"/> style sheet: #image1 { list-style-image: url("
chrome://findfile/skin/banner.jpg"); } #search { list-style-image: url("http://example.com/images/search.png"); } these images come from within the
chrome directory, in the skin for the findfile package.
Box Model Details - Archive of obsolete content
a find text dialog example 5 : source view <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="findtext" title="find text" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <vbox flex="3"> <label control="t1" value="search text:"/> <textbox id="t1" style="min-width: 100px;" flex="1"/> </vbox> <vbox style="min-width: 150px;" flex="1" align="start"> <checkbox id="c1" label="ign...
Custom Tree Views - Archive of obsolete content
example custom tree source <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window title="tree example" id="tree-window" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="setview();"> <script> //moz 1.8 var treeview = { rowcount : 10000, getcelltext : function(row,column){ if (column.id == "namecol") return "row "+row; else return "february 18"; }, settree: function(treebox...
Element Positioning - Archive of obsolete content
example 5: source view <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="yesno" title="question" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <hbox> <button label="yes"/> <button label="no"/> </hbox> <hbox align="center"> <button label="maybe"/> <button label="perhaps"/> </hbox> </window> you can also use the style properties -moz-box-pack...
More Wizards - Archive of obsolete content
wizard example source <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <wizard id="thewizard" title="secret code wizard" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script> function checkcode(){ document.getelementbyid('thewizard').canadvance = (document.getelementbyid('secretcode').value == "cabbage"); } </script> <wizardpage onpageshow="checkcode(); return true;"> <label value="enter the...
Property Files - Archive of obsolete content
use a
chrome url to read a file from the locale: <stringbundleset id="stringbundleset"> <stringbundle id="strings" src="
chrome://myplugin/locale/strings.properties"/> </stringbundleset> like other non-displayed elements, you should declare all your stringbundles inside a stringbundleset element so that they are all kept together.
Tree View Details - Archive of obsolete content
they are added near the end of the complete example, shown here: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window onload="init();" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <tree id="elementlist" flex="1"> <treecols> <treecol id="element" label="element" primary="true" flex="1"/> </treecols> <treechildren/> </tree> <script> <![cdata[ var treeview = { childdata : { solids: ["silver", "gold", "lead"], liquids...
XBL Inheritance - Archive of obsolete content
example 1 : source <binding id="textboxwithhttp" extends="
chrome://global/content/bindings/textbox.xml#textbox"> <handlers> <handler event="keypress" keycode="vk_f4"> this.value="http://www"+value; </handler> </handlers> </binding> the xbl here extends from the xul textbox element.
XUL Tutorial - Archive of obsolete content
introduction introduction xul structure the
chrome url manifest files simple elements creating a window adding buttons adding labels and images input controls numeric controls list controls progress meters adding html elements using spacers more button features the box model the box model element positioning box model details groupboxes adding more elements more layout elements stacks and decks stack positioning tabboxes grids content panels splitters toolbars and menus toolbars simple menu bars more menu features popup menus scrolling menus events and scripts adding event hand...
Urlbar-icons - Archive of obsolete content
(the url bar is also known as the address bar and the navigation bar.) example the default contents of browser.xul: <hbox id="urlbar-icons"> <button be=""
chromedir="ltr" class="urlbar-icon" click="" for="" id="safebrowsing-urlbar-icon" img="" level="safe" might="" onclick="godocommand('safebrowsing-show-warning');" page="" style="-moz-user-focus:" tooltiptext="this" type="menu"> <img class="urlbar-icon" id="star-button" onclick="placesstarbutton.onclick(event);" /> <img address=""
chromedir="ltr" class="urlbar-icon" id="go-button" in="" location="" o...
XUL FAQ - Archive of obsolete content
if you want to access elements inside <prefpane>, you should put script in the <prefpane> or write script into "onpaneload" of the <prefpane>.) note, that prefwindow only works in
chrome xul.
XUL Parser in Python/source - Archive of obsolete content
def strip(snip): t = re.sub('http://.*?\s', '', snip) return t class xulparser(xmllib.xmlparser): def unknown_starttag(self, t, a): name = strip(t) if name not in el_list: el_list[name] = {} for attr,val in a.items(): el_list[name][strip(attr)] = strip(val) def syntax_error(self, message): pass p = xulparser() cmd = 'dir /s /b *.xul'
chrome_dir = 'c:\program files\netscape\netscape 6\
chrome' os.chdir(
chrome_dir) files = os.popen(cmd).readlines() for file in files: file = file.strip() print '** ' + file + ' **' data = open(file).read() p.feed(data) w.write('<html><h3>periodic table of xul elements</h3>') w.write('<table><style>.head {font-weight: bold; background-color: lightgrey;}</style>') elements = el_list.keys() elements.s...
XUL Template Primer - Bindings - Archive of obsolete content
<?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin" type="text/css"?> <window xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" align="vertical"> <vbox datasources="friends.rdf" ref="urn:root"> <template> <rule> <conditions> <content uri="?uri"/> <triple subject="?uri" predicate="http://home.netscape.com/nc-rdf#frie...
XUL Event Propagation - Archive of obsolete content
the widget hierarchy consider the following xul file: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="events" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" oncommand="alert('window handler')"> <vbox> <vbox style="background-color: lightgrey;" oncommand="alert('box handler')"> <menu class="menu" label="file" oncommand="alert('menu handler')"> <menupopup> <menuitem ...
colorpicker - Archive of obsolete content
window, document, or any of the functions/objects/variables bound to the window object event object example <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="findfile-window" title="find files" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="text/javascript"> function myfunction(e){ /* do something cool here or just say the below */ alert(e.target.nodename); } </script> <textbox id="find-text" onchange="re...
dialog - Archive of obsolete content
n, buttondir, buttondisabledaccept, buttonlabelaccept, buttonlabelcancel, buttonlabeldisclosure, buttonlabelextra1, buttonlabelextra2, buttonlabelhelp, buttonorient, buttonpack, buttons, defaultbutton, title properties buttons, defaultbutton methods acceptdialog, canceldialog, centerwindowonscreen, getbutton, movetoalertposition examples <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/global.css" type="text/css"?> <dialog id="donothing" title="dialog example" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" buttons="accept,cancel" buttonlabelcancel="cancel" buttonlabelaccept="save"> <dialogheader title="options" description="my preferences"/> <groupbox> <caption label="colour"/> <radiogroup> <radio label="red"/> ...
dialogheader - Archive of obsolete content
attributes crop, description, title examples <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/global.css" type="text/css"?> <dialog id="donothing" title="dialog example" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <dialogheader title="my dialog" description="example dialog"/> <!-- other widgets --> </dialog> attributes crop type: one of the values below if the label of the element is too big to fit in its given space, the text will be cropped on the side specified by the c...
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 the notification box for.
preference - Archive of obsolete content
window, document, or any of the functions/objects/variables bound to the window object event object example <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="findfile-window" title="find files" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="text/javascript"> function myfunction(e){ /* do something cool here or just say the below */ alert(e.target.nodename); } </script> <textbox id="find-text" onchange="re...
resizer - Archive of obsolete content
attributes dir, element, type examples resizing a window <window xmlns="http://www.mozilla.org/keymaster/gat...re.is.only.xul" hide
chrome="true" windowtype="main" orient="vertical" sizemode="normal" width="400" height="300" persist="screenx screeny width height"> <hbox flex="1"> <vbox width="2" style="background-color: grey;"> <resizer dir="topleft" height="2" style="cursor: nw-resize;"/> <resizer dir="left" flex="1" style="cursor: w-resize;"/> <resizer dir="bottomleft" height="2" style="cursor: sw-resize;"/> </v...
script - Archive of obsolete content
note: if the javascript file is in
chrome://, setting this attribute to application/javascript will always use the latest available javascript version.
stack - Archive of obsolete content
examples <stack> <hbox flex="1"> <image src="
chrome://xulschoolhello/skin/stack-bg.png" flex="1"left="10"right="10" top="10" bottom="10"/> </hbox> <hbox> <!-- some content here.
stringbundle - Archive of obsolete content
the "src" attribute accepts only absolute
chrome:// urls (see bugs 133698, 26291) attributes src properties applocale , src, stringbundle, strings methods getformattedstring, getstring examples (example needed) attributes src type: uri the uri of the property file that contains the localized strings.
tabbrowser - Archive of obsolete content
the properties of params are following: boolean inbackground boolean replace boolean allowthirdpartyfixup tab targettab number newindex object postdatas number usercontextid note: this is the xul method on <browser> / <tabbrowser>, not the global function in
chrome://browser/content/browser.js.
toolbox - Archive of obsolete content
properties accessible, customtoolbarcount, externaltoolbars, palette, toolbarset methods appendcustomtoolbar, collapsetoolbar, expandtoolbar examples <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <window id="yourwindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="toolbox example" width="300"> <toolbox> <toolbar> <toolbarbutton label="back"/> <toolbarbutton label="forward"/> <toolbarbutton label="home"/> </toolbar> <toolbar> <toolbarbutton label="stop"/> <toolbarbutton label="relo...
wizard - Archive of obsolete content
attributes firstpage, lastpage, pagestep, title, windowtype properties canadvance, canrewind, currentpage, onfirstpage, onlastpage, pagecount, pageindex, pagestep, title, wizardpages methods advance, cancel, extra1, extra2, getbutton, getpagebyid, goto, rewind examples <?xml version="1.0"?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css"?> <wizard id="thewizard" title="secret code wizard" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script> function checkcode(){ document.getelementbyid('thewizard').canadvance = (document.getelementbyid('secretcode').value == "cabbage"); } </script> <wizardpage onpageshow="checkcode();"> <label value="enter the secre...
Building XULRunner with Python - Archive of obsolete content
the jsconsole can also be open and used from code, for example (in javascript) function openjavascriptconsole() { var wwatch = components.classes["@mozilla.org/embedcomp/window-watcher;1"] .getservice(components.interfaces.nsiwindowwatcher); wwatch.openwindow(null, "
chrome://global/content/console.xul", "_blank", "
chrome,dialog=no,all", null); } // dump to the js console (xulrunner -jsconsole) function jsdump(str) { components.classes['@mozilla.org/consoleservice;1'] .getservice(components.interfaces.nsiconsoleservice) .logstringmessage(str); } function jserror(str) { components.utils.reporterror(str); } a fina...
Custom app bundles for Mac OS X - Archive of obsolete content
ile) macos/ (the macos folder will contain your xulrunner executable) xulrunner (this is the xulrunner stub) resources/ (this is where you place your xul application code and support files) application.ini (xulrunner-related application settings) example.icns (this is the icon which will be used by your application bundle)
chrome/ content/ example.xul (this directory contains your application's
chrome) example.manifest defaults/ preferences/ app-prefs.js (this provides some default values for preferences) application bun...
E4X - Archive of obsolete content
it has been disabled by default for webpages (content) in firefox 17, disabled by default for
chrome in firefox 20, and has been removed in firefox 21.
Date.prototype.toLocaleFormat() - Archive of obsolete content
extension and xulrunner developers should know that just loading the format string from a .dtd or .properties file using a
chrome://somedomain/locale/somefile.ext uri should be avoided, as the .dtd/.properties file and the tolocaleformat() method does not not necessarily use the same locale, which could result in odd looking or even ambiguous or unreadable dates.
XForms Custom Controls Examples - Archive of obsolete content
output showing images <binding id="output-image" extends="
chrome://xforms/content/xforms.xml#xformswidget-base"> <content> <html:div> <html:img anonid="content"/> </html:div> </content> <implementation implements="nsixformsuiwidget"> <method name="refresh"> <body> var img = document.getanonymouselementbyattribute(this, "anonid", "content"); img.setattribute("src", this.stringvalue); return true; </body> </method> </implementation> </binding> output showing xhtml <binding id="output-xhtml" extends="
chrome://xforms/content/xforms-xhtml.xml#xformswidget-...
Anatomy of a video game - Game development
modern versions of firefox and google
chrome (and probably others) attempt to connect requestanimationframe callbacks to their main thread at the very beginning of a frame's timeslice.
Game distribution - Game development
the
chrome web store is also an attractive option — again, having a manifest file ready, zipping your game and filling in the online submission form is about all that's required.
Building up a basic demo with A-Frame - Game development
you should start off by: making sure you are using a modern browser with good webgl support (and webxr support if you have available vr or ar hardware) such as the latest firefox or
chrome — download firefox nightly or
chrome (v54 or higher).
WebVR — Virtual Reality for the Web - Game development
browser support and spec status currently browser support for the webvr api is still experimental — it works in nightly builds of firefox and experimental builds of
chrome (mozilla and google teamed up to work on the implementation together), but sooner rather than later we'll see it in regular builds.
Audio for Web games - Game development
mobile support for web audio features mobile browser version concurrent play autoplay volume adjusting preload
chrome (android) 69+ y y y y firefox (android) 62+ y y y y edge mobile y y y y opera mobile 46+ y y y y safari (ios) 7+ y/n* n n y android browser 67+ y y y y there's a full compatibility chart for mobile and desktop htmlmediaelement support here.
Game over - Game development
first, replace where you initially called setinterval() setinterval(draw, 10); with: var interval = setinterval(draw, 10); then replace the second if statement with the following: if(y + dy < ballradius) { dy = -dy; } else if(y + dy > canvas.height-ballradius) { alert("game over"); document.location.reload(); clearinterval(interval); // needed for
chrome to end game } letting the paddle hit the ball the last thing to do in this lesson is to create some kind of collision detection between the ball and the paddle, so it can bounce off it and get back into the play area.
Track the score and win - Game development
> b.x && x < b.x+brickwidth && y > b.y && y < b.y+brickheight) { dy = -dy; b.status = 0; score++; if(score == brickrowcount*brickcolumncount) { alert("you win, congratulations!"); document.location.reload(); clearinterval(interval); // needed for
chrome to end game } } } } } } thanks to this, your users can actually win the game when they destroy all the bricks, which is quite important when it comes to games.
Visual typescript game engine - Game development
features come with broadcaster: multiplatform video chat works with other hybrid frameworks or custom implementation throw the native mobile application web control (
chrome implementation usually tested).
Advanced styling effects - Learn web development
when used in this context, both of the properties would require a -webkit- vendor prefix, even for non-webkit/
chrome-based browsers: .text-clip { -webkit-background-clip: text; -webkit-text-fill-color: transparent; } so why have other browsers implemented a -webkit- prefix?
Accessibility/LiveRegionDevGuide
these "non-live" events may be events originating from the
chrome, user interaction in the
chrome or document, document loading events, or real live region events from hidden tabs.
Add-ons
in most cases, it will run in
chrome, edge, and opera with few if any changes.
Adding a new event
when you need to check if the caller content or
chrome, you can use implicitjscontext attribute in dom/bindings/bindings.conf.
Continuous Integration
games benchmarking (firefox) under development, the games benchmarking harness (aka mozbench) will allow a number of games-related benchmarks to be run against firefox and
chrome.
Debugging
miscellaneous debugging safari some tips for debugging safari debugging
chrome some tips for debugging
chrome debugging internet explorer some tips for debugging internet explorer providing useful information to the mozilla developers how to get a stacktrace for a bug report useful information you can provide about a crash.
Adding APIs to the navigator object
using a manifest to add an object to navigator you can also add an object to the window.navigator object by using the
chrome manifest of an add-on: component {ffffffff-ffff-ffff-ffff-ffffffffffff} mycomponent.js contract @mozilla.org/mycomponent;1 {ffffffff-ffff-ffff-ffff-ffffffffffff} category javascript-navigator-property mycomponent @mozilla.org/mycomponent;1 generate a guid and replace the "ffff" sections in both the component and contract lines with your guid.
Interface Compatibility
if necessary, it is possible for an extension to support multiple versions by shipping multiple shared libraries (dlls) in the same extension package, and selecting the correct version using versioning flags in its
chrome.manifest file.
Add-on Manager
"); let addonids = addonmanager.getstartupchanges(addonmanager.startup_change_disabled); if (addonids.length > 0) { // addonids is now an array of the add-on ids that have been disabled alert("note: " + addonids.length + " add-ons have been disabled."); } open add-on manager tab the add-on manager tab can be opened programatically with the function browseropenaddonsmgr which is available on
chrome window of "navigator:browser" type.
DownloadLastDir.jsm
to use this, you first need to import the code module into your javascript scope: components.utils.import("resource://gre/modules/downloadlastdir.jsm"); if you are using addon sdk, you can import the code module as: let { cu } = require("
chrome"); let downloadlastdir = cu.import("resource://gre/modules/downloadlastdir.jsm").downloadlastdir; once you've imported the module, you can then use the downloadlastdir object it exports.
FxAccountsOAuthClient.jsm
parameters none examples using the fxaccountsoauthclient
chrome code let parameters = { oauth_uri: oauth_server_endpoint, client_id: oauth_client_id, content_uri: content_server_url, state: oauth_state } let client = new fxaccountsoauthclient({ parameters: parameters }); client.oncomplete = function (tokendata) { // tokendata consists of two properties: "tokendata.state" and "tokendata.code" }; client.launchwebflow(); ...
FxAccountsProfileClient.jsm
examples using the fxaccountsprofileclient
chrome code let client = new fxaccountsprofileclient({ serverurl: "https://profile.accounts.firefox.com/v1", token: "fxa_oauth_bearer_token", }); client.fetchprofile().then(profile => console.log(profile)); error handling the fxaccountsprofileclient.jsm normalizes request and client errors into fxaccountsprofileclienterror object.
OS.File for the main thread
using os.file from a jsm to import os.file into your
chrome code, add the following line at the start of your script: components.utils.import("resource://gre/modules/osfile.jsm") promises before using os.file from the main thread, you need some understanding of the promise library.
PerfMeasurement.jsm
note: the perfmeasurement.jsm javascript code module can only be used from
chrome -- that is, from within the application itself or an add-on.
PopupNotifications.jsm
note: this code module is imported by firefox
chrome windows, so you don't have to do it yourself in most extensions.
Examples
const {cu} = require("
chrome"); const {textdecoder, textencoder, os} = cu.import("resource://gre/modules/osfile.jsm", {}); /* files: an array of file paths */ function readtextfiles(files) { let promises = [], decoder = new textdecoder(); for (let i = 0; i < files.length; i++) { let promise = os.file.read(files[i]) promise = promise.then(function onsuccess(array) { return decoder.decode(array); }...
Services.jsm
to use it, you first need to import the code module into your javascript scope: const {services} =
chromeutils.import("resource://gre/modules/services.jsm"); then you can obtain references to services by simply accessing them from the services object exported by the code module.
Sqlite.jsm
note: the sqlite.jsm javascript code module can only be used from
chrome -- that is, from within the application itself or an add-on.
XPCOMUtils.jsm
examples definelazygetter var myservices = {}; cu.import('resource://gre/modules/xpcomutils.jsm'); //set it up xpcomutils.definelazygetter(myservices, 'as', function () { return cc['@mozilla.org/alerts-service;1'].getservice(ci.nsialertsservice) }); //when you need to use it myservices.as.showalertnotification('
chrome://branding/content/icon64.png', 'this was lazyloaded', 'this is a notification from myservices.as', null, null); ...
JavaScript code modules
promiseworker.jsm a version of
chromeworker which uses promises to return the worker's result instead of using an event to do so.
Localizing extension descriptions
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: extensio...
Patching a Localization
hg diff browser/
chrome/browser/browser.dtd attach the patch to an existing bug for reference or review or create a new one if one doesn't currently exist.
QA phase
for instance, if you have finished translating all the .dtd and .properties files in your x-testing/browser/
chrome/browser/ directory, then you should run these commands: $ hg status $ hg commit -m "translated browser/
chrome/browser/" $ hg outgoing $ hg push http://hg.mozilla.org/l10n-central/x-testing note that due to the distributed nature of hg, hg commit saves the changes locally (i.e., in your computer's hg repository).
Writing localizable code
use a good
chrome directory structure for a particular module mod, a target path jar:ab-cd.jar!/locale/ab-cd/mod/foo.dtd has been widely tested and is a good place for your files referenced as
chrome://mod/locale/foo.dtd.
Profiling with the Firefox Profiler
tip: threads that are annotated with "[default]" are in the parent (aka "ui", aka "browser
chrome", aka "main") process and those annotated with "[tab]" are in the web content (aka "child") processes.
tools/power/rapl
combining with powermetrics on mac, you can use the mach power command to run rapl in combination with powermetrics in a way that gives the most useful summary measurements for each of firefox,
chrome and safari.
Leak Monitor
david baron that helps extension and
chrome developers to find memory leaks.
McCoy
https://fireclipse.svn.sourceforge.net/svnroot/fireclipse/trunk/fireclipseextensions/
chromebug/mccoy/signontheline/ bug 396525 - patch to mccoy https://bugzilla.mozilla.org/show_bug.cgi?id=396525 signing update manifests before you release your add-on in order to verify the update manifests applications need to already have information from you for how to verify it.
NSS_3.12_release_notes.html
ecitem_compareitem_util] [[@ memcmp] bug 396256: certutil and pp do not print all the generalnames in a crldp extension bug 398019: correct confusing and erroneous comments in der_asciitotime bug 422866: vfychain -pp command crashes in nss_shutdown bug 345779: useless assignment statements in ec_gf2m_pt_mul_mont bug 349011: please stop exporting these crmf_ symbols bug 397178: crash when entering
chrome://pippki/content/resetpassword.xul in url bar bug 403822: pkix_pl_ocsprequest_create can leave some members uninitialized bug 403910: cert_findusercertbyusage() returns wrong certificate if multiple certs with same subject available bug 404919: memory leak in sftkdb_readsecmoddb() (sftkmod.c) bug 406120: allow application to specify ocsp timeout bug 361025: support for camellia cipher suites to ...
Mozilla Projects
david baron that helps extension and
chrome developers to find memory leaks.
Setting up an update server
you can use this command with firefox's browser console to determine the update directory: const {fileutils} =
chromeutils.import("resource://gre/modules/fileutils.jsm"); fileutils.getdir("updrootd", [], false).path once you have determined the update directory, close firefox, browse to the directory and remove the subdirectory called updates.
History Service Design
certain scheme are excluded from history, so they will never be added, for example: about, view-source,
chrome.
Manipulating bookmarks using Places
ed when my add-on is loaded onload: function() { bmsvc.addobserver(myext_bookmarklistener, false); }, // this function is called when my add-on is unloaded onunload: function() { bmsvc.removeobserver(myext_bookmarklistener); }, dosomething: function() { alert("did something."); } }; see also nsinavbookmarksservice nsinavbookmarkobserver places using xpcom without
chrome - bookmark observer ...
Querying Places
the defaults for these objects will result in a query that returns all of your browser history in a flat list:
chromeutils.definemodulegetter(this, "placesutils", "resource://gre/modules/placesutils.jsm"); // no query options set will get all history, sorted in database order, // which is nsinavhistoryqueryoptions.sort_by_none.
Using the Places favicon service
if the page has no favicon, or we have never heard of the page, this function will return a "
chrome:" uri of the default favicon.
XML Extras
with older builds, passing strings to send() works only in
chrome, see post.html sample.
How to build an XPCOM component in JavaScript
es.nsihelloworld]), hello: function() { return "hello world!"; } }; var components = [helloworld]; if ("generatensgetfactory" in xpcomutils) var nsgetfactory = xpcomutils.generatensgetfactory(components); // firefox 4.0 and higher else var nsgetmodule = xpcomutils.generatensgetmodule(components); // firefox 3.x note: starting with firefox 4.0 you will need to declare your component in
chrome.manifest; classdescription and contractid properties on the other hand are no longer required.
Receiving startup notifications
the important thing to note is that now instead of registering with the category manager programmatically as was done in the past, you add lines to your
chrome.manifest to let the application handle it for you.
mozilla::services namespace
for example, to obtain a reference to the ioservice: nscomptr<nsiioservice> ioservice = mozilla::services::getioservice(); provided service getters service accessor service interface service name get
chromeregistryservice nsi
chromeregistryservice
chrome registry service getioservice nsiioservice io service getobserverservice nsiobserverservice observer service getstringbundleservice nsistringbundleservice string bundle service gettoolkit
chromeregistryservice nsitoolkit
chromeregistry toolkit
chrome registry service getxul
chromeregistryservice nsixul
chromeregistry xul
chrome registry service...
XPCOM guide
the problem would not exist with java's interfaces).making cross-thread calls using runnablesin the mozilla platform, most activities such as layout, dom operations, content javascript, and
chrome javascript run on the main thread.
How To Pass an XPCOM Object to a New Window
getservice(components.interfaces.nsiwindowwatcher); var win = ww.openwindow(null, "
chrome://myextension/content/debug.xul", "debug history", "
chrome,centerscreen,resizable", myobject); note in this example that myobject is passed to the openwindow() method; you can pass any xpcom object (or any other value, for that matter) in this way.
Components.utils.import
gecko 2.0 adds support for loading modules from
chrome: urls, even those inside jar archives.
Components.utils
obsolete since gecko 45 the function was moved to threadsafe
chromeutils nukesandbox() recomputewrappers() to be called from js only.
Components.utils.reportError
function mydump(amessage) { var consoleservice = components.classes["@mozilla.org/consoleservice;1"] .getservice(components.interfaces.nsiconsoleservice); consoleservice.logstringmessage("my component: " + amessage); } firefox 3: the error console will not display
chrome errors by default.
Components.utils.waiveXrays
example suppose a page script adds an expando to its global window: // page script foo = "i'm an expando"; by default,
chrome code won't see foo, because it sees the content window with xray vision, but the
chrome code can waive xray protection: //
chrome code // contentwindow is an xray var isxray = components.utils.isxraywrapper(gbrowser.contentwindow); // true // expandos are not visible in xrays var foo = gbrowser.contentwindow.foo; // undefined // you can waive xray vision for an...
Components object
warning: this object is only intended for code running with
chrome privileges.
Profiling XPCShell
but sometimes, venkman gives too much noise (because it also profiles
chrome code).
IJSDebugger
the only time you should directly use this interface to create the debugger object is if you need to debug
chrome; due to bug 707237, the javascript code module doesn't work in that case.
nsIAccelerometerUpdate
xpcom/system/nsiaccelerometer.idlnot scriptable replaced by nsidevicemotionupdate 1.0 66 introduced gecko 2.0 obsolete gecko 6.0 inherits from: nsiaccelerometer last changed in gecko 5.0 (firefox 5.0 / thunderbird 5.0 / seamonkey 2.2) this method is only used in content tabs to receive nsiacceleration data from the
chrome process.
nsIDOMWindowInternal
controllers nsicontrollers readonly: returns the xul controllers of the
chrome window.
nsIDownloadProgressListener
note: if source and destination are identical, which is possible in case of file urls or
chrome urls, this is called even in gecko 1.9.2.
nsIDroppedLinkHandler
this prevents a source document from tricking the user into a dragging a
chrome url for example.
nsIFileView
example <?xml version="1.0" ?> <?xml-stylesheet href="
chrome://global/skin/" type="text/css" ?> <window id="test" title="test" width="640" height="480" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <tree flex="1" id="ftree"> <treecols> <-- the default column type is size unless an appropriate id is passed, nsifileview relies on the treecols section --> <treecol id="fil...
nsIGlobalHistory2
note: docshell will not filter out uri schemes like
chrome:, data:, about: and view-source:.
Using nsILoginManager
ninfo = 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, ...
nsIMessageWakeupService
the easiest way to do this is to add the appropriate entry to the
chrome manifest that registers your component (see category in "
chrome registration").
nsIMsgIncomingServer
tattribute(in string name, in long value); void setintvalue(in string attr, in long value); void setunicharattribute(in string name, in astring value); void setunicharvalue(in string attr, in astring value); void shutdown(); void storepassword(); astring tostring(); void writetofoldercache(in nsimsgfoldercache foldercache); attributes attribute type description accountmanager
chrome astring read only.
nsINavHistoryService
many types of uris, such as "
chrome:" uris, are not stored when adduri is called.
nsIPromptService
you should use this method instead of window.alert in
chrome code.
nsIPushSubscription
key: string.fromcharcode.apply(null, btoa(subscription.getkey("p256dh"))), secret: string.fromcharcode.apply(null, btoa(subscription.getkey("auth"))), })); } pushservice.subscribe( "
chrome://my-module/push", scriptsecuritymanager.getsystemprincipal(), (code, subscription) => { if (!components.issuccesscode(code)) { cu.reporterror("error creating subscription: " + code); } else { sendsubscriptiontoserver(subscription); } } ); see also nsipushservice nsipushmessage pushsubscription ...
nsIScriptableIO
last changed in gecko 1.9 (firefox 3) inherits from: nsisupports a scriptable io object can be used in an extension or
chrome code by referring to the global io object.
nsIScriptableUnicodeConverter
if the other apis you are reading data from or writing data to don't require you to use this legacy representation, you should use textdecoder and textencoder (available to
chrome javascript via components.utils.importglobalproperties) instead of this api.
nsIStyleSheetService
a user sheet loaded via this api will come before usercontent.css and user
chrome.css in the cascade (so the rules in it will have lower precedence than rules in those sheets).
nsIWebProgressListener
*/ let mm = window.getgroupmessagemanager("browsers"); mm.loadframescript("
chrome://path/to/some/example-framescript.js", true); mm.addmessagelistener("myaddonmessage", (message) => { let data = message.data; let browser = message.target; let outerwindowid = data.outerwindowid; // browser is now the <xul:browser> that saw the web progress activity // occur.
nsIXULRuntime
constants process type constants constant value description process_type_default 0 the default (
chrome) process.
Setting HTTP request headers
below is an example observer that adds a custom header "x-hello" to the channel passed in for http-on-modify-request notification: var {cc, ci} = require("
chrome"); var httprequestobserver = { observe: function(subject, topic, data) { if (topic == "http-on-modify-request") { var httpchannel = subject.queryinterface(ci.nsihttpchannel); httpchannel.setrequestheader("x-hello", "world", false); } } }; note: the above code was changed to reflect that in a firefox add-on one can not directly access components.interfaces und componen...
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 nsIDirectoryService
application level nsappdirectoryservicedefs.h the first group listed is for locations that are relative to the application: for instance, the name and location of the
chrome folder, or the default location of user profiles.
wrappedJSObject
there are two kinds of xpconnect wrappers that support the wrappedjsobject property: xpcnativewrappers which are used to protect the
chrome code working with content objects.
Building a Thunderbird extension 1: introduction
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 ...
Add New Tab
var aurl = "
chrome://myext/mytab.xul"; let tabmail = getmail3pane().document.getelementbyid("tabmail"); tabmail.opentab("
chrometab", {
chromepage: aurl }); ...
Add Toolbar Button
example xul overlay file: <?xml version="1.0"?> <?xml-stylesheet href="
chrome://demo/skin/overlay.css" type="text/css" ?> <overlay id="messengerwindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/x-javascript" src="overlay.js" /> <toolbarpalette id="mailtoolbarpalette"> <toolbarbutton id="demo-button" class="demo-button toolbarbutton-1" label="demo" type="button" oncommand="demo.load();" /> </toolbarpalette> </overlay> add this to the css file you referenced in your xul file: #demo-button, [place="palette"] > #demo-button { list-style-image: url("
chrome://demo/skin/icon.png") !important; } ...
Using tab-modal prompts
using tab-modal prompts from
chrome code currently, nsiprompt defaults to using window-modal prompts.
Using COM from js-ctypes
if this code were used in a production add-on, then to avoid firefox locking up, run this code from a
chromeworker.
Standard OS Libraries
if you would like to do stuff off of the main thread, in
chromeworker's, then you should use xcb.
Using js-ctypes
/* import js-ctypes */ var {cu} = require("
chrome"); var {ctypes} = cu.import("resource://gre/modules/ctypes.jsm", null); /* open the library */ try { /* linux */ var libc = ctypes.open("libc.so.6"); } catch (e) { /* most other unixes */ libc = ctypes.open("libc.so"); } /* import a function */ var puts = libc.declare("puts", /* function name */ ctypes.default_abi, /* call abi */ ...
Plugin Roadmap for Firefox - Plugins
see also mozilla firefox october 2015 - npapi plugins in firefox july 2016 - reducing adobe flash usage in firefox july 2017 - firefox roadmap for flash end-of-life adobe flash november 2015 - flash, html5 and open web standards july 2017 - flash & the future of interactive content google
chrome flash roadmap sep 2013 - saying goodbye to our old friend npapi may 2014 - update on npapi deprecation november 2014 - the final countdown for npapi august 2016 - flash and
chrome december 2016 - roll-out plan for html5 by default july 2017 - saying goodbye to flash in
chrome microsoft edge and internet explorer april 2016 - putting users in control of flash december 2016 - extendi...
Tutorial: Set a breakpoint - Firefox Developer Tools
to do this, open the firefox developer tools, click on the options gear at the upper right of the toolbox, and make sure that both “enable browser
chrome and add-on debugging toolboxes” and “enable remote debugging” are checked.
Debugging Firefox Desktop - Firefox Developer Tools
enable remote debugging first, you'll need to ensure that both debugger and debuggee have the "enable browser
chrome and add-on debugging toolboxes" and "enable remote debugging" settings checked in the developer tools settings.
Settings - Firefox Developer Tools
enable browser
chrome and add-on debugging toolboxes enable you to use developer tools in the context of the browser itself, and not only web content.
Web Console remoting - Firefox Developer Tools
when you attach to the global consoleactor you receive all of the network requests, page errors, and the other events from all of the tabs and windows, including
chrome errors and network events.
about:debugging - Firefox Developer Tools
workers the workers section shows all the workers you've got registered on your firefox, categorised as follows: all registered service workers all registered shared workers other workers, including
chrome workers and dedicated workers you can connect the developer tools to each worker, and send push notifications to service workers.
Firefox Developer Tools
connecting to other browsers connect the developer tools to
chrome on android and safari on ios.
Attr - Web APIs
this change is implemented in
chrome since version 46.0 and firefox since version 48.0.
AudioContext.createMediaStreamDestination() - Web APIs
examples in the following simple example, we create a mediastreamaudiodestinationnode, an oscillatornode and a mediarecorder (the example will therefore only work in firefox and
chrome at this time.) the mediarecorder is set up to record information from the mediastreamdestinationnode.
AudioNode - Web APIs
slightly better performance: in both
chrome and firefox, the factory methods call the constructors internally.
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.
BeforeUnloadEvent - Web APIs
window.addeventlistener("beforeunload", function (e) { var confirmationmessage = "\o/"; (e || window.event).returnvalue = confirmationmessage; // gecko + ie return confirmationmessage; /* safari,
chrome, and other * webkit-derived browsers */ }); specifications specification status comment html living standardthe definition of 'beforeunloadevent' in that specification.
BluetoothDevice - Web APIs
non-standard
chrome os properties these properties were only implemented on google’s
chrome os 45 and removed from
chrome 52.
CSSOMString - Web APIs
implementation differences browser domstring or usvstring for cssomstring firefox (gecko) usvstring
chrome (blink) usvstring safari (webkit) usvstring edge (edgehtml) - opera (blink) usvstring specifications specification status comment css object model (cssom)the definition of 'cssomstring' in that specification.
Cache - Web APIs
note: in
chrome, visit
chrome://inspect/#service-workers and click on the "inspect" link below the registered service worker to view logging statements for the various actions the service-worker.js script is performing.
Clients.matchAll() - Web APIs
in
chrome 46/firefox 54 and later, this method returns clients in most recently focused order, correct as per spec.
console.assert() - Web APIs
chrome v67.0.3396.87): // assertion failed: the word is %s foo see outputting text to the console in the documentation of console for further details.
Console.warn() - Web APIs
note: this feature is available in web workers.note: in
chrome and firefox, warnings have a small exclamation point icon next to them in the web console log.
console - Web APIs
formatting is supported, for example console.log("foo %.2f", 1.1) will output the number to 2 decimal places: foo 1.10 note: precision formatting doesn't work in
chrome each of these pulls the next argument after the format string off the parameter list.
Console API - Web APIs
find out about these at: google
chrome devtools implementation safari devtools implementation usage is very simple — the console object — available via window.console, or workerglobalscope.console in workers; accessible using just console — contains many methods that you can call to perform rudimentary debugging tasks, generally focused around logging various values to the browser's web console.
Document.createDocumentFragment() - Web APIs
html <ul id="ul"> </ul> javascript var element = document.getelementbyid('ul'); // assuming ul exists var fragment = document.createdocumentfragment(); var browsers = ['firefox', '
chrome', 'opera', 'safari', 'internet explorer']; browsers.foreach(function(browser) { var li = document.createelement('li'); li.textcontent = browser; fragment.appendchild(li); }); element.appendchild(fragment); result specifications specification status comment domthe definition of 'document.createdocumentfragment()' in that specification.
Document.open() - Web APIs
as a result, you can no longer call document.write() into an untrusted document from
chrome, even using wrappedjsobject.
Document.write() - Web APIs
note: starting with version 55,
chrome will not execute <script> elements injected via document.write() when specific conditions are met.
Element - Web APIs
this change is implemented in
chrome since version 46.0 and firefox since version 48.0.
EventTarget - Web APIs
additional methods in mozilla
chrome codebase mozilla includes a couple of extensions for use by js-implemented event targets to implement onevent properties.
ExtendableEvent - Web APIs
note: in
chrome, logging statements are visible via the "inspect" interface for the relevant service worker accessed via
chrome://serviceworker-internals.
FileReader.error - Web APIs
in
chrome 48+/firefox 58+ this property returns a domexception because domerror has been removed from the dom standard.
Using FormData Objects - Web APIs
stener('formdata', (e) => { console.log('formdata fired'); // get the form data from the event object let data = e.formdata; for (var value of data.values()) { console.log(value); } // submit the data via xhr let request = new xmlhttprequest(); request.open("post", "/formhandler"); request.send(data); }); note: the formdata event and formdataevent object are available in
chrome from version 77 (and other equivalent chromiums), and firefox 72 (first available behind the dom.formdata.event.enabled pref in firefox 71).
Gamepad.buttons - Web APIs
syntax readonly attribute gamepadbutton[] buttons; example the following code is taken from my gamepad api button demo (you can view the demo live, and find the source code on github.) note the code fork — in
chrome navigator.getgamepads needs a webkit prefix and the button values are stores as an array of double values, whereas in firefox navigator.getgamepads doesn't need a prefix, and the button values are stored as an array of gamepadbutton objects; it is the gamepadbutton.value or gamepadbutton.pressed properties of these we need to access, depending on what type of buttons they are.
HTMLCanvasElement.toBlob() - Web APIs
ction(b) { var a = document.createelement('a'); a.textcontent = 'download'; document.body.appendchild(a); a.style.display = 'block'; a.download = iconname + '.ico'; a.href = window.url.createobjecturl(b); } } canvas.toblob(blobcallback('passthisstring'), 'image/vnd.microsoft.icon', '-moz-parse-options:format=bmp;bpp=32'); save toblob to disk with os.file (
chrome/add-on context only) this technique saves it to the desktop and is only useful in firefox
chrome context or add-on code as os apis are not present on web sites.
HTMLElement.dir - Web APIs
chrome and safari provide a directionality option in the contextual menu of input fields while internet explorer and edge use the key combinations ctrl + left shift and ctrl + right shift.
ImageCapture.getPhotoSettings() - Web APIs
example the following example, extracted from
chrome's image capture / photo resolution sample, uses the results from getphotosettings() to modify the size of an input range.
InstallEvent - Web APIs
note: logging statements are visible in google
chrome via the "inspect" interface for the relevant service worker accessed via
chrome://serviceworker-internals.
MIDIMessageEvent - Web APIs
note: even though the web midi api specifies a receivedtime property that returns a domhighrestimestamp,
chrome (the only implementation at the time of writing) does not support that property since the basic event.timestamp property already returns a domhighrestimestamp in
chrome.
MediaSettingsRange - Web APIs
example the following example, extracted from
chrome's image capture / photo resolution sample, uses the results from getphotocapabilities().imagewidth to modify the size of an input range.
MediaStream.getVideoTracks() - Web APIs
example the following example, extracted from
chrome's image capture / photo resolution sample, uses getvideotracks() to retrieve a track for passing to the imagecapture() constructor.
Transcoding assets for Media Source Extensions - Web APIs
gmented mp4 during the transcode process, with the -movflags frag_keyframe+empty_moov command line flag: $ ffmpeg -i trailer_1080p.mov -c:v copy -c:a copy -movflags frag_keyframe+empty_moov bunny_fragmented.mp4 if you already have an mp4, but it's not properly fragmented, you can again use ffmpeg: $ ffmpeg -i non_fragmented.mp4 -movflags frag_keyframe+empty_moov fragmented.mp4 in both cases,
chrome may require an extra movie flag to be set: -movflags frag_keyframe+empty_moov+default_base_moof having a properly fragmented mp4 file is all you need to get started.
Navigator.cookieEnabled - Web APIs
for example,
chrome 80+ does not allow creating cookies with samesite=none attribute, unless they are created over https and with secure attribute.
Navigator.oscpu - Web APIs
x (i386/x64 build) intel mac os x or macos version x.y linux 64-bit (32-bit build) output of uname -s plus "i686 on x86_64" linux output of uname -sm x.y refers to the version of the operating system example function osinfo() { alert(window.navigator.oscpu); } osinfo(); // alerts "windows nt 6.0" for example usage notes unless your code is privileged (
chrome or at least has the universalbrowserread privilege), it may get the value of the general.oscpu.override preference instead of the true platform.
NavigatorID.platform - Web APIs
for example: "macintel", "win32", "freebsd i386", "webtv os" example console.log(navigator.platform); usage notes most browsers, including
chrome, edge, and firefox 63 and later, return "win32" even if running on a 64-bit version of windows.
Online and offline events - Web APIs
example there's a simple test case that you can run to verify that the events are working (does not work in
chrome due to attaching the event listener to document.body).
NavigatorPlugins.plugins - Web APIs
in
chrome) return flash.description.replace(/shockwave flash /,""); } } the following example displays information about the installed plugin(s).
NetworkInformation.downlink - Web APIs
note that
chrome-based browsers do not conform to the specification, and arbitrarily cap the reported downlink at a maximum of 10 mbps as an anti-fingerprinting measure.
Node.getRootNode() - Web APIs
(see the full source code): <!-- source: https://github.com/jserz/js_piece/blob/master/dom/node/getrootnode()/demo/getrootnode.html --> <div class="js-parent"> <div class="js-child"></div> </div> <div class="js-shadowhost"></div> <script> // works on
chrome 54+,opera 41+ var parent = document.queryselector('.js-parent'), child = document.queryselector('.js-child'), shadowhost = document.queryselector('.js-shadowhost'); console.log(parent.getrootnode().nodename); // #document console.log(child.getrootnode().nodename); // #document // create a shadowroot var shadowroot = shadowhost.attachshadow({mode:'open'}); shadowroot.i...
Node.nodePrincipal - Web APIs
note: this property exists on all nodes (html, svg, mathml, xul, etc.), but only if the script trying to use it has
chrome privileges.
Notification.requestPermission() - Web APIs
} we no longer show a live sample on this page, as
chrome and firefox no longer allow notification permissions to be requested from cross-origin <iframe>s, with other browsers to follow.
Notification - Web APIs
} we no longer show a live sample on this page, as
chrome and firefox no longer allow notification permissions to be requested from cross-origin <iframe>s, with other browsers to follow.
Performance - Web APIs
performance.memory read only a non-standard extension added in
chrome, this property provides an object with basic memory usage information.
Pointer Lock API - Web APIs
the ability to avoid this limitation, in the form of the attribute/value combination <iframe sandbox="allow-pointer-lock">, is expected to appear in
chrome soon.
Request.cache - Web APIs
({status: 504}) : // workaround for
chrome; which simply fails with a typeerror promise.reject(e)) .then(res => { if (res.status === 504) { controller.abort() controller = new abortcontroller(); return fetch("some.json", {cache: "force-cache", mode: "same-origin", signal: controller.signal}) } const date = res.headers.get("date"), dt = date ?
Screen - Web APIs
additional methods in mozilla
chrome codebase mozilla includes a couple of extensions for use by js-implemented event targets to implement onevent properties.
Selection - Web APIs
safari and
chrome (unlike firefox) currently focus the element containing selection when modifying the selection programmatically; it's possible that this may change in the future (see w3c bug 14383 and webkit bug 38696).
SpeechRecognition - Web APIs
note: on some browsers, like
chrome, using speech recognition on a web page involves a server-based recognition engine.
Stylesheet.href - Web APIs
this property is read-only in firefox, opera, google
chrome, and safari, and it is read/write in internet explorer.
TouchEvent - Web APIs
the exception to this is
chrome, starting with version 56 (desktop,
chrome for android, and android webview), where the default value for the passive option for touchstart and touchmove is true and calls to preventdefault() will have no effect.
Using Touch Events - Web APIs
the implementation status of pointer events in browsers is relatively high with
chrome, firefox, ie11 and edge having complete implementations.
Using WebGL extensions - Web APIs
the feature flags are: webgl.enable-draft-extensions in firefox
chrome://flags/#enable-webgl-draft-extensions in chromium based browsers (
chrome, opera).
WebGL: 2D and 3D graphics for the web - Web APIs
support for webgl is present in firefox 4+, google
chrome 9+, opera 12+, safari 5.1+, internet explorer 11+, and microsoft edge build 10240+; however, the user's device must also have hardware that supports these features.
Web Animations API Concepts - Web APIs
the internet explorer team requested an animations api to consolidate and normalize animation functionality across all browsers, and thus efforts began in earnest among mozilla firefox and google
chrome developers to create the one animation spec to rule them all: the web animations api.
Window.outerHeight - Web APIs
the window.outerheight read-only property returns the height in pixels of the whole browser window, including any sidebar, window
chrome, and window-resizing borders/handles.
Window.outerWidth - Web APIs
it represents the width of the whole browser window including sidebar (if expanded), window
chrome and window resizing borders/handles.
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.
WindowEventHandlers.onbeforeunload - Web APIs
window.addeventlistener('beforeunload', function (e) { // cancel the event e.preventdefault(); // if you prevent default behavior in mozilla firefox prompt will always be shown //
chrome requires returnvalue to be set e.returnvalue = ''; }); guarantee the browser unload by removing the returnvalue property of the event window.addeventlistener('beforeunload', function (e) { // the absence of a returnvalue property on the event will guarantee the browser unload happens delete e['returnvalue']; }); notes when your page uses javascript to render content, the javascript may...
Worker - Web APIs
(fetch is also available, with no such restrictions.) in firefox extensions, if you want to use workers with access to js-ctypes, use
chromeworker object instead.
Worklet - Web APIs
chrome: main thread gecko: paint thread css painting api audioworklet for audio processing with custom audionodes.
How to check the security state of an XMLHTTPRequest over SSL - Web APIs
const {cc,ci} = require("
chrome"); function createtcperrorfromfailedxhr(xhr) { let status = xhr.channel.queryinterface(ci.nsirequest).status; let errtype; if ((status & 0xff0000) === 0x5a0000) { // security module const nsinsserrorsservice = ci.nsinsserrorsservice; let nsserrorsservice = cc['@mozilla.org/nss_errors_service;1'].getservice(nsinsserrorsservice); let errorclass; // geterrorclass will throw ...
XSLTProcessor - Web APIs
properties non-web-exposed properties the following properties are [
chromeonly] and not exposed to web content: [
chromeonly] attribute unsigned long xsltprocessor.flags flags that tweak the behavior of the processor.
ARIA annotations - Accessibility
aria annotation roles and objects are currently exposed in: firefox from version 75 onwards, on windows and linux (on macos, we are first waiting for apple to define what safari will expose as apple-dialect attributes to voiceover, and will then follow suit.)
chrome from version 81 onwards, currently behind the #enable-accessibility-expose-aria-annotations flag (go to
chrome://flags to enable this.) unfortunately, you won’t be able to use any of these yet, as screenreader support is currently not there.
How to file ARIA-related bugs - Accessibility
genre software where to file notes screen readers freedom scientific jaws jaws technical support form gw micro window eyes window-eyes comments, questions, and feedback (email) non visual desktop access (nvda) file nvda bugs discuss nvda issues browsers apple safari file webkit.org bugs google
chrome file chromium bugs microsoft internet explorer file ie bugs microsoft edge file ms edge bugs view existing ms edge aria bugs mozilla firefox file firefox bugs use component: disability access apis opera file opera bugs use [aria] in the summary field js libraries dojo toolkit ...
An overview of accessible web applications and widgets - Accessibility
--> <div id="ch1panel" role="tabpanel" aria-labelledby="ch1tab">chapter 1 content goes here</div> <div id="ch2panel" role="tabpanel" aria-labelledby="ch2tab">chapter 2 content goes here</div> <div id="quizpanel" role="tabpanel" aria-labelledby="quiztab">quiz content goes here</div> </div> aria is well supported by all major browsers, including firefox, safari, opera,
chrome, and internet explorer, and many assistive technologies.
Web accessibility for seizures and physical reactions - Accessibility
@media screen and (prefers-reduced-motion: reduce) { } @media screen and (prefers-reduced-motion) { } to see a great example of how to use the code prefers-reduced-motion, visit the mdn document, prefers-reduced-motion, or see the example below from the section on new in
chrome 74.
-moz-image-region - CSS: Cascading Style Sheets
it will not work with xul <image src="url" />.inheritedyescomputed valueas specifiedanimation typediscrete formal syntax <shape> | autowhere <shape> = rect(<top>, <right>, <bottom>, <left>) examples clipping an image #example-button { /* display only the 4x4 area from the top left of this image */ list-style-image: url("
chrome://example/skin/example.png"); -moz-image-region: rect(0px, 4px, 4px, 0px); } #example-button:hover { /* use the 4x4 area to the right of the first for the hovered button */ -moz-image-region: rect(0px, 8px, 4px, 4px); } specifications not part of any standard.
@media - CSS: Cascading Style Sheets
mono
chrome bits per pixel in the output device's mono
chrome frame buffer, or zero if the device isn't mono
chrome orientation orientation of the viewport overflow-block how does the output device handle content that overflows the viewport along the block axis?
Cross-browser Flexbox mixins - CSS: Cascading Style Sheets
this set uses: fallbacks using 2009 'box' syntax (ff and older webkit) and prefixed syntaxes (ie10, webkit browsers without flex wrapping) final standards syntax (ff, safari,
chrome, ie11+, edge, opera) this was inspired by: http://dev.opera.com/articles/view/advanced-cross-browser-flexbox/ with help from: http://w3.org/tr/css3-flexbox/ http://the-echoplex.net/flexyboxes/ http://msdn.microsoft.com/en-us/library/ie/hh772069(v=vs.85).aspx http://css-tricks.com/using-flexbox/ a complete guide to flexbox | css-tricks visual guide to css3 flexbox: flexbox playground | note: mixins are not currently supported natively in browsers.
Mozilla CSS extensions - CSS: Cascading Style Sheets
tonhovertext -moz-default-background-color -moz-default-color -moz-cellhighlight -moz-cellhighlighttext -moz-field -moz-fieldtext -moz-dialog -moz-dialogtext -moz-dragtargetzone -moz-mac-accentdarkestshadow -moz-mac-accentdarkshadow -moz-mac-accentface -moz-mac-accentlightesthighlight -moz-mac-accentlightshadow -moz-mac-accentregularhighlight -moz-mac-accentregularshadow -moz-mac-
chrome-active -moz-mac-
chrome-inactive -moz-mac-focusring -moz-mac-menuselect -moz-mac-menushadow -moz-mac-menutextselect -moz-menuhover -moz-menuhovertext -moz-win-communicationstext -moz-win-mediatext -moz-nativehyperlinktext display -moz-box -moz-inline-block -moz-inline-box -moz-inline-gridobsolete since gecko 62 -moz-inline-stackobsolete since gecko 62 -moz-inline-table ...
<color> - CSS: Cascading Style Sheets
-moz-mac-accentdarkestshadow -moz-mac-accentdarkshadow -moz-mac-accentface -moz-mac-accentlightesthighlight -moz-mac-accentlightshadow -moz-mac-accentregularhighlight -moz-mac-accentregularshadow -moz-mac-
chrome-active -moz-mac-
chrome-inactive -moz-mac-focusring -moz-mac-menuselect -moz-mac-menushadow -moz-mac-menutextselect -moz-menuhover background color for hovered menu items.
font-stretch - CSS: Cascading Style Sheets
no variable font, developed by tyler finck (https://www.tylerfinck.com/) and used here under the terms of the sil open font license, version 1.1: http://scripts.sil.org/cms/scripts/page.php?item_id=ofl_web */ @font-face { src: url('https://mdn.mozillademos.org/files/16014/leaguemonovariable.ttf'); font-family:'leaguemonovariable'; font-style: normal; font-stretch: 1% 500%; /* required by
chrome */ } .container { border: 10px solid #f5f9fa; padding: 0 1rem; font: 1.5rem 'leaguemonovariable', sans-serif; } .condensed { font-stretch: 50%; } .normal { font-stretch: 100%; } .expanded { font-stretch: 200%; } result specifications specification status comment css fonts module level 4the definition of 'font-stretch' in that specification.
transform-box - CSS: Cascading Style Sheets
svg{ width:80vh; border:1px solid #d9d9d9; position:absolute; margin: auto; top: 0; right: 0; bottom: 0; left: 0; } #box{ transform-origin:50% 50%; /*+++++++++++++++++++++++++++*/ /* if i remove this rule the pen won't work properly on
chrome for mac, ff, safari will still work properly on
chrome for pc & opera*/ transform-box: fill-box; /*alternatively i can use transform-origin:15px 15px;*/ /*+++++++++++++++++++++++++++*/ animation: rotatebox 3s linear infinite; } @keyframes rotatebox { to { transform: rotate(360deg); } full credit for this example goes to pogany; see this codepen for a live version.
width - CSS: Cascading Style Sheets
lass="em_length">width measured in em</div> percentage .percent { width: 20%; background-color: silver; border: 1px solid red; } <div class="percent">width in percentage</div> max-content p.maxgreen { background: lightgreen; width: intrinsic; /* safari/webkit uses a non-standard name */ width: -moz-max-content; /* firefox/gecko */ width: -webkit-max-content; /*
chrome */ width: max-content; } <p class="maxgreen">the mozilla community produces a lot of great software.</p> min-content p.minblue { background: lightblue; width: -moz-min-content; /* firefox */ width: -webkit-min-content; /*
chrome */ width: min-content; } <p class="minblue">the mozilla community produces a lot of great software.</p> specifications specification st...
Video player styling basics - Developer guides
there are some browser-specific properties that need to be set to ensure that firefox and
chrome use the required colour for the progress bar: .controls progress::-moz-progress-bar { background-color:#0095dd; } .controls progress::-webkit-progress-value { background-color:#0095dd; } although the same properties are set to the same value, these rules need to be defined separately, otherwise
chrome ignores it.
Web Audio playbackRate explained - Developer guides
browser support
chrome 20+ ✔ firefox 20+ ✔ ie 9+ ✔ safari 6+ ✔ opera 15+ ✔ mobile
chrome (android) ✖ mobile firefox 24+ ✔ ie mobile ✖ mobile safari 6+ (ios) ✔ opera mobile ✖ notes most browsers stop playing audio outside playbackrate bounds of 0.5 and 4, leaving the video playing silently.
Creating a cross-browser video player - Developer guides
some webkit specific css: the default browser controls have to be hidden with video::-webkit-media-controls { display:none !important; } the custom controls container needs to have a special z-index value: .controls { z-index:2147483647; } dealing with webkit-specific code in this way will affect all webkit browsers, but everything works as expected in more advanced webkit browsers such as
chrome and the latest opera.
<canvas>: The Graphics Canvas element - HTML: Hypertext Markup Language
stack overflow): browser maximum height maximum width maximum area
chrome 32,767 pixels 32,767 pixels 268,435,456 pixels (i.e., 16,384 x 16,384) firefox 32,767 pixels 32,767 pixels 472,907,776 pixels (i.e., 22,528 x 20,992) safari 32,767 pixels 32,767 pixels 268,435,456 pixels (i.e., 16,384 x 16,384) ie 8,192 pixels 8,192 pixels ?
<datalist>: The HTML Data List element - HTML: Hypertext Markup Language
examples <label for="mybrowser">choose a browser from this list:</label> <input list="browsers" id="mybrowser" name="mybrowser" /> <datalist id="browsers"> <option value="
chrome"> <option value="firefox"> <option value="internet explorer"> <option value="opera"> <option value="safari"> <option value="microsoft edge"> </datalist> result specifications specification status comment html living standardthe definition of '<datalist>' in that specification.
<input type="submit"> - HTML: Hypertext Markup Language
here's the previous example with the s access key added: <form> <div> <label for="example">let's submit some text</label> <input id="example" type="text" name="text"> </div> <div> <input type="submit" value="send" accesskey="s"> </div> </form> for example, in firefox for mac, pressing control-option-s triggers the send button, while
chrome on windows uses alt+s.
<input type="tel"> - HTML: Hypertext Markup Language
firefox for android webkit ios (safari/
chrome/firefox) a simple tel input in its most basic form, a tel input can be implemented like this: <label for="telno">phone number:</label> <input id="telno" name="telno" type="tel"> there is nothing magical going on here.
<isindex> - HTML: Hypertext Markup Language
in 2016, after it was removed from edge and
chrome, it was proposed to remove isindex from the standard; this removal was completed the next day, after which safari and firefox also removed support.
theme-color - HTML: Hypertext Markup Language
example <meta name="theme-color" content="#4285f4"> the following image shows the effect that the <meta> element above will have on a document displayed in
chrome running on an android mobile device.
accesskey - HTML: Hypertext Markup Language
indows linux mac firefox alt + shift + key on firefox 57 or newer: control + option + key or control + alt + key on firefox 14 or newer: control + alt + key on firefox 13 or older: control + key internet explorer alt + key alt + shift + key n/a edge n/a control + option + key control + option + shift + key google
chrome alt + shift + key safari n/a opera 15+ alt + key control + alt + key opera 12 shift + esc opens a contents list which are accessible by accesskey, then, can choose an item by pressing key accessibility concerns in addition to poor browser support, there are numerous concerns with the accesskey attribute: an accesskey value can conflict...
Set-Cookie - HTTP
(however, confidential information should never be stored in http cookies, as the entire mechanism is inherently insecure and doesn't encrypt any information.) note: insecure sites (http:) can't set cookies with the secure attribute (since
chrome 52 and firefox 52).
Strict-Transport-Security - HTTP
information regarding the hsts preload list in
chrome : https://www.chromium.org/hsts consultation of the firefox hsts preload list : nsstspreloadlist.inc examples all present and future subdomains will be https for a max-age of 1 year.
HTTP headers - HTTP
when a site enables the expect-ct header, they are requesting that
chrome check that any certificate for that site appears in public ct logs.
Proxy Auto-Configuration (PAC) file - HTTP
in
chrome (versions 52 to 73), you can disable this by setting pachttpsurlstrippingenabled to false in policy or by launching with the --unsafe-pac-url command-line flag (in
chrome 74, only the flag works, and from 75 onward, there is no way to disable path-stripping; as of
chrome 81, path-stripping does not apply to http urls, but there is interest in changing this behavior to match https); in firefox, th...
HTTP Public Key Pinning (HPKP) - HTTP
firefox and
chrome disable pin validation for pinned hosts whose validated certificate chain terminates at a user-defined trust anchor (rather than a built-in trust anchor).
Redirections in HTTP - HTTP
…while
chrome displays: this webpage has a redirect loop in both cases, the user can't do much (unless a corruption is happening on their side, like a mismatch of cache or cookies).
408 Request Timeout - HTTP
this response is used much more since some browsers, like
chrome, firefox 27+, and ie9, use http pre-connection mechanisms to speed up surfing.
HTTP response status codes - HTTP
this response is used much more since some browsers, like
chrome, firefox 27+, or ie9, use http pre-connection mechanisms to speed up surfing.
About JavaScript - JavaScript
besides the above implementations, there are other popular javascript engines such as:- google's v8, which is used in the google
chrome browser and recent versions of opera browser.
Introduction - JavaScript
it is useful if you want to implement standards-compliant language features in your ecmascript implementation or engine (such as spidermonkey in firefox, or v8 in
chrome).
Inheritance and the prototype chain - JavaScript
more information is available for firefox developer tools,
chrome devtools, and edge devtools.) function dosomething(){} console.log( dosomething.prototype ); // it does not matter how you declare the function, a // function in javascript will always have a default // prototype property.
Memory Management - JavaScript
v8 engine flags the max amount of available heap memory can be increased with a flag: node --max-old-space-size=6000 index.js we can also expose the garbage collector for debugging memory issues using a flag and the
chrome debugger: node --expose-gc --inspect index.js see also ibm article on "memory leak patterns in javascript" (2007) kangax article on how to register event handler and avoid memory leaks (2010) performance ...
RangeError: radix must be an integer - JavaScript
message rangeerror: invalid argument (edge) rangeerror: radix must be an integer at least 2 and no greater than 36 (firefox) rangeerror: tostring() radix argument must be between 2 and 36 (
chrome) error type rangeerror what went wrong?
TypeError: invalid 'instanceof' operand 'x' - JavaScript
message typeerror: invalid 'instanceof' operand "x" (firefox) typeerror: "x" is not a function (firefox) typeerror: right-hand side of 'instanceof' is not an object (
chrome) typeerror: right-hand side of 'instanceof' is not callable (
chrome) error type typeerror what went wrong?
TypeError: 'x' is not iterable - JavaScript
message typeerror: 'x' is not iterable (firefox,
chrome) typeerror: 'x' is not a function or its return value is not iterable (
chrome) error type typeerror what went wrong?
Arrow function expressions - JavaScript
this code sample using
chrome 81 demonstrates that arrow functions allow the creation of global variables in such situations (both for a concise body and for a normal function body): > f1 = x => { y = x; console.log(`x: ${x}, y: ${y}`); return x + 1; } x => { y = x; console.log(`x: ${x}, y: ${y}`); return x + 1; } > y vm51587:1 uncaught referenceerror: y is not defined at <anonymous>:1:1 (anonymous) @ vm51587:1 > f1(3)...
Error.prototype.stack - JavaScript
browsers using the v8 javascript engine (such as
chrome, opera 15+, android browser) and ie10+, on the other hand, uses a different format (see the archived msdn error.stack docs).
Object.setPrototypeOf() - JavaScript
ntity = sname; } var george = object.appendchain(new person('george'), 'console.log("hello guys!!");'); console.log(george.identity); // 'george' george(); // 'hello guys!!' polyfill using the older object.prototype.__proto__ property, we can easily define object.setprototypeof if it isn't available already: if (!object.setprototypeof) { // only works in
chrome and firefox, does not work in ie: object.prototype.setprototypeof = function(obj, proto) { if(obj.__proto__) { obj.__proto__ = proto; return obj; } else { // if you want to return prototype of object.create(null): var fn = function() { for (var key in obj) { object.defineproperty(this,...
Set - JavaScript
h.sqrt(25)) // true myset.has('some text'.tolowercase()) // true myset.has(o) // true myset.size // 5 myset.delete(5) // removes 5 from the set myset.has(5) // false, 5 has been removed myset.size // 4, since we just removed one value console.log(myset) // logs set(4) [ 1, "some text", {…}, {…} ] in firefox // logs set(4) { 1, "some text", {…}, {…} } in
chrome iterating sets // iterate over items in set // logs the items in the order: 1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2} for (let item of myset) console.log(item) // logs the items in the order: 1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2} for (let item of myset.keys()) console.log(item) // logs the items in the order: 1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2} for (let i...
WeakSet.prototype.add() - JavaScript
examples using add var ws = new weakset(); ws.add(window); // add the window object to the weakset ws.has(window); // true // weakset only takes objects as arguments ws.add(1); // results in "typeerror: invalid value used in weak set" in
chrome // and "typeerror: 1 is not a non-null object" in firefox specifications specification ecmascript (ecma-262)the definition of 'weakset.prototype.add' in that specification.
typeof - JavaScript
typeof /s/ === 'function'; //
chrome 1-12 non-conform to ecmascript 5.1 typeof /s/ === 'object'; // firefox 5+ conform to ecmascript 5.1 errors before ecmascript 2015, typeof was always guaranteed to return a string for any operand it was supplied with.
Strict mode - JavaScript
two mozilla-specific caveats: first, if your code is javascript 1.7 or greater (for example in
chrome code or when using the right <script type="">) and is strict mode code, let and yield have the functionality they've had since those keywords were first introduced.
display - Web app manifests
values the possible values are: display mode description fallback display mode fullscreen all of the available display area is used and no user agent
chrome is shown.
icons - Web app manifests
purpose can have one or more of the following values, separated by spaces: mono
chrome: a user agent can present this icon where a mono
chrome icon with a solid fill is needed.
Web app manifests
splash screens in
chrome 47 and later, a splash screen is displayed for sites launched from a homescreen.
Authoring MathML - MathML
note that ua string sniffing is not the most reliable method and might break from version to version: var ua = navigator.useragent; var isgecko = ua.indexof("gecko") > -1 && ua.indexof("khtml") === -1 && ua.indexof('trident') === -1; var iswebkit = ua.indexof('applewebkit') > -1 && ua.indexof('
chrome') === -1; mathematical fonts in order to get a good layout or to allow different style, it's important to have mathematical fonts available.
Mobile first - Progressive web apps (PWAs)
in this sample app, i have used a couple of the built-in features to: include an install button that works for firefox os, firefox aurora,
chrome and ios app installs (as explained on the install github page).
Compatibility sources - SVG: Scalable Vector Graphics
the following sources are used for the compatibility tables on svg elements and attributes: https://developer.mozilla.org/en/svg_in_firefox together with its revision history for firefox http://www.webkit.org/projects/svg/status.xml together with its recorded archive for webkit, safari and
chrome http://www.opera.com/docs/specs/opera9/svg/ and accompanying pages for opera >= 9, http://www.opera.com/docs/specs/opera8/ for opera 8 http://blogs.msdn.com/b/ie/archive/2010/03/18/svg-in-ie9-roadmap.aspx for hints on ie9 support status the svg support charts at codedread.com for basic checks against the w3c test suite wikipedia for basic hints, not normative ...
Paths - SVG: Scalable Vector Graphics
this interactive demo might help understand the concepts behind svg arcs: http://codepen.io/lingtalfi/pen/yalwjg (tested in
chrome and firefox only, might not work in your browser) « previousnext » ...
SVG fonts - SVG: Scalable Vector Graphics
internet explorer hasn't considered implementing this, the functionality has been removed from
chrome 38 (and opera 25) and firefox has postponed its implementation indefinitely to concentrate on woff.