Search completed in 1.46 seconds.
nsIPlacesImportExportService
toolkit/components/places/nsiplacesim
portex
portservice.idlscriptable provides methods for ex
porting places data.
... 1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 14.0 (firefox 14.0 / thunderbird 14.0 / seamonkey 2.11) in the past, this interface also offered methods for im
porting places data, but those methods are now part of the bookmarkhtmlutils.jsm javascript code module.
... the interface name has been kept for compatibility reasons for code using the ex
port service.
...And 26 more matches
RTCDtlsTransport.iceTransport - Web APIs
the read-only rtcdtlstrans
port property icetrans
port contains a reference to the underlying rtcicetrans
port.
... syntax var icetrans
port = rtcdtlstrans
port.icetrans
port; value the underlying rtcicetrans
port instance.
... examples tbd specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcdtlstrans
port.icetrans
port' in that specification.
TypeScript support in Svelte - Learn web development
note that our application is fully functional and
porting it to typescript is completely optional.
... code along with us git clone the github repo (if you haven't already done it) with: git clone https://github.com/opensas/mdn-svelte-tutorial.git then to get to the current app state, run cd mdn-svelte-tutorial/07-typescript-sup
port or directly download the folder's content: npx degit opensas/mdn-svelte-tutorial/07-typescript-sup
port remember to run npm install && npm run dev to start your app in development mode.
... repl unfortunately, typescript sup
port is not yet available in the repl.
...And 70 more matches
Browser Detection and Cross Browser Support - Archive of obsolete content
note that some other browsers such as safari are re
porting (like gecko) in their user agent strings and can confuse simple tests.
...unlike other browsers, gecko is truly cross platform and provides consistent behavior across all sup
ported operating systems.
... the easiest way to sup
port gecko is to create content which follows web standards.
...And 66 more matches
Viewport concepts - CSS: Cascading Style Sheets
this article explains the concept of the view
port — what it is, its impact in terms of css, svg, and mobile devices — and differentiates between the visual view
port and the layout view
port.
... what is a view
port?
... a view
port represents the area in computer graphics being currently viewed.
...And 56 more matches
import - JavaScript
the static im
port statement is used to im
port read only live bindings which are ex
ported by another module.
... im
ported modules are in strict mode whether you declare them as such or not.
... the im
port statement cannot be used in embedded scripts unless such script has a type="module".
...And 39 more matches
Memory reporting
tl;dr: you should read this document before writing a memory re
porter.
... and please ask nnethercote to co-review any memory re
porter patch.
... mozilla code has infrastructure that lets different parts of the code re
port on their memory usage.
...And 31 more matches
Supporting older browsers - Learn web development
however, there will be visitors to your site who use older browsers, or browsers which do not sup
port the methods you have used.
... prerequisites: html basics (study introduction to html), and an idea of how css works (study introduction to css and styling boxes.) objective: to understand how to provide sup
port for your layouts on older browsers that might not sup
port the features you want to use.
... what is the sup
port for the features you want to use?
...And 29 more matches
Mozilla’s UAAG evaluation report
this uaag evaluation re
port covers nightly builds of the mozilla web browser itself, running on windows 2000, as of february 20, 2002.
... we are claiming to sup
port html 4, css 2, png, jpg and gif.
...checkpoint information (same scaled used on w3c's uaag implementation re
ports pages) rating scale c: complete implementation vg: very good implementation, almost all requirements satisfied g: good implementation, most im
portant requirements satisfied p: poor implementation, some requirements satisfied and/or difficult for user to access feature ni: not implemented nr: not rated na: not applicable document under construction guideline 1.
...And 28 more matches
SubtleCrypto.importKey() - Web APIs
the im
portkey() method of the subtlecrypto interface im
ports a key: that is, it takes as input a key in an external,
portable format and gives you a cryptokey object that you can use in the web crypto api.
... the function accepts several im
port formats: see sup
ported formats for details.
... syntax const result = crypto.subtle.im
portkey( format, keydata, algorithm, extractable, usages ); parameters format is a string describing the data format of the key to im
port.
...And 25 more matches
Reporting API - Web APIs
the re
porting api provides a generic re
porting mechanism for web applications to use to make re
ports available based on various platform features (for example content security policy, feature-policy, or feature deprecation re
ports) in a consistent manner.
... the re
porting api's purpose is to provide a consistent re
porting mechanism that can be used to make such information available to developers in the form of re
ports represented by javascript objects.
... origins and endpoints each unique origin you want to retrieve re
ports for can be given a series of endpoints, which are urls that can receive given re
ports from a user agent.
...And 24 more matches
@supports - CSS: Cascading Style Sheets
the @sup
ports css at-rule lets you specify declarations that depend on a browser's sup
port for one or more specific css features.
... @sup
ports (display: grid) { div { display: grid; } } @sup
ports not (display: grid) { div { float: right; } } in javascript, @sup
ports can be accessed via the css object model interface csssup
portsrule.
... syntax the @sup
ports at-rule associates a block of statements with a sup
ports condition.
...And 23 more matches
How to get a stacktrace for a bug report
if you file a bug re
port in bugzilla about a crash you should include a stacktrace (call stack) in your re
port.
...this article describes how to use the mozilla crash re
porter (breakpad) to get a crash id, which our engineers can use to get a stacktrace, and alternative ways to get a stacktrace if you can't get a crash id.
...seamonkey and thunderbird also sup
port crash re
porting.
...And 22 more matches
Using the viewport meta tag to control layout on mobile browsers
background the browser's view
port is the area of the window in which web content can be seen.
...mobiles) render pages in a virtual window or view
port, which is usually wider than the screen, and then shrink the rendered result down so it can all be seen at once.
...for example, if a mobile screen has a width of 640px, pages might be rendered with a virtual view
port of 980px, and then it will be shrunk down to fit into the 640px space.
...And 22 more matches
A guide to searching crash reports
please read the documentation about individual crash re
ports before reading this page.
... the mozilla crash-stats site provides facilities for investigating large numbers of firefox crash re
ports.
... this guide to searching through crash re
ports may help you locate the crash re
ports that will help you find and fix the firefox bug you're working on.
...And 21 more matches
VisualViewport - Web APIs
the visualview
port interface of the visual view
port api represents the visual view
port for a given window.
...each window on a page will have a unique visualview
port representing the properties associated with that window.
... you can get a window's visual view
port using window.visualview
port.
...And 21 more matches
MediaTrackSupportedConstraints - Web APIs
the mediatracksup
portedconstraints dictionary establishes the list of constrainable properties recognized by the user agent or browser in its implementation of the mediastreamtrack object.
... an object conforming to mediatracksup
portedconstraints is returned by mediadevices.getsup
portedconstraints().
... because of the way interface definitions in webidl work, if a constraint is requested but not sup
ported, no error will occur.
...And 20 more matches
Communicating using "port" - Archive of obsolete content
to enable add-on scripts and content scripts to communicate with each other, each end of the conversation has access to a
port object.
... to send messages from one side to the other, use
port.emit() to receive messages sent from the other side, use
port.on() messages are asynchronous: that is, the sender does not wait for a reply from the recipient but just emits the message and continues processing.
... here's a simple add-on that sends a message to a content script using
port: var tabs = require("sdk/tabs"); var alertcontentscript = "self.
port.on('alert', function(message) {" + " window.alert(message);" + "})"; tabs.on("ready", function(tab) { worker = tab.attach({ contentscript: alertcontentscript }); worker.
port.emit("alert", "message from the add-on"); }); tabs.open("http://www.mozilla.org"); in total, the
port object defines four functions: emit(): emit a message.
...And 19 more matches
nsIMemoryReporterManager
xpcom/base/nsimemoryre
porter.idlscriptable a service that provides methods for managing nsimemoryre
porter objects.
... inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) implemented by @mozilla.org/memory-re
porter-manager;1 as a service: var re
portermanager = components.classes["@mozilla.org/memory-re
porter-manager;1"] .getservice(components.interfaces.nsimemoryre
portermanager); each memory re
porter object, which implements nsimemoryre
porter interface, provides information for a given code area.
...method overview nsisimpleenumerator enumeratemultire
porters(); nsisimpleenumerator enumeratere
porters(); void init(); void registermultire
porter(in nsimemorymultire
porter re
porter); void registerre
porter(in nsimemoryre
porter re
porter); void unregistermultire
porter(in nsimemorymultire
porter re
porter); void unregisterre
porter(in nsimemoryre
porter re
porter); attributes attribute type description explicit print64 gets the total size of explicit memory allocations, both at the operating system level (for example, via mmap, v...
...And 19 more matches
SubtleCrypto.exportKey() - Web APIs
the ex
portkey() method of the subtlecrypto interface ex
ports a key: that is, it takes as input a cryptokey object and gives you the key in an external,
portable format.
... to ex
port a key, the key must have cryptokey.extractable set to true.
... keys can be ex
ported in several formats: see sup
ported formats in the subtlecrypto.im
portkey() page for details.
...And 19 more matches
nsITransport
netwerk/base/public/nsitrans
port.idlscriptable this interface provides a common way of accessing i/o streams connected to some resource.
... inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) this interface provides methods to open blocking or non-blocking, buffered or unbuffered streams to the resource.
... the name "trans
port" is meant to connote the inherent data transfer implied by this interface (that is, data is being transfered in some fashion via the streams exposed by this interface).
...And 18 more matches
RTCDtlsTransport - Web APIs
the rtcdtlstrans
port interface provides access to information about the datagram trans
port layer security (dtls) trans
port over which a rtcpeerconnection's rtp and rtcp packets are sent and received by its rtcrtpsender and rtcrtpreceiver objects.
... a dtls trans
port is also used to provide information about sctp packets transmitted and received by an connection's data channels.
... features of the dtls trans
port include the addition of security to the underlying trans
port; the rtcdtlstrans
port interface can be used to obtain information about the underlying trans
port and the security added to it by the dtls layer.
...And 18 more matches
export - JavaScript
the ex
port statement is used when creating javascript modules to ex
port live bindings to functions, objects, or primitive values from the module so they can be used by other programs with the im
port statement.
... bindings that are ex
ported can still be modified locally; when im
ported, although they can only be read by the im
porting module the value updates whenever it is updated by the ex
porting module.
... ex
ported modules are in strict mode whether you declare them as such or not.
...And 18 more matches
How to Report a Hung Firefox
if that's not you, or you just want to fix a firefox hang without re
porting it, see firefox hangs or is not responding - how to fix.
... what information to include in a bug re
port as usual, following bug writing guidelines will make your re
port much more likely to lead to a fix in firefox.
... (if you're experiencing high cpu usage and firefox eventually recovers from a hang, you should try the instructions at re
porting a performance problem instead.) is the rest of your system busy (high cpu or memory usage, or high disk activity)?
...And 17 more matches
nsISupportsPrimitive
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface serves as a base interface for all of the nsisup
ports* family of interfaces.
... inherits from: nsisup
ports last changed in gecko 1.7 attributes attribute type description type unsigned short this attribute provides access to the type represented by the nsisup
portsprimitive instance.
... constants constant value description type_id 1 corresponding to nsisup
portsid.
...And 17 more matches
Visual Viewport API - Web APIs
the visual view
port api provides an explicit mechanism for querying and modifying the properties of the window's visual view
port.
... the visual view
port is the visual
portion of a screen excluding on-screen keyboards, areas outside of a pinch-zoom area, or any other on-screen artifact that doesn't scale with the dimensions of a page.
... visual view
port concepts and usage the mobile web contains two view
ports, the layout view
port and the visual view
port.
...And 17 more matches
AT APIs Support
but in the meantime it more up-to-date and contains more details than existed analogues for at-spi and msaa this documentation explains how makers of screen readers, voice dictation packages, onscreen keyboards, magnification software and other assitive technologies can sup
port gecko-based software.
... we provide for them the sup
port of these products on windows, linux/unix and os x platforms.
...gecko can render a variety of content, not just html and sup
ports key web standards such as cascading style sheets, javascript and the w3c dom.
...And 15 more matches
@import - CSS: Cascading Style Sheets
the @im
port css at-rule is used to im
port style rules from other style sheets.
... syntax @im
port url; @im
port url list-of-media-queries; @im
port url sup
ports( sup
ports-query ); @im
port url sup
ports( sup
ports-query ) list-of-media-queries; where: url is a <string> or a <url> representing the location of the resource to im
port.
...if the browser does not sup
port any these queries, it does not load the linked resource.
...And 15 more matches
JSErrorReport
describes the format of a js error that is used either by the internal error re
porting mechanism or by a user-defined error-re
porting mechanism.
... syntax jserrorre
port(); properties name type description filename const char * indicates the source file or url that produced the error condition.
...callers should set this flag for cross-origin scripts, and it will be propagated appropriately to child scripts and passed back in jserrorre
ports.
...And 13 more matches
Components.utils.exportFunction
a function ex
ported from privileged to less-privileged code can be called from the less privileged code's context.
... the ex
ported function does not have to be added to the less privileged code's global window object: it can be ex
ported to any object in the target scope.
... ex
portfunction() is made available as a global in sandboxes which have the wantex
porthelpers option set in the sandbox() constructor.
...And 13 more matches
nsISocketTransportService
netwerk/base/public/nsisockettrans
portservice.idlscriptable this interface provides a mapping between a socket type and its associated socket provider instance.
... inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) implemented by: @mozilla.org/network/socket-trans
port-service;1.
... to create an instance, use: var sockettrans
portservice = components.classes["@mozilla.org/network/socket-trans
port-service;1"] .getservice(components.interfaces.nsisockettrans
portservice); method overview void attachsocket(in prfiledescptr afd, in nsasockethandlerptr ahandler); native code only!
...And 13 more matches
RTCStatsReport - Web APIs
the rtcstatsre
port interface provides a statistics re
port obtained by calling one of the rtcpeerconnection.getstats(), rtcrtpreceiver.getstats(), and rtcrtpsender.getstats() methods.
... this statistics re
port contains a mapping of statistic category string names to objects containing the corresponding statistics data.
...the statistic category names are members of the enumerated type rtcstatstype, as follows: candidate-pair an rtcicecandidatepairstats object providing statistics related to an rtcicetrans
port.
...And 13 more matches
@viewport - CSS: Cascading Style Sheets
note: see https://github.com/w3c/csswg-drafts/issues/4766 for discussion around @view
port's removal from the standards track.
... the @view
port css at-rule lets you configure the view
port through which the document is viewed.
... it's primarily used for mobile devices, but is also used by desktop browsers that sup
port features like "snap to edge" (such as microsoft edge).
...And 13 more matches
Strict-Transport-Security - HTTP
the http strict-trans
port-security response header (often abbreviated as hsts) lets a web site tell browsers that it should only be accessed using https, instead of using http.
... header type response header forbidden header name no syntax strict-trans
port-security: max-age=<expire-time> strict-trans
port-security: max-age=<expire-time>; includesubdomains strict-trans
port-security: max-age=<expire-time>; preload directives max-age=<expire-time> the time, in seconds, that the browser should remember that a site is only to be accessed using https.
... preload optional see preloading strict trans
port security for details.
...And 13 more matches
Mozilla Port Blocking
background on 08/15/2001, cert issued a vulnerability note vu#476267 for a "cross-protocol" scripting attack, known as the html form protocol attack which allowed sending arbitrary data to most tcp
ports.
...mozilla responded by modifying how protocols can access
ports.
... by default, mozilla now blocks access to specific
ports which are used by vulnerable services in order to prevent security vulnerabilites due to "cross-protocol scripting".
...And 12 more matches
JS_SetErrorReporter
get or specify the error re
porting mechanism for an application.
... syntax jserrorre
porter js_geterrorre
porter(jsruntime *rt); jserrorre
porter js_seterrorre
porter(jsruntime *rt, jserrorre
porter er); name type description cx jsruntime * pointer to a js runtime whose errors should be re
ported via your function.
... er jserrorre
porter the user-defined error re
porting function to use in your application, described below.
...And 12 more matches
WebGLRenderingContext.viewport() - Web APIs
the webglrenderingcontext.view
port() method of the webgl api sets the view
port, which specifies the affine transformation of x and y from normalized device coordinates to window coordinates.
... syntax void gl.view
port(x, y, width, height); parameters x a glint specifying the horizontal coordinate for the lower left corner of the view
port origin.
... y a glint specifying the vertical coordinate for the lower left corner of the view
port origin.
...And 12 more matches
Content-Security-Policy-Report-Only - HTTP
the http content-security-policy-re
port-only response header allows web developers to experiment with policies by monitoring (but not enforcing) their effects.
... these violation re
ports consist of json documents sent via an http post request to the specified uri.
... header type response header forbidden header name no this header is not sup
ported inside a <meta> element.
...And 12 more matches
nsICrashReporter
xpcom/system/nsicrashre
porter.idlscriptable provides access to crash re
porting functionality.
... 1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void annotatecrashre
port(in acstring key, in acstring data); void appendappnotestocrashre
port(in acstring data); void appendobjcexceptioninfotoappnotes(in voidptr aexception); native code only!
... attributes attribute type description enabled boolean enable or disable the crashre
porter at runtime.
...And 11 more matches
nsIMemoryReporter
xpcom/base/nsimemoryre
porter.idlscriptable re
ports memory usage information for a single area of the software.
... 1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) any piece of code that wishes to allow its memory use to be monitored may create an nsimemoryre
porter object and then register it by calling nsimemoryre
portermanager.registerre
porter().
... once that has been done, the re
porter will be found by any client accessing the enumerator returned by nsimemoryre
portermanager.enumeratere
porters().
...And 11 more matches
Report - Web APIs
the re
port interface of the re
porting api represents a single re
port.
... re
ports can be accessed in a number of ways: via the re
portingobserver.takerecords() method — this returns all re
ports in an observer's re
port queue, and then empties the queue.
... via the re
ports parameter of the callback function passed into the re
portingobserver() constructor upon creation of a new observer instance.
...And 11 more matches
port - Archive of obsolete content
this article documents the
port object, which is used to communicate between a content script and the main add-on code.
... the
port object provides message sending and receiving api enabling conversations between a content script and the main add-on code.
... each end of the conversation has access to a
port: the content script via the global self property, and the main add-on code via a worker object associated with the sdk module you've used to attach the content script, such as page-mod or page-worker.
...And 10 more matches
nsISocketTransport
netwerk/base/public/nsisockettrans
port.idlscriptable this interface specializes nsitrans
port for communication over network sockets.
... inherits from: nsitrans
port last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) note: connection setup is triggered by opening an input or output stream, it does not start on its own.
...to create an instance, call nsisockettrans
portservice.createtrans
port() method overview prnetaddr getpeeraddr(); native code only!
...And 10 more matches
RTCIceCandidate.relatedPort - Web APIs
the rtcicecandidate interface's read-only related
port property indicates the
port number of reflexive or relay candidates.
... if the candidate is a host candidate (that is, its ip is in fact the real ip address of the remote peer), related
port is null.
... the related
port field's value is set when the rtcicecandidate() constructor is used.
...And 10 more matches
RTCIceTransportState - Web APIs
the rtcicetrans
portstate enumerated type defines the string values which may be returned by the state property on rtcicetrans
port objects.
... the trans
port state indicates which stage of the candidate gathering process is currently underway.
... values "new" the rtcicetrans
port is currently gathering local candidates, or is waiting for the remote device to begin to transmit the remote candidates, or both.
...And 10 more matches
Environment variables affecting crash reporting - Archive of obsolete content
the breakpad crash re
porting used in mozilla projects sup
ports some environment variables, primarily for testing purposes.
... the following environment variables affect crash re
porting: moz_crashre
porter_url sets the url that the crash re
porter will submit re
ports to.
... moz_crashre
porter_fulldump store full application memory in the minidump, so you can open it in a microsoft debugger.
...And 9 more matches
JS_ReportErrorNumber
re
port an error with an application-defined error code.
... syntax void js_re
porterrornumber(jscontext *cx, jserrorcallback errorcallback, void *userref, const unsigned errornumber, ...); void js_re
porterrornumberuc(jscontext *cx, jserrorcallback errorcallback, void *userref, const unsigned errornumber, ...); bool js_re
porterrorflagsandnumber(jscontext *cx, unsigned flags, jserrorcallback errorcallback, void *userref, const unsigned errornumber, ...); bool js_re
porterrorflagsandnumberuc(jscontext *cx, unsigned flags, jserrorcallback errorcallback, void *userref, const unsigned errornumber, ...); void js_re
porterrornumberucarray(jscontext *cx, jserrorcallback errorcallback, ...
... void *userref, const unsigned errornumber, const char16_t **args); // added in spidermonkey 19 name type description cx jscontext * the context in which to re
port the error.
...And 9 more matches
Components.utils.importGlobalProperties
im
ports various objects into a system scope.
...using this api you can im
port these objects into such a system scope.
...to im
port these objects into a sandbox, use the wantglobalproperties option in the sandbox constructor.
...And 9 more matches
Xptcall Porting Guide
overview xptcall is a library that sup
ports both invoking methods on arbitrary xpcom objects and implementing classes whose objects can impersonate any xpcom interface.
...this code needs to be
ported to all platforms that want to sup
port xptcall (and thus mozilla).
... the tree mozilla/xpcom/reflect/xptcall +--public // ex
ported headers +--src // core source | \--md // platform specific parts | +--mac // mac ppc | +--unix // all unix | \--win32 // win32 | +--test // simple tests to get started \--tests // full tests via api
porters are free to create subdirectories under the base md directory for their given platforms and to integrate into the build system as appropriate for their platform.
...And 9 more matches
RTCIceTransport.state - Web APIs
the read-only rtcicetrans
port property state returns the current state of the ice trans
port, so you can determine the state of ice gathering in which the ice agent currently is operating.
... syntax icestate = icetrans
port.state; value a domstring, whose value is one of those found in the enumerated type rtcicetrans
portstate, which indicates the stage of ice gathering that's currently underway.
... its value will be one of the following: "new" the rtcicetrans
port is currently gathering local candidates, or is waiting for the remote device to begin to transmit the remote candidates, or both.
...And 9 more matches
Transport Layer Security - Web security
the security of any connection using trans
port layer security (tls) is heavily dependent upon the cipher suites and security parameters selected.
... the trans
port layer security (tls) protocol is the standard for enabling two networked applications or devices to exchange information privately and robustly.
... although tls can be used on top of any low-level trans
port protocol, the original goal of the protocol was to encrypt http traffic.
...And 9 more matches
Exported WebAssembly functions - WebAssembly
ex
ported webassembly functions are how webassembly functions are represented in javascript.
... ex
ported...
... ex
ported webassembly functions are basically just javascript wrappers that represent webassembly functions in javascript.
...And 9 more matches
PR ImportTCPSocket
im
ports a native tcp socket into nspr.
... syntax #include "private/pprio.h" prfiledesc* pr_im
porttcpsocket(prosfd osfd); parameters the function has the following parameters: osfd the native file descriptor for the tcp socket to im
port.
... returns the function returns one of the following values: upon successful completion, a pointer to the prfiledesc object created for the newly im
ported native tcp socket.
...And 8 more matches
Components.utils.import
components.utils.im
port was introduced in firefox 3 and is used for sharing code between different scopes easily.
... for example, you can im
port xpcomutils.jsm to avoid copy/pasting long xpcom component registration boilerplate in your component files.
...gecko 2.0 adds sup
port for loading modules from chrome: urls, even those inside jar archives.
...And 8 more matches
nsIMemoryMultiReporter
xpcom/base/nsimemoryre
porter.idlscriptable re
ports multiple memory measurements using a callback function that gets called once for each measurement.
... 1.0 66 introduced gecko 7.0 inherits from: nsisup
ports last changed in gecko 12.0 (firefox 12.0 / thunderbird 12.0 / seamonkey 2.9) if you want to gather multiple measurements in a single operation (such as a single traversal of a large data structure), you can use a multi-re
porter to do so.
... the callback, which must implement the nsimemorymultire
portercallback interface, receives values that match the fields in the nsimemoryre
porter object.
...And 8 more matches
BasicCardRequest.supportedNetworks - Web APIs
the sup
portednetworks property of the basiccardrequest dictionary contains an array of domstrings representing the card networks that the retailer sup
ports (e.g.
... syntax sup
portednetworks : [value [, ...
... value]] value an array containing one or more domstrings, which describe the card networks the retailer sup
ports.
...And 8 more matches
DeprecationReportBody - Web APIs
the deprecationre
portbody interface of the re
porting api represents the body of a deprecation re
port (the return value of its re
port.body property).
... a deprecation re
port is generated when a deprecated feature (e.g.
... a deprecated api method) is used on a document being observed by a re
portingobserver.
...And 8 more matches
Document.importNode() - Web APIs
the document object's im
portnode() method creates a copy of a node or documentfragment from another document, to be inserted into the current document later.
... the im
ported node is not yet included in the document tree.
...the im
ported node is a clone of the original.
...And 8 more matches
ReportingObserver() - Web APIs
the re
portingobserver() constructor of the re
porting api creates a new re
portingobserver object instance, which can be used to collect and access re
ports.
... syntax new re
portingobserver(callback[, options]); parameters callback a callback function that runs when the observer starts to collect re
ports (i.e.
... via re
portingobserver.observe()).
...And 8 more matches
RTCIceCandidate.port - Web APIs
the rtcicecandidate interface's read-only
port property contains the
port number on the device at the address given by ip at which the candidate's peer can be reached.
... as is the case with most of rtcicecandidate's properties, the value of
port is extracted from the candidate a-line string specified when creating the rtcicecandidate.
... syntax var
port = rtcicecandidate.
port; value a 16-bit number indicating the
port number on the device at the address indicated by ip at which the candidate's peer can be reached.
...And 7 more matches
RTCIceTransport - Web APIs
the rtcicetrans
port interface provides access to information about the ice trans
port layer over which the data is being sent and received.
... properties the rtcicetrans
port interface inherits properties from its parent, eventtarget.
... it also offers the following properties: component read only the ice component being used by the trans
port.
...And 7 more matches
ReportingObserver - Web APIs
the re
portingobserver interface of the re
porting api allows you to collect and access re
ports.
... constructor re
portingobserver() creates a new re
portingobserver object instance, which can be used to collect and access re
ports.
... methods re
portingobserver.disconnect() stops a re
porting observer that had previously started observing from collecting re
ports.
...And 7 more matches
Introduction to the Real-time Transport Protocol (RTP) - Web APIs
the real-time trans
port protocol (rtp), defined in rfc 3550, is an ietf standard protocol to enable real-time connectivity for exchanging data that needs real-time priority.
... note: webrtc actually uses srtp (secure real-time trans
port protocol) to ensure that the exchanged data is secure and authenticated as appropriate.
... keeping latency to a minimum is especially im
portant for webrtc, since face-to-face communication needs to be performed with as little latency as possible.
...And 7 more matches
CSP: report-uri - HTTP
the deprecated http content-security-policy (csp) re
port-uri directive instructs the user agent to re
port attempts to violate the content security policy.
... these violation re
ports consist of json documents sent via an http post request to the specified uri.
... though the re
port-to directive is intended to replace the deprecated re
port-uri directive, re
port-to isn’t sup
ported in most browsers yet.
...And 7 more matches
WebAssembly.Module.exports() - JavaScript
the webassembly.module.ex
ports() function returns an array containing descriptions of all the declared ex
ports of the given module.
... syntax webassembly.module.ex
ports(module); parameters module a webassembly.module object.
... return value an array containing objects representing the ex
ported functions of the given module.
...And 7 more matches
MessagePort - Web APIs
the message
port interface of the channel messaging api represents one of the two
ports of a messagechannel, allowing messages to be sent from one
port and listening out for them arriving at the other.
... methods inherits methods from its parent, eventtarget postmessage() sends a message from the
port, and optionally, transfers ownership of objects to other browsing contexts.
... start() starts the sending of messages queued on the
port (only needed when using eventtarget.addeventlistener; it is implied when using message
port.onmessage.) close() disconnects the
port, so it is no longer active.
...And 6 more matches
RTCSctpTransport - Web APIs
the rtcsctptrans
port interface provides information which describes a stream control transmission protocol (sctp) trans
port.
... this provides information about limitations of the trans
port, but also provides a way to access the underlying datagram trans
port layer security (dtls) trans
port over which sctp packets for all of an rtcpeerconnection's data channels are sent and received.
... you don't create rtcsctptrans
port objects yourself; instead, you get access to the rtcsctptrans
port for a given rtcpeerconnection through its sctp property.
...And 6 more matches
XRViewport - Web APIs
the webxr device api's xrview
port interface provides properties used to describe the size and position of the current view
port within the xrwebgllayer being used to render the 3d scene.
... properties height read only the height, in pixels, of the view
port.
... width read only the width, in pixels, of the view
port.
...And 6 more matches
<strong>: The Strong Importance element - HTML: Hypertext Markup Language
the html strong im
portance element (<strong>) indicates that its contents have strong im
portance, seriousness, or urgency.
... usage notes the <strong> element is for content that is of "strong im
portance," including things of great seriousness or urgency (such as warnings).
... this could be a sentence that is of great im
portance to the whole page, or you could merely try to point out that some words are of greater im
portance compared to nearby content.
...And 6 more matches
WebAssembly.Module.imports() - JavaScript
the webassembly.im
ports() function returns an array containing descriptions of all the declared im
ports of the given module.
... syntax webassembly.module.im
ports(module); parameters module a webassembly.module object.
... return value an array containing objects representing the im
ported functions of the given module.
...And 6 more matches
NP_Port - Archive of obsolete content
syntax typedef struct np_
port { cgrafptr
port; /* graf
port */ int32
portx; /* position inside the topmost window */ int32
porty; } np_
port; fields the data structure has the following fields:
port standard mac os
port into which the plug-in should draw.
...
portx,
porty top-left corner of the plug-in rectangle in
port coordinates (taking the scroll position into account).
... description on mac os, the window field of an npwindow structure points to an np_
port object, which is allocated by the browser.
...And 5 more matches
JS_ReportError
create a formatted error or warning message to pass to a user-defined error re
porting function.
... syntax void js_re
porterror(jscontext *cx, const char *format, ...); bool js_re
portwarning(jscontext *cx, const char *format, ...); name type description cx jscontext * pointer to a js context from which to derive runtime information.
... description js_re
porterror is the simplest jsapi function for re
porting errors.
...And 5 more matches
JS_ReportOutOfMemory
re
ports a memory allocation error.
... syntax void js_re
portoutofmemory(jscontext *cx); void js_re
portallocationoverflow(jscontext *cx); // added in spidermonkey 1.8 name type description cx jscontext * the context in which to re
port the error.
... description call js_re
portoutofmemory to re
port that an operation failed because the system is out of memory.
...And 5 more matches
nsISupportsArray
xpcom/ds/nsisup
portsarray.idlscriptable please add a summary to this article.
... inherits from: nsicollection last changed in gecko 1.7 method overview boolean appendelements(in nsisup
portsarray aelements); violates the xpcom interface guidelines nsisup
portsarray clone(); void compact(); void deleteelementat(in unsigned long aindex); void deletelastelement(in nsisup
ports aelement); nsisup
ports elementat(in unsigned long aindex); violates the xpcom interface guidelines boolean enumeratebackwards(in nsisup
portsarrayenumfunc afunc, in voidptr adata); violates the xpcom interface guidelines boolean enumerateforwards(in nsisup
portsarrayenumfunc afunc, in voidptr adata); violates the xpcom interface guidelines boolean equals([const] in nsisup
portsarray other); violates the xpcom interface guidelines long getindexof(in nsisup
ports apossibleelement); l...
...ong getindexofstartingat(in nsisup
ports apossibleelement, in unsigned long astartindex); long getlastindexof(in nsisup
ports apossibleelement); long indexof([const] in nsisup
ports apossibleelement); violates the xpcom interface guidelines long indexofstartingat([const] in nsisup
ports apossibleelement, in unsigned long astartindex); violates the xpcom interface guidelines boolean insertelementat(in nsisup
ports aelement, in unsigned long aindex); violates the xpcom interface guidelines boolean insertelementsat(in nsisup
portsarray aother, in unsigned long aindex); violates the xpcom interface guidelines long lastindexof([const] in nsisup
ports apossibleelement); violates the xpcom interface guidelines boolean moveelement(in long afrom, in long ato); violates the xpcom interface guidel...
...And 5 more matches
Xptcall Porting Status
this is a status page for the multiplatform
porting of xptcall.
... xptcall has a faq and a
porting guide.
...mike shaver <shaver@mozilla.org> is the best contact regarding 'nix (unix, linux, finux, etc.)
ports of xptcall.
...And 5 more matches
MediaTrackSupportedConstraints.autoGainControl - Web APIs
the mediatracksup
portedconstraints dictionary's autogaincontrol property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the autogaincontrol constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 5 more matches
MediaTrackSupportedConstraints.noiseSuppression - Web APIs
the mediatracksup
portedconstraints dictionary's noisesuppression property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the noisesuppression constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 5 more matches
RTCIceTransport.ongatheringstatechange - Web APIs
the ongatheringstatechange event handler for the rtcicetrans
port interface specifies an event handler that is to be called when the gatheringstatechange event occurs on the trans
port.
... this event is delivered whenever the trans
port's gatheringstate property changes.
... syntax rtcicetrans
port.ongatheringstatechange = statechangehandler; value a function to be called when the rtcicetrans
port object's gathering state changes.
...And 5 more matches
Public-Key-Pins-Report-Only - HTTP
the http public-key-pins-re
port-only response header was used to send re
ports of pinning violation to the re
port-uri specified in the header but, unlike public-key-pins still allows browsers to connect to the server if the pinning is violated.
... the header is silently ignored in modern browsers as sup
port for hpkp has been removed.
... header type response header forbidden header name no syntax public-key-pins-re
port-only: pin-sha256="<pin-value>"; max-age=<expire-time>; includesubdomains; re
port-uri="<uri>" directives pin-sha256="<pin-value>" the quoted string is the base64 encoded subject public key information (spki) fingerprint.
...And 5 more matches
WebAssembly.Instance.prototype.exports - JavaScript
the ex
ports readonly property of the webassembly.instance object prototype returns an object containing as its members all the functions ex
ported from the webassembly module instance, to allow them to be accessed and used by javascript.
... instance.ex
ports examples using ex
ports after fetching some webassembly bytecode using fetch, we compile and instantiate the module using the webassembly.instantiatestreaming() function, im
porting a javascript function into the webassembly module in the process.
... we then call an ex
ported webassembly function that is ex
ported by the instance.
...And 5 more matches
import.meta - JavaScript
the im
port.meta object exposes context-specific metadata to a javascript module.
... syntax im
port.meta description the syntax consists of the keyword im
port, a dot, and the identifier meta.
... normally the left-hand side of the dot is the object on which property access is performed, but here im
port is not really an object.
...And 5 more matches
Supporting search suggestions in search plugins - Archive of obsolete content
firefox sup
ports search suggestions in opensearch plugins; as the user types in the search bar, firefox queries the url specified by the search plugin to fetch live search suggestions.
... implementing suggestion sup
port in the search plugin to sup
port search suggestions, a search plugin needs to define an extra <url> element with its type attribute set to "application/x-suggestions+json".
... (this means that a suggestion-sup
porting engine plugin will have two <url> elements, the other one being the main text/html search url.) for example, the yahoo search plugin has this <url> entry: <url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchterms}"/> if the user types "fir" into the search bar, then pauses, firefox inserts "fir" in place of {searchterms} and queries that url: <url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command=fir"/> the results are used to construct the suggestion list box.
...And 4 more matches
importUserCertificates - Archive of obsolete content
though some browsers may still sup
port it, it is in the process of being dropped.
... warning: the features mentioned in this article are deleted proprietary mozilla extensions, and are not sup
ported in any other browser.
... resultstring = crypto.im
portusercertificates("nicknamestring","certstring",forcebackup); argument description "nicknamestring" this is the nickname that will be used to describe the certificate in the client's certificate management ui.
...And 4 more matches
Porting NSPR to Unix Platforms - Archive of obsolete content
last modified 16 july 1998 <<< under construction >>> unix platforms are probably the easiest platforms to
port netscape
portable runtime (nspr) to.
...therefore i write this article to document the more mechanical part of the unix
porting task.
...
porting instructions you can use different threading packages to implement nspr threads.
...And 4 more matches
Crash reporting
firefox ships with an open-source crash re
porting system.
... this system is combination of projects: google breakpad client and server libraries mozilla-specific crash re
porting user interface and bootstrap code socorro collection and re
porting server where did my crash get submitted?
... crash data submitted using the mozilla crash re
porter is located on crash-stats.
...And 4 more matches
nsSupportsWeakReference
« xpcom api reference summary inherit from this c++ class to add canonical sup
port for nsisup
portsweakreference.
...#include "nsweakreference.h" class nssup
portsweakreference { ...
... }; remarks in addition to inheriting from this class, you will need to ensure that your nsisup
ports::queryinterface implementation exposes nsisup
portsweakreference as a sup
ported interface.
...And 4 more matches
nsIMacDockSupport
widget/nsimacdocksup
port.idlscriptable provides access to the dock on mac os x.
... 1.0 66 introduced gecko 2.0 inherits from: nsimacdocksup
port last changed in gecko 11.0 (firefox 11.0 / thunderbird 11.0 / seamonkey 2.8) implemented by: @mozilla.org/cookie-monster;1.
... to create an instance, use: var dock = components.classes["@mozilla.org/widget/macdocksup
port;1"] .getservice(components.interfaces.nsimacdocksup
port); see working with the mac os x dock for details and examples.
...And 4 more matches
nsISupports proxies
about xpcom proxies a proxy, in this context, is a stub object which enables a method of any class which is derived from nsisup
ports and has a typelib to be called on any in-process thread.
... the main reason for nsisup
ports proxies is that javascript and ui are on a single thread.
...herein lays the utility of nsisup
ports proxies.
...And 4 more matches
CrashReportBody - Web APIs
the crashre
portbody interface of the re
porting api represents the body of a crash re
port (the return value of its re
port.body property).
... a crash re
port is generated when a document becomes unusable due to the browser (or one of its processes) crashing.
... examples crash re
ports are generally only retrievable via endpoints set up using the re
port-to header.
...And 4 more matches
MessageChannel.port2 - Web APIs
the
port2 read-only property of the messagechannel interface returns the second
port of the message channel — the
port attached to the context at the other end of the channel, which the message is initially sent to.
... syntax channel.
port2; value a message
port object representing the second
port of the channel, the
port attached to the context at the other end of the channel.
...when the iframe has loaded, we pass
port2 to the iframe using message
port.postmessage along with a message.
...And 4 more matches
RTCRtpReceiver.transport - Web APIs
the read-only trans
port property of an rtcrtpreceiver object provides the rtcdtlstrans
port object used to interact with the underlying trans
port over which the receiver is exchanging real-time trans
port control protocol (rtcp) packets.
... this trans
port is responsible for receiving the data for the media on the receiver's track.
... syntax let trans
port = rtcrtpreceiver.trans
port; value an rtcdtlstrans
port object representing the underlying trans
port being used by the receiver to exchange packets with the remote peer, or null if the receiver isn't yet connected to a trans
port.
...And 4 more matches
RTCRtpSender.transport - Web APIs
the read-only trans
port property of an rtcrtpsender object provides the rtcdtlstrans
port object used to interact with the underlying trans
port over which the sender is exchanging real-time trans
port control protocol (rtcp) packets.
... this trans
port is responsible for receiving the data for the media on the sender's track.
... syntax let trans
port = rtcrtpsender.trans
port; value an rtcdtlstrans
port object representing the underlying trans
port being used by the sender to exchange packets with the remote peer, or null if the sender isn't yet connected to a trans
port.
...And 4 more matches
XRSystem: isSessionSupported() - Web APIs
the xrsystem method issessionsup
ported() returns a promise which resolves to true if the specified webxr session mode is sup
ported by the user's webxr device.
... syntax var issup
portedpromise = xr.issessionsup
ported(xrsessionmode) parameters xrsessionmode a domstring specifying the webxr session mode for which sup
port is to be checked.
... return value a promise that resolves to true if the specified session mode is sup
ported; otherwise the promise resolves to false.
...And 4 more matches
XRWebGLLayer.getViewport() - Web APIs
the xrwebgllayer interface's getview
port() method returns the xrview
port that should be used to render the specified xrview into the webgl layer.
... for webxr devices which use a single framebuffer for both the left and right eyes, the returned view
port represents the region of the framebuffer into which the scene should be rendered for the eye represented by the view.
... syntax let view
port = xrwebgllayer.getview
port(view); parameters view an xrview object indicating the view for which the view
port is to be returned.
...And 4 more matches
viewport-fit - CSS: Cascading Style Sheets
the view
port-fit css @view
port descriptor controls how a document's view
port fills the screen.
... syntax /* keyword values */ view
port-fit: auto; view
port-fit: contain; view
port-fit: cover; values auto this value doesn’t affect the initial layout view
port, and the whole web page is viewable.
... contain the view
port is scaled to fit the largest rectangle inscribed within the display.
...And 4 more matches
Porting the Library Detector - Archive of obsolete content
this example walks through the process of
porting a xul-based add-on to the sdk.
... it's a very simple add-on and a good candidate for
porting because there are suitable sdk apis for all its features.
... you can browse and run the
ported version in the sdk's examples directory.
...And 3 more matches
Extensions support in SeaMonkey 2 - Archive of obsolete content
starting with seamonkey 2 alpha 1 seamonkey sup
ports toolkit/-style extensions.
... the basics to sup
port seamonkey 2 as a target application, you need to add it to the list of target applications in the extension's install.rdf file.
... the code for that will look something like this: <em:targetapplication> <!-- seamonkey --> <description> <em:id>{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</em:id> <em:minversion>2.0</em:minversion> <em:maxversion>2.*</em:maxversion> </description> </em:targetapplication> the install.js is not sup
ported any more and should be removed.
...And 3 more matches
Supporting per-window private browsing - Archive of obsolete content
detecting private browsing mode determining whether or not a given dom window is private is simple: im
port resource://gre/modules/privatebrowsingutils.jsm and use privatebrowsingutils.iswindowprivate(window).
... try { // firefox 20+ components.utils.im
port("resource://gre/modules/privatebrowsingutils.jsm"); if (!privatebrowsingutils.iswindowprivate(window)) { ...
... } } catch(e) { components.utils.re
porterror(e); return; } } obtaining an nsiloadcontext for privacy-sensitive apis some apis (such as nsitransferable and nsiwebbrowserpersist) take nsiloadcontext arguments that are used to determine whether they should be classed as private or not (for example, whether the uri being persisted by saveuri should be added to the permanent download history).
...And 3 more matches
Supporting private browsing mode - Archive of obsolete content
this interface is deprecated since firefox 20, and will probably be completely removed in firefox 21.see sup
porting per-window private browsing for details.
... detecting whether private browsing mode is permanent requires gecko 2.0(firefox 4 / thunderbird 3.3 / seamonkey 2.1) firefox 4 added sup
port for having private browsing mode permanently enabled.
...r(this, "quit-application"); this._os.removeobserver(this, "private-browsing"); } }, get inprivatebrowsing() { return this._inprivatebrowsing; }, get watcher() { return this._watcher; }, set watcher(val) { this._watcher = val; } }; of special note is the fact that this helper object is designed to not break on versions of firefox without private browsing sup
port (those prior to firefox 3.5).
...And 3 more matches
Layout viewport - MDN Web Docs Glossary: Definitions of Web-related terms
the layout view
port is the view
port into which the browser draws a web page.
... essentially, it represents what is available to be seen, while the visual view
port represents what is currently visible on the user's display device.
... this becomes im
portant, for example, on mobile devices, where a pinching gesture can usually be used to zoom in and out on a site's contents.
...And 3 more matches
Viewport - MDN Web Docs Glossary: Definitions of Web-related terms
a view
port represents a polygonal (normally rectangular) area in computer graphics that is currently being viewed.
...content outside the view
port is not visible onscreen until scrolled into view.
... the
portion of the view
port that is currently visible is called the visual view
port.
...And 3 more matches
Installing headers using EXPORTS
public headers and idl files are copied during the ex
port phase of the build.
...for all <tt>makefile.in</tt>s which ex
port public headers, you should set module to the module name where the files should be copied to in <tt>dist/include</tt>.
... for normal headers that are to be ex
ported, you should set ex
ports to the list of headers to be ex
ported.
...And 3 more matches
JS_ReportPendingException
forward the current pending exception in a given jscontext to the current jserrorre
porter callback.
... syntax bool js_re
portpendingexception(jscontext *cx); name type description cx jscontext * the context in which the exception was thrown.
... description if an exception is pending in the context cx, js_re
portpendingexception converts the exception to a string and re
ports it to the current error re
porter.
...And 3 more matches
Components.utils.reportError
components.utils.re
porterror re
ports a javascript error object to the error console, and returns.
... it is meant for use by extension developers who have exception handler blocks which want to "eat" an exception, but still want to re
port it to the console.
...if it is not a javascript error object, the parameter is converted to a string and re
ported as a new error.
...And 3 more matches
nsIMemoryMultiReporterCallback
xpcom/base/nsimemoryre
porter.idlscriptable implement this interface to handle callbacks from nsimemorymultire
porter instances.
... 1.0 66 introduced gecko 7.0 inherits from: nsisup
ports last changed in gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4) method overview void callback(in acstring process, in autf8string path, in print32 kind, in print32 units, in print64 amount, in autf8string description, in nsisup
ports closure); methods callback() called to provide information from a multi-re
porter.
... implement this method to handle the re
port information.
...And 3 more matches
nsITransportEventSink
netwerk/base/public/nsitrans
port.idlscriptable implemented by clients that wish to receive trans
port events.
... inherits from: nsisup
ports last changed in gecko 1.7 method overview void ontrans
portstatus(in nsitrans
port atrans
port, in nsresult astatus, in unsigned long long aprogress, in unsigned long long aprogressmax); methods ontrans
portstatus() trans
port status notification.
... void ontrans
portstatus( in nsitrans
port atrans
port, in nsresult astatus, in unsigned long long aprogress, in unsigned long long aprogressmax ); parameters atrans
port the trans
port sending this status notification.
...And 3 more matches
AudioWorkletNode.port - Web APIs
the read-only
port property of the audioworkletnode interface returns the associated message
port.
... note: the
port at the other end of the channel is available under the
port property of the processor.
... syntax audioworkletnodeinstance.
port; value the message
port object that is connecting the audioworkletnode and its associated audioworkletprocessor.
...And 3 more matches
AudioWorkletProcessor.port - Web APIs
the read-only
port property of the audioworkletprocessor interface returns the associated message
port.
... note: the
port at the other end of the channel is available under the
port property of the node.
... syntax audioworkletprocessorinstance.
port; value the message
port object that is connecting the audioworkletprocessor and the associated audioworkletnode.
...And 3 more matches
CSS.supports() - Web APIs
the css.sup
ports() method returns a boolean value indicating if the browser sup
ports a given css feature, or not.
... syntax css.sup
ports(propertyname, value); css.sup
ports(sup
portcondition); parameters there are two distinct sets of parameters.
... the first one allows to test the sup
port of a pair property-value: propertyname a domstring containing the name of the css property to check.
...And 3 more matches
InterventionReportBody - Web APIs
the interventionre
portbody interface of the re
porting api represents the body of an intervention re
port (the return value of its re
port.body property).
... an intervention re
port is generated when usage of a feature in a web document has been blocked by the browser for reasons such as security, performance, or user annoyance.
... properties id a string representing the intervention that generated the re
port.
...And 3 more matches
MediaDevices.getSupportedConstraints() - Web APIs
the getsup
portedconstraints() method of the mediadevices interface returns an object based on the mediatracksup
portedconstraints dictionary, whose member fields each specify one of the constrainable properties the user agent understands.
... syntax var sup
portedconstraints = navigator.mediadevices.getsup
portedconstraints(); parameters none.
... return value a new object based on the mediatracksup
portedconstraints dictionary listing the constraints sup
ported by the user agent.
...And 3 more matches
MediaRecorder.isTypeSupported - Web APIs
the mediarecorder.istypesup
ported() static method returns a boolean which is true if the mime type specified is one the user agent should be able to successfully record.
... syntax var canrecord = mediarecorder.istypesup
ported(mimetype) parameters mimetype the mime media type to check.
...recording may still fail if there are insufficient resources to sup
port the recording and encoding process.
...And 3 more matches
MediaTrackSupportedConstraints.aspectRatio - Web APIs
the mediatracksup
portedconstraints dictionary's aspectratio property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the aspectratio constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.channelCount - Web APIs
the mediatracksup
portedconstraints dictionary's channelcount property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the channelcount constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.deviceId - Web APIs
the mediatracksup
portedconstraints dictionary's deviceid property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the deviceid constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.echoCancellation - Web APIs
the mediatracksup
portedconstraints dictionary's echocancellation property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the echocancellation constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.facingMode - Web APIs
the mediatracksup
portedconstraints dictionary's facingmode property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the facingmode constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.frameRate - Web APIs
the mediatracksup
portedconstraints dictionary's framerate property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the framerate constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... syntax framerateconstraintsup
ported = sup
portedconstraintsdictionary.framerate; value this property is present in the dictionary if the user agent sup
ports the framerate constraint.
...And 3 more matches
MediaTrackSupportedConstraints.groupId - Web APIs
the mediatracksup
portedconstraints dictionary's groupid property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the groupid constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.height - Web APIs
the mediatracksup
portedconstraints dictionary's height property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the height constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.latency - Web APIs
the mediatracksup
portedconstraints dictionary's latency property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the latency constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.sampleRate - Web APIs
the mediatracksup
portedconstraints dictionary's samplerate property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the samplerate constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.sampleSize - Web APIs
the mediatracksup
portedconstraints dictionary's samplesize property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the samplesize constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.volume - Web APIs
the mediatracksup
portedconstraints dictionary's volume property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the volume constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MediaTrackSupportedConstraints.width - Web APIs
the mediatracksup
portedconstraints dictionary's width property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsup
portedconstraints() if and only if the user agent sup
ports the width constraint.
... if the constraint isn't sup
ported, it's not included in the list, so this value will never be false.
... you can access the sup
ported constraints dictionary by calling navigator.mediadevices.getsup
portedconstraints().
...And 3 more matches
MessageChannel.port1 - Web APIs
the
port1 read-only property of the messagechannel interface returns the first
port of the message channel — the
port attached to the context that originated the channel.
... syntax channel.
port1; value a message
port object, the first
port of the channel, that is the
port attached to the context that originated the channel.
...when the <iframe> has loaded, we pass messagechannel.
port2 to the <iframe> using message
port.postmessage along with a message.
...And 3 more matches
Node.isSupported() - Web APIs
the node.issup
ported()returns a boolean flag containing the result of a test whether the dom implementation implements a specific feature and this feature is sup
ported by the specific node.
... syntax boolvalue = element.issup
ported(feature, version) parameters feature is a domstring containing the name of the feature to test.
...if the version is not specified, sup
porting any version of the feature will cause the method to return true.
...And 3 more matches
PushManager.supportedContentEncodings - Web APIs
the sup
portedcontentencodings read-only property of the pushmanager interface returns an array of sup
ported content codings that can be used to encrypt the payload of a push message.
... syntax var encodings[] = pushmanager.sup
portedcontentencodings value an array of strings.
... specifications specification status comment push apithe definition of 'sup
portedcontentencodings' in that specification.
...And 3 more matches
RTCDtlsTransport.state - Web APIs
the state read-only property of the rtcdtlstrans
port interface provides information which describes a datagram trans
port layer security (dtls) trans
port state.
... syntax let mystate = dtlstrans
port.state; value a string whose value is taken from the rtcdtlstrans
portstate enumerated type.
... closed the trans
port has been closed intentionally as the result of receipt of a close_notify alert, or calling rtcpeerconnection.close().
...And 3 more matches
RTCIceTransport.gatheringState - Web APIs
the read-only rtcicetrans
port property gatheringstate returns a domstring from the enumerated type rtcicegathererstate that indicates what gathering state the ice agent is currently in: "new", "gathering", or "complete".
... syntax gatherstate = rtcicetrans
port.gatheringstate; value a string from the rtcicegathererstate enumerated type whose value indicates the current state of the ice agent's candidate gathering process: "new" the rtcicetrans
port is newly created and has not yet started to gather ice candidates.
... "gathering" the trans
port is in the process of gathering candidates.
...And 3 more matches
RTCIceTransport: gatheringstatechange event - Web APIs
a gatheringstatechange event is sent to an rtcicetrans
port when its ice candidate gathering state changes.
... the gathering state, whose actual status can be found in the trans
port object's gatheringstate property, indicates whether or not the ice agent has begun gathering candidates, and if so, if it has finished doing so.
... bubbles no cancelable no interface event event handler property ongatheringstatechange the key difference between gatheringstatechange and icegatheringstatechange is that the latter represents the overall state of the connection including every rtcicetrans
port used by every rtcrtpsender and every rtcrtpreceiver on the entire connection.
...And 3 more matches
RTCIceTransport.getRemoteCandidates() - Web APIs
the rtcicetrans
port method getremotecandidates() returns an array which contains one rtcicecandidate for each of the candidates that have been received from the remote peer so far during the current ice gathering session.
... syntax remotecandidates = rtcicetrans
port.getremotecandidates(); parameters none.
... it's im
portant to keep in mind that there's no way to correlate these remote candidates with compatible local candidates.
...And 3 more matches
Report.body - Web APIs
the body read-only property of the re
port interface returns the body of the re
port, which is a re
portbody object containing the detailed re
port information.
... syntax let re
portbody = re
portinstance.body returns a re
portbody object containing the detailed re
port information.
... depending on what type the re
port is, the object returned will actually be a deprecationre
portbody, interventionre
portbody, crashre
portbody, or featurepolicyviolationre
portbody.
...And 3 more matches
Detecting CSS animation support - CSS: Cascading Style Sheets
testing for css animation sup
port this code will check to see if css animation sup
port is available: var animation = false, animationstring = 'animation', keyframeprefix = '', domprefixes = 'webkit moz o ms khtml'.split(' '), pfx = '', elem = document.createelement('div'); if( elem.style.animationname !== undefined ) { animation = true; } if( animation === false ) { for( var i = 0; i < domprefixes.length; i++ ) { ...
...we assume that animation is not sup
ported by setting animation to false.
...this means the browser sup
ports css animation without any prefix, which, to date, none of them do.
...And 3 more matches
WAI ARIA Live Regions/API Support - Developer guides
firefox 3 contains im
portant improvements to the way the mozilla engine exposes live changes in a document.
... these features will help screen reader developers improve the quality and performance of live region sup
port, both for pages that are marked up with aria live region markup, and for pages where the author did not add any additional markup.
... please read the aria spec or the live region re
port to learn about aria live region markup.
...And 3 more matches
Intl.Collator.supportedLocalesOf() - JavaScript
the intl.collator.sup
portedlocalesof() method returns an array containing those of the provided locales that are sup
ported in collation without having to fall back to the runtime's default locale.
... syntax intl.collator.sup
portedlocalesof(locales[, options]) parameters locales a string with a bcp 47 language tag, or an array of such strings.
... return value an array of strings representing a subset of the given locale tags that are sup
ported in collation without having to fall back to the runtime's default locale.
...And 3 more matches
Intl.DateTimeFormat.supportedLocalesOf() - JavaScript
the intl.datetimeformat.sup
portedlocalesof() method returns an array containing those of the provided locales that are sup
ported in date and time formatting without having to fall back to the runtime's default locale.
... syntax intl.datetimeformat.sup
portedlocalesof(locales[, options]) parameters locales a string with a bcp 47 language tag, or an array of such strings.
... return value an array of strings representing a subset of the given locale tags that are sup
ported in date and time formatting without having to fall back to the runtime's default locale.
...And 3 more matches
Intl.DisplayNames.supportedLocalesOf() - JavaScript
the intl.displaynames.sup
portedlocalesof() method returns an array containing those of the provided locales that are sup
ported in date and time formatting without having to fall back to the runtime's default locale.
... syntax intl.displaynames.sup
portedlocalesof(locales[, options]) parameters locales a string with a bcp 47 language tag, or an array of such strings.
... return value an array of strings representing a subset of the given locale tags that are sup
ported in date and time formatting without having to fall back to the runtime's default locale.
...And 3 more matches
Intl.ListFormat.supportedLocalesOf() - JavaScript
the intl.listformat.sup
portedlocalesof() method returns an array containing those of the provided locales that are sup
ported in date and time formatting without having to fall back to the runtime's default locale.
... syntax intl.listformat.sup
portedlocalesof(locales[, options]) parameters locales a string with a bcp 47 language tag, or an array of such strings.
... return value an array of strings representing a subset of the given locale tags that are sup
ported in date and time formatting without having to fall back to the runtime's default locale.
...And 3 more matches
Intl.NumberFormat.supportedLocalesOf() - JavaScript
the intl.numberformat.sup
portedlocalesof() method returns an array containing those of the provided locales that are sup
ported in number formatting without having to fall back to the runtime's default locale.
... syntax intl.numberformat.sup
portedlocalesof(locales[, options]) parameters locales a string with a bcp 47 language tag, or an array of such strings.
... return value an array of strings representing a subset of the given locale tags that are sup
ported in number formatting without having to fall back to the runtime's default locale.
...And 3 more matches
Intl.PluralRules.supportedLocalesOf() - JavaScript
the intl.pluralrules.sup
portedlocalesof() method returns an array containing those of the provided locales that are sup
ported in plural formatting without having to fall back to the runtime's default locale.
... syntax intl.pluralrules.sup
portedlocalesof(locales[, options]) parameters locales a string with a bcp 47 language tag, or an array of such strings.
... return value an array of strings representing a subset of the given locale tags that are sup
ported in plural formatting without having to fall back to the runtime's default locale.
...And 3 more matches
Intl.RelativeTimeFormat.supportedLocalesOf() - JavaScript
the intl.relativetimeformat.sup
portedlocalesof() method returns an array containing those of the provided locales that are sup
ported in date and time formatting without having to fall back to the runtime's default locale.
... syntax intl.relativetimeformat.sup
portedlocalesof(locales[, options]) parameters locales a string with a bcp 47 language tag, or an array of such strings.
... return value an array of strings representing a subset of the given locale tags that are sup
ported in date and time formatting without having to fall back to the runtime's default locale.
...And 3 more matches
Port - MDN Web Docs Glossary: Definitions of Web-related terms
for a computer connected to a network with an ip address, a
port is a communication endpoint.
...
ports are designated by numbers, and below 1024 each
port is associated by default with a specific protocol.
... for example, the default
port for the http protocol is 80 and the default
port for the https protocol is 443, so a http server waits for requests on those
ports.
...And 2 more matches
Internationalized Domain Names (IDN) Support in Mozilla Browsers
introduction netscape 7.1 is the first commercial browser that has built-in sup
port for internationalized domain name under the new ietf rfc's established in 2003.
...in march of 2003, three im
portant rfc's were approved by ietf.
...rfc's 3490, 3491, 3492.) these new rfc's now make it possible for domain name servers to register non-ascii domain names and application/client vendors to implement standardized sup
port for handling non-ascii characters in domain names.
...And 2 more matches
AuthenticatorAttestationResponse.getTransports() - Web APIs
gettrans
ports() is a method of the authenticatorattestationresponse interface that returns an array containing strings describing the different trans
ports which may be used by the authenticator.
... such trans
ports may be usb, nfc, ble or internal (applicable when the authenticator is not removable from the device).
... syntaxe arrtrans
ports = authenticatorattestationresponse.gettrans
ports() parameters none.
...And 2 more matches
BasicCardRequest.supportedTypes - Web APIs
the obsolete sup
portedtypes property of the basiccardrequest dictionary can optionally be provided to specify an array of domstrings representing the card types that the retailer sup
ports (e.g.
... syntax basiccardrequest.sup
portedtypes = [cardtype1...cardtypen]; value an array containing one or more domstrings, which describe the card types the retailer sup
ports.
... legal values are defined in basiccardtype enum, and are currently: credit debit prepaid example the following example shows a sample definition of the first parameter of the paymentrequest() constructor, the data property of which contains sup
portednetworks and sup
portedtypes properties.
...And 2 more matches
CSSSupportsRule - Web APIs
the csssup
portsrule interface describes an object representing a single css @sup
ports at-rule.
... it implements the cssconditionrule interface, and therefore the cssrule and cssgroupingrule interfaces with a type value of 12 (cssrule.sup
ports_rule).
... interface csssup
portsrule : cssconditionrule { } properties as a cssconditionrule and therefore a cssrule and a cssgroupingrule, csssup
portsrule also implements the properties of these interfaces.
...And 2 more matches
MediaTrackSupportedConstraints.cursor - Web APIs
the mediatracksup
portedconstraints dictionary's cursor property indicates whether or not the cursor constraint is sup
ported by the user agent and the device on which the content is being used.
... the sup
ported constraints list is obtained by calling navigator.mediadevices.getsup
portedconstraints().
... syntax iscursorsup
ported = sup
portedconstraints.cursor; value a boolean value which is true if the cursor constraint is sup
ported by the device and user agent.
...And 2 more matches
MediaTrackSupportedConstraints.displaySurface - Web APIs
the mediatracksup
portedconstraints dictionary's displaysurface property indicates whether or not the displaysurface constraint is sup
ported by the user agent and the device on which the content is being used.
... the sup
ported constraints list is obtained by calling navigator.mediadevices.getsup
portedconstraints().
... syntax isdisplaysurfacesup
ported = sup
portedconstraints.displaysurface; value a boolean value which is true if the displaysurface constraint is sup
ported by the device and user agent.
...And 2 more matches
MediaTrackSupportedConstraints.logicalSurface - Web APIs
the mediatracksup
portedconstraints dictionary's logicalsurface property indicates whether or not the logicalsurface constraint is sup
ported by the user agent and the device on which the content is being used.
... the sup
ported constraints list is obtained by calling navigator.mediadevices.getsup
portedconstraints().
... syntax islogicalsurfacesup
ported = sup
portedconstraints.logicalsurface; value a boolean value which is true if the logicalsurface constraint is sup
ported by the device and user agent.
...And 2 more matches
MessagePort.postMessage() - Web APIs
the postmessage() method of the message
port interface sends a message from the
port, and optionally, transfers ownership of objects to other browsing contexts.
... syntax
port.postmessage(message, transferlist); returns void.
...when the iframe has loaded, we pass messagechannel.
port2 to the iframe using window.postmessage along with a message.
...And 2 more matches
RTCConfiguration.iceTransportPolicy - Web APIs
the webrtc device api dictionary rtcconfiguration's icetrans
portpolicy property is a string indicating the trans
port selection policy the ice agent should use during negotiation of connections.
... its value must come from the rtcicetrans
portpolicy enumerated type.
... syntax let rtcconfiguration = { icetrans
portpolicy: policy }; rtcconfiguration.icetrans
portpolicy = policy; let policy = rtcconfiguration.icetrans
portpolicy; value a domstring which indicates what ice candidate policy the ice agent should use during the negotiation process, per the jsep standard.
...And 2 more matches
RTCIceTransport.getLocalCandidates() - Web APIs
the rtcicetrans
port method getlocalcandidates() returns an array of rtcicecandidate objects, one for each of the candidates that have been gathered by the local device during the current ice agent session.
... syntax localcandidates = rtcicetrans
port.getlocalcandidates(); parameters none.
...to find the best match found so far, call rtcicetrans
port.getselectedcandidatepair().
...And 2 more matches
RTCIceTransport.getSelectedCandidatePair() - Web APIs
the rtcicetrans
port method getselectedcandidatepair() returns an rtcicecandidatepair object containing the current best-choice pair of ice candidates describing the configuration of the endpoints of the trans
port.
... syntax candidatepair = rtcicetrans
port.getselectedcandidatepair(); parameters none.
...as soon as it finds an acceptable matching pair of candidates, meeting the requirements for the connection, a selectedcandidatepairchange event is fired at the rtcicetrans
port.
...And 2 more matches
RTCIceTransport.role - Web APIs
the read-only rtcicetrans
port property role indicates which ice role the trans
port is fulfilling: that of the controlling agent, or the agent that is being controlled.
... syntax icerole = rtcicetrans
port.role; value a domstring specifying whether the rtcicetrans
port represents the controlling agent or the controlled agent.
... the value must be one of those found in the enumerated type rtcicerole: "controlling" the rtcicetrans
port object is serving as the controlling agent.
...And 2 more matches
WorkerGlobalScope.importScripts() - Web APIs
the im
portscripts() method of the workerglobalscope interface synchronously im
ports one or more scripts into the worker's scope.
... syntax self.im
portscripts('foo.js'); self.im
portscripts('foo.js', 'bar.js', ...); parameters a comma-separated list of domstring objects representing the scripts to be im
ported.
... exceptions networkerror im
ported scripts were not served with a valid javascript mime type (i.e.
...And 2 more matches
XRViewport.width - Web APIs
the read-only xrview
port property width specifies the width of the view
port, in pixels, onto the drawing surface the 3d scene is to be rendered into.
... this is defined using this property along with the view
port's height and its origin given by its properties x and y.
... syntax width = xrview
port.width; value the view
port's width in pixels.
...And 2 more matches
XRViewport.x - Web APIs
the read-only xrview
port interface's x property indicates the offset from the left edge of the destination surface (typically a xrwebgllayer to the left edge of the view
port within the surface into which webxr content is to be rendered.
... the view
port's y property identifies the y component of the origin, and its is given by the width and height properties.
... syntax x = xrview
port.x; value the offset from the left edge of the rendering surface to the left edge of the view
port, in pixels.
...And 2 more matches
XRViewport.y - Web APIs
the read-only xrview
port interface's y property indicates the offset from the bottom edge of the destination surface (typically a xrwebgllayer to the bottom edge of the view
port within the surface into which webxr content is to be rendered.
... the view
port's x property identifies the x component of the origin, and its is given by the width and height properties.
... syntax y = xrview
port.y; value the offset from the bottom edge of the rendering surface to the bottom edge of the view
port, in pixels.
...And 2 more matches
CSP: report-to - HTTP
the content-security-policy re
port-to http response header field instructs the user agent to store re
porting endpoints for an origin.
... content-security-policy: ...; re
port-to groupname the directive has no effect in and of itself, but only gains meaning in combination with other directives.
... csp version 1 directive type re
porting directive this directive is not sup
ported in the <meta> element.
...And 2 more matches
SVG 1.1 Support in Firefox - SVG: Scalable Vector Graphics
note: as of gecko 2.0, gecko sup
ports svg animation using smil.
... there is also a description of the mozilla sup
port of the changes in svg 2.
... element implementation status a quick overview of the svg 1.1 elements and the current status of the native sup
port.
...And 2 more matches
SVG 2 support in Mozilla - SVG: Scalable Vector Graphics
those changes are listed below including their sup
port status within mozilla applications.
... svgexternalresourcesrequired removed never implemented svgelement.view
portelement and svgelement.ownersvgelement nullable implementation status unknown svgelement.getpresentationattribute() removed never implemented (prototype removed in bug 921456) svgcolor and svgicccolor removed never implemented svgelement.focus(), svgelement.blur() not implemented (bug 778654) svgelement.tabindex implemented (bug 778654) d...
...ures attribute removed implementation status unknown svgsvgelement.currentview and svgsvgelement.usecurrentview removed svgsvgelement.currentview was never implemented, svgsvgelement.usecurrentview not removed yet (bug 1174097) svgunknownelement not implemented (bug 1239218) lang attribute without namespace implemented (bug 721920) svgsvgelement.view
port removed never implemented xml:base attribute removed implementation status unknown reorder descendent elements of <switch> having systemlanguage attribute according to allowreorder smil attribute implementation status unknown made <tspan> and <textpath> graphics elements implementation status unknown allow x, y, width, and height on <symbol> impl...
...And 2 more matches
<xsl:apply-imports> - XSLT: Extensible Stylesheet Language Transformations
xslt/xpath reference: xslt elements, exslt functions, xpath functions, xpath axes the <xsl:apply-im
ports> element is fairly arcane, used mostly in complex stylesheets.
... im
port precedence requires that template rules in main stylesheets have higher precedence than template rules in im
ported stylesheets.
... sometimes, however, it is useful to be able to force the processor to use a template rule from the (lower precedence) im
ported stylesheet rather than an equivalent rule in the main stylesheet.
...And 2 more matches
<xsl:import> - XSLT: Extensible Stylesheet Language Transformations
xslt/xpath reference: xslt elements, exslt functions, xpath functions, xpath axes the <xsl:im
port> element is a top-level element that serves to im
port the contents of one stylesheet into another stylesheet.
... generally speaking, the contents of the im
ported stylesheet have a lower im
port precedence than that of the im
porting stylesheet.
... syntax <xsl:im
port href=uri /> required attributes href specifies the uri of the stylesheet to im
port.
...And 2 more matches
ECMAScript 5 support in Mozilla - Archive of obsolete content
the javascript runtime used in the latest versions of mozilla projects including both firefox and thunderbird has full sup
port for ecmascript 5.1 features.
... this article covers the features sup
ported by different versions of mozilla's javascript runtime.
... sup
ported features added in javascript 1.8.5 (gecko 2, firefox 4 and later) firefox 4 has full ecmascript 5 sup
port including the object.* methods and strict mode.
... added in javascript 1.8.1 (gecko 1.9.1, firefox 3.5) native json sup
port object.getprototypeof() method.
Window.importDialog() - Archive of obsolete content
this function was only available in the original, xul-based version of firefox for android, which is no longer sup
ported; for that reason, this function is obsolete and should never be used.
... summary because opening windows on mobile isn't necessarily appropriate, the firefox mobile team designed the im
portdialog() method to replace window.opendialog().
... syntax newdialog = im
portdialog(aparent, asrc, aarguments) newdialog the opened window aparent the dialog's parent; can be null.
... example var dialog = im
portdialog(null, "chrome://myextension/content/dialog.xul", myobject); notes the xul passed to im
portdialog() is very similar to xul passed to window.opendialog(), with some limitations and caveats: only <dialog> top level elements are permitted.
DTLS (Datagram Transport Layer Security) - MDN Web Docs Glossary: Definitions of Web-related terms
datagram trans
port layer security (dtls) is a protocol used to secure datagram-based communications.
... it's based on the stream-focused trans
port layer security (tls), providing a similar level of security.
... learn more general knowledge datagram trans
port layer security on wikipedia specifications rfc 6347: datagram trans
port layer security version 1.2 datagram trans
port layer security protocol version 1.3 draft specification related specifications rfc 5763: framework for establishing a secure real-time trans
port protocol (srtp) security context using dtls rfc 5764: dtls extension to establish keys for the secure real-time trans
port pr...
...otocol (srtp) rfc 6083: dtls for stream control transmission protocol (sctp) rfc 8261: datagram trans
port layer security (dtls) encapsulation of sctp packets rfc 7350: datagram trans
port layer security (dtls) as trans
port for session traversal utilities for nat (stun) rfc 7925: tls / dtls profiles for the internet of things ...
Script-supporting element - MDN Web Docs Glossary: Definitions of Web-related terms
in an html document, script-sup
porting elements are those elements that don't directly contribute to the appearance or layout of the page; instead, they're either scripts or contain information that's only used by scripts.
... these elements may be im
portant, but do not affect the displayed page unless the page's scripts explicitly cause them to do so.
... there are only two script-sup
porting elements: <script> and <template>.
... technical reference to learn more, see script-sup
porting elements in kinds of html content.
Visual Viewport - MDN Web Docs Glossary: Definitions of Web-related terms
the
portion of the view
port that is currently visible is called the visual view
port.
... this can be smaller than the layout view
port, such as when the user has pinched-zoomed.
... the visual view
port is the visual
portion of a screen excluding on-screen keyboards, areas outside of a pinch-zoom area, or any other on-screen artifact that doesn't scale with the dimensions of a page.
... learn more general knowledge visual view
port api view
port on wikipedia a tale of two view
ports (quirksmode) view
port in the mdn glossary layout view
port in the mdn glossary ...
nsIEditorMailSupport
editor/idl/nsieditormailsup
port.idlscriptable provides simple editing actions for the thunderbird mail editor.
... inherits from: nsisup
ports last changed in gecko 1.7 method overview nsisup
portsarray getembeddedobjects(); nsidomnode insertascitedquotation(in astring aquotedtext, in astring acitation, in boolean ainserthtml); nsidomnode insertasquotation(in astring aquotedtext); void inserttextwithquotations(in domstring astringtoinsert); void pasteascitedquotation(in astring acitation, in long aselectiontype); void pasteasquotation(in long aselectiontype); void rewrap(in boolean arespectnewlines); void stripcites(); methods getembeddedobjects() get a list of img and object tags in the current document.
... nsisup
portsarray getembeddedobjects(); parameters none.
... return value an nsisup
portsarray containing the img and object tags of the current document.
DOMTokenList.supports() - Web APIs
the sup
ports() method of the domtokenlist interface returns true if a given token is in the associated attribute's sup
ported tokens.
... this method is intended to sup
port feature detection.
... syntax let trueorfalse = element.sup
ports(token) parameters token a domstring containing the token to query for.
... example let iframe = document.getelementbyid('display'); if (iframe.sandbox.sup
ports('an-upcoming-feature')) { // sup
port code for mystery future feature } else { // fallback code } if (iframe.sandbox.sup
ports('allow-scripts')) { // instruct frame to run javascript // // (note: this feature is well-sup
ported; this is just an example!) // } specifications specification status comment credential management level 1 working draft initial definition.
Document.queryCommandSupported() - Web APIs
the document.querycommandsup
ported() method re
ports whether or not the specified editor command is sup
ported by the browser.
... syntax issup
ported = document.querycommandsup
ported(command); parameters command the command for which to determine sup
port.
... return value returns a boolean which is true if the command is sup
ported and false if the command isn't.
... notes the 'paste' command return false not only if the feature is unavailable, but also if the script calling it has insufficient privileges to perform the action [1] example var flg = document.querycommandsup
ported("selectall"); if(flg) { // ...do something } specifications specification status comment execcommand ...
HTMLFormElement.reportValidity() - Web APIs
the htmlformelement.re
portvalidity() method returns true if the element's child controls satisfy their validation constraints.
... when false is returned, cancelable invalid events are fired for each invalid child and validation problems are re
ported to the user.
... syntax htmlformelement.re
portvalidity() return value boolean example document.forms['myform'].addeventlistener('submit', function() { document.forms['myform'].re
portvalidity(); }, false); specifications specification status comment html living standardthe definition of 'htmlformelement.re
portvalidity()' in that specification.
... living standard html 5.1the definition of 'htmlformelement.re
portvalidity()' in that specification.
MediaSource.isTypeSupported() - Web APIs
the mediasource.istypesup
ported() static method returns a boolean value which is true if the given mime type is likely to be sup
ported by the current user agent.
... syntax var isitsup
ported = mediasource.istypesup
ported(mimetype); parameters mimetype the mime media type that you want to test sup
port for in the current browser.
... example the following snippet is from an example written by nick desaulniers (view the full demo live, or download the source for further investigation.) var asseturl = 'frag_bunny.mp4'; // need to be specific for blink regarding codecs // ./mp4info frag_bunny.mp4 | grep codec var mimecodec = 'video/mp4; codecs="avc1.42e01e, mp4a.40.2"'; if ('mediasource' in window && mediasource.istypesup
ported(mimecodec)) { var mediasource = new mediasource; //console.log(mediasource.readystate); // closed video.src = url.createobjecturl(mediasource); mediasource.addeventlistener('sourceopen', sourceopen); } else { console.error('unsup
ported mime type or codec: ', mimecodec); } function sourceopen (_) { //console.log(this.readystate); // open var mediasource = this; var sourcebuffer ...
...ebuffer(mimecodec); fetchab(asseturl, function (buf) { sourcebuffer.addeventlistener('updateend', function (_) { mediasource.endofstream(); video.play(); //console.log(mediasource.readystate); // ended }); sourcebuffer.appendbuffer(buf); }); }; specifications specification status comment media source extensionsthe definition of 'istypesup
ported()' in that specification.
MessageEvent.ports - Web APIs
the
ports read-only property of the messageevent interface is an array of message
port objects representing the
ports associated with the channel the message is being sent through (where appropriate, e.g.
... syntax var my
ports = messageevent.
ports; value an array of message
port objects.
... example onconnect = function(e) { var
port = e.
ports[0];
port.addeventlistener('message', function(e) { var workerresult = 'result: ' + (e.data[0] * e.data[1]);
port.postmessage(workerresult); });
port.start(); // required when using addeventlistener.
...} specifications specification status comment html living standardthe definition of '
ports' in that specification.
MessagePort.close() - Web APIs
the close() method of the message
port interface disconnects the
port, so it is no longer active.
... this stops the flow of messages to that
port.
... syntax
port.close() returns void.
... channel.
port1.addeventlistener('message', handlemessage, false); function handlemessage(e) { para.innerhtml = e.data; textinput.value = ''; } channel.
port1.start(); you could stop messages being sent at any time using channel.
port1.close(); specifications specification status comment html living standardthe definition of 'close()' in that specification.
MessagePort: message event - Web APIs
the message event is fired on a message
port object when a message arrives on that channel.
... bubbles no cancelable no interface messageevent event handler property onmessage examples suppose a script creates a messagechannel and sends one of the
ports to a different browsing context, such as another <iframe>, using code like this: const channel = new messagechannel(); const my
port = channel.
port1; const targetframe = window.top.frames[1]; const targetorigin = 'https://example.org'; const messagecontrol = document.queryselector('#message'); const channelmessagebutton = document.queryselector('#channel-message'); channelmessagebutton.addeventlistener('click', () => { my
port.postmessage(messagecontrol.value); }) targetframe.postmessage('init', targetorigin, [channel.
port2]); the target can receive the
port and start liste...
...ning for messages on it using code like this: window.addeventlistener('message', (event) => { const my
port = event.
ports[0]; my
port.addeventlistener('message', (event) => { received.textcontent = event.data; }); my
port.start(); }); note that the listener must call message
port.start() before any messages will be delivered to this
port.
... this is only needed when using the addeventlistener() method: if the receiver uses onmessage instead, start() is called implicitly: window.addeventlistener('message', (event) => { const my
port = event.
ports[0]; my
port.onmessage = (event) => { received.textcontent = event.data; }; }); specifications specification status html living standard living standard ...
MessagePort: messageerror event - Web APIs
the messageerror event is fired on a message
port object when it receives a message that can't be deserialized.
... bubbles no cancelable no interface messageevent event handler property onmessageerror examples suppose a script creates a messagechannel and sends one of the
ports to a different browsing context, such as another <iframe>, using code like this: const channel = new messagechannel(); const my
port = channel.
port1; const targetframe = window.top.frames[1]; const targetorigin = 'https://example.org'; const messagecontrol = document.queryselector('#message'); const channelmessagebutton = document.queryselector('#channel-message'); channelmessagebutton.addeventlistener('click', () => { my
port.postmessage(messagecontrol.value); }) targetframe.postmessage('init', targetorigin, [channel.
port2]); the target can receive the
port and start ...
...listening for messages and message errors on it using code like this: window.addeventlistener('message', (event) => { const my
port = event.
ports[0]; my
port.addeventlistener('message', (event) => { received.textcontent = event.data; }); my
port.addeventlistener('messageerror', (event) => { console.error(event.data); }); my
port.start(); }); note that the listener must call message
port.start() before any messages will be delivered to this
port.
... this is only needed when using the addeventlistener() method: if the receiver uses onmessage instead, start() is called implicitly: window.addeventlistener('message', (event) => { const my
port = event.
ports[0]; my
port.onmessage = (event) => { received.textcontent = event.data; }; my
port.onmessageerror = (event) => { console.error(event.data); }; }); specifications specification status html living standard living standard ...
MessagePort.onmessage - Web APIs
the onmessage event handler of the message
port interface is an eventlistener, called whenever an messageevent of type message is fired on the
port — that is, when the
port receives a message.
...when the iframe has loaded, we pass messagechannel.
port2 to the iframe using message
port.postmessage along with a message.
... the handlemessage handler then responds to a message being sent back from the iframe using onmessage, putting it into a paragraph — messagechannel.
port1 is listened to, to check when the message arrives.
... var channel = new messagechannel(); var para = document.queryselector('p'); var ifr = document.queryselector('iframe'); var otherwindow = ifr.contentwindow; ifr.addeventlistener("load", iframeloaded, false); function iframeloaded() { otherwindow.postmessage('hello from the main page!', '*', [channel.
port2]); } channel.
port1.onmessage = handlemessage; function handlemessage(e) { para.innerhtml = e.data; } for a full working example, see our channel messaging basic demo on github (run it live too).
RTCIceCandidatePairStats.transportId - Web APIs
the trans
portid property uniquely identifies the rtcicetrans
port that was inspected to obtain the trans
port-related statistics contained in the rtcicecandidatepairstats object.
... syntax trans
portid = rtcicecandidatepairstats.trans
portid; value a domstring which uniquely identifies the rtcicetrans
port object from which the trans
port-related data was obtained for the statistics contained in this rtcicecandidatepairstats object.
... the trans
port-related statistics come from the rtctrans
portstats dictionary's properties.
... specifications specification status comment identifiers for webrtc's statistics apithe definition of 'rtcicecandidatepairstats.trans
portid' in that specification.
RTCIceCandidateStats.transportId - Web APIs
the rtcicecandidatestats dictionary's trans
portid property is a string that uniquely identifies the trans
port that produced the rtctrans
portstats from which information about this candidate was taken.
... syntax trans
portid = rtcicecandidatestats.trans
portid; value a domstring whose value uniquely identifies the trans
port from which any trans
port-related information accumulated in the rtcicecandidatestats was taken.
... this can be used to compare candidates that would use the same trans
port, for example.
... specifications specification status comment identifiers for webrtc's statistics apithe definition of 'rtcicecandidatestats.trans
portid' in that specification.
RTCIceTransport.component - Web APIs
the read-only rtcicetrans
port property component specifies whether the object is serving to trans
port rtp or rtcp.
... syntax icecomponent = rtcicetrans
port.component; value a domstring whose value comes from the enumerated type rtcicecomponent: "rtp" identifies an ice trans
port which is being used for the real-time trans
port protocol (rtp), or for rtp multiplexed with the rtp control protocol (rtcp).
... "rtcp" identifies an ice trans
port being used for rtcp, which is defined in rfc 3550, section 6.
... specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcicetrans
port.component' in that specification.
RTCIceTransport.getLocalParameters() - Web APIs
the rtcicetrans
port method getlocalparameters() returns an rtciceparameters object which provides information uniquely identifying the local peer for the duration of the ice session.
... the local peer's parameters are obtained during ice signaling and delivered to the trans
port when the client calls rtcpeerconnection.setlocaldescription().
... syntax parameters = rtcicetrans
port.getlocalparameters(); parameters none.
... specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcicetrans
port.getlocalparameters' in that specification.
RTCIceTransport.getRemoteParameters() - Web APIs
the rtcicetrans
port method getremoteparameters() returns an rtciceparameters object which provides information uniquely identifying the remote peer for the duration of the ice session.
... the remote peer's parameters are received during ice signaling and delivered to the trans
port when the client calls rtcpeerconnection.setremotedescription().
... syntax parameters = rtcicetrans
port.getremoteparameters(); parameters none.
... specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcicetrans
port.getremoteparameters' in that specification.
RTCIceTransport.onselectedcandidatepairchange - Web APIs
the rtcicetrans
port interface's onselectedcandidatepairchange event handler specifies a function to be called to handle the selectedcandidatepairchange event, which is fired when the ice agent selects a new candidate pair to be used for the connection.
... syntax rtcicetrans
port.onselectedcandidatepairchange = candidatepairhandler; value this propoerty should be set to reference an event handler function to be called by the ice agent when it discovers a new candidate pair that the rtcicetrans
port will be using for communication with the remote peer.
... the event handler can determine the current state by calling the trans
port's getselectedcandidatepair() method, which returns a rtcicecandidatepair whose rtcicecandidatepair.local and rtcicecandidatepair.global properties specify rtcicecandidate objects describing the local and remote candidates that are currently being used.
... var icetrans
port = pc.getsenders()[0].trans
port.icetrans
port; var localproto = document.getelementbyid("local-protocol"); var remoteproto = document.getelementbyid("remote-protocol"); icetrans
port.onselectedcandidatepairchange = function(event) { var pair = icetrans
port.getselectedcandidatepair(); localprotocol.innertext = pair.local.protocol.touppercase(); remoteprotocol.innertext = pair.remote.protocol.touppercase(); } specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcicetrans
port.onselectedcandidatepair...
RTCIceTransport.onstatechange - Web APIs
the onstatechange event handler for the rtcicetrans
port interface is a property which specifies a function to serve as the eventhandler for the statechange event that is fired whenever the trans
port's state changes.
... syntax rtcicetrans
port.onstatechange = statechangehandler; value set this property to reference a function you provide that is called by the webrtc layer when the rtcicetrans
port object's state changes.
... example this snippet establishes a handler for the statechange event that looks to see if the trans
port has entered the "failed" state, which indicates that the connection has failed with no chance of being automatically restored.
... var icetrans
port = pc.getsenders()[0].trans
port.icetrans
port; icetrans
port.onstatechange = function(event) { if (icetrans
port.state == "failed") { handlefailure(pc); } } specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcicetrans
port.onstatechange' in that specification.
RTCIceTransport: selectedcandidatepairchange event - Web APIs
a selectedcandidatepairchange event is sent to an rtcicetrans
port when the ice agent selects a new pair of candidates that describe the endpoints of a viable connection.
... together, the candidates can be used to establish a connection to be used by the rtcicetrans
port, and, by extension, by an rtcpeerconnection.
... let icetrans
port = pc.getsenders[0].trans
port.icetrans
port; let localprotoelem = document.getelementbyid("local-protocol"); let remoteprotoelem = document.getelementbyid("remote-protocol"); icetrans
port.addeventlistener("selectedcandidatepairchange", ev => { let pair = icetrans
port.getselectedcandidatepair(); localprotoelem.innertext = pair.local.protocol.touppercase(); remoteprotoelem.innertext = pair.remote.protocol.touppercase...
... let icetrans
port = pc.getsenders[0].trans
port.icetrans
port; let localprotoelem = document.getelementbyid("local-protocol"); let remoteprotoelem = document.getelementbyid("remote-protocol"); icetrans
port.onselectedcandidatepairchange = ev => { let pair = icetrans
port.getselectedcandidatepair(); localprotoelem.innertext = pair.local.protocol.touppercase(); remoteprotoelem.innertext = pair.remote.protocol.touppercase(); } specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'selectedcandidatepairchange' in that specification.
RTCRemoteOutboundRtpStreamStats.reportsSent - Web APIs
the rtcremoteoutboundrtpstreamstats dictionary's re
portssent property provides the number of sender re
ports (srs) the remote peer has transmitted to the local peer.
... syntax let re
portcount = rtcremoteoutboundrtpstreamstats.re
portssent; value an integer value which indicates the total number of rtcp sender re
ports so far sent by the remote peer to the local peer.
... usage notes sender re
ports, described in rfc 3550, section 6.4.1 with an overview in rfc 3550, section 6.4, are used by rtp to share data transmission quality feedback between the two peers.
... the data in these re
ports is used by webrtc to fill out various fields within the statistics objects, and this property's value indicates how many times that information was shared.
Report.type - Web APIs
the type read-only property of the re
port interface returns the type of re
port generated, e.g.
... syntax let re
porttype = re
portinstance.type returns a string representing the type of the re
port.
... examples let options = { types: ['deprecation'], buffered: true } let observer = new re
portingobserver(function(re
ports, observer) { let firstre
port = re
ports[0]; // log the first re
port's re
port type, i.e.
... "deprecation" console.log(firstre
port.type); }, options); specifications specification status comment re
porting apithe definition of 're
port.body' in that specification.
Report.url - Web APIs
the url read-only property of the re
port interface returns the url of the document that generated the re
port.
... syntax let re
porturl = re
portinstance.url returns a string representing the url of the document that generated the re
port.
... examples let options = { types: ['deprecation'], buffered: true } let observer = new re
portingobserver(function(re
ports, observer) { let firstre
port = re
ports[0]; // log the url of the document that generated the first re
port // e.g.
... "https://www.example.com/cats.html" console.log(firstre
port.url); }, options); specifications specification status comment re
porting apithe definition of 're
port.url' in that specification.
ReportingObserver.disconnect() - Web APIs
the disconnect() method of the re
portingobserver interface stops a re
porting observer that had previously started observing from collecting re
ports.
... after calling disconnect(), neither re
portingobserver.takerecords() nor the records parameter of the re
portingobserver() callback will return any re
ports.
... syntax re
portingobserverinstance.disconnect() examples let options = { types: ['deprecation'], buffered: true } let observer = new re
portingobserver(function(re
ports, observer) { re
portbtn.onclick = () => displayre
ports(re
ports); }, options); observer.observe() ...
... observer.disconnect() specifications specification status comment re
porting apithe definition of 're
portingobserver.disconnect()' in that specification.
ReportingObserver.takeRecords() - Web APIs
the takerecords() method of the re
portingobserver interface returns the current list of re
ports contained in the observer's re
port queue, and empties the queue.
... syntax re
portingobserverinstance.takerecords() return value an array of re
port objects.
... examples let options = { types: ['deprecation'], buffered: true } let observer = new re
portingobserver(function(re
ports, observer) { re
portbtn.onclick = () => displayre
ports(re
ports); }, options); observer.observe() // ...
... let records = observer.takerecords(); console.log(records); specifications specification status comment re
porting apithe definition of 're
portingobserver.takerecords()' in that specification.
ReportingObserverOptions - Web APIs
the re
portingobserveroptions dictionary of the re
porting api allows options to be set in the constructor when creating a re
portingobserver.
... properties types an array of strings representing the types of re
port to be collected by this observer.
... buffered a boolean that defines whether the re
ports that were generated before the observer was able to be created should be observable (true) or not (false).
... examples let options = { types: ['deprecation'], buffered: true } let observer = new re
portingobserver(function(re
ports, observer) { re
portbtn.onclick = () => displayre
ports(re
ports); }, options); specifications specification status comment re
porting apithe definition of 're
portingobserveroptions' in that specification.
ServiceWorkerMessageEvent.ports - Web APIs
im
portant: in modern browsers, this property has been deprecated.
... the
ports read-only property of the serviceworkermessageevent interface returns an array of message
port objects connected with the message channel the message is being sent through.
... syntax var my
ports = serviceworkermessageeventinstance.
ports; value an array of message
port objects.
... // set up a message channel to communicate with the sw var channel = new messagechannel(); channel.
port1.onmessage = function(e) { console.log(e.
ports); handlechannelmessage(e.data); } mysw = reg.active; mysw.postmessage('hello', [channel.
port2]); }); ...
URL.port - Web APIs
the
port property of the url interface is a usvstring containing the
port number of the url.
... if the url does not contain an explicit
port number, it will be set to ''.
... syntax const
portnumber = url.
port url.
port = new
portnumber value a usvstring.
... examples const url = new url('https://mydomain.com:80/svn/repos/'); console.log(url.
port); // logs '80' specifications specification status comment urlthe definition of 'url.
port' in that specification.
URLUtilsReadOnly.port - Web APIs
the urlutilsreadonly.
port read-only property returns a domstring containing the
port number of the url.
... syntax string = object.
port; examples // in a web worker, on the page https://developer.mozilla.org/urlutilsreadonly.
port var result = window.self.
port; // returns:'80' specifications specification status comment urlthe definition of 'urlutilsreadonly.
port' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet
port experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 3.5ie no sup
port noopera no sup
port nosafari no sup
port no...
...webview android no sup
port nochrome android no sup
port nofirefox android full sup
port 4opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
VisualViewport.onresize - Web APIs
the onresize event handler of the visualview
port interface is called when a view
port is resized, i.e.
... syntax visualview
port.onresize = function(e) { ...
... } examples visualview
port.onresize = function(e) { ...
... } specifications specification status comment visual view
port apithe definition of 'onresize' in that specification.
VisualViewport.onscroll - Web APIs
the onscroll event handler of the visualview
port interface is called when a view
port is scrolled, i.e.
... syntax visualview
port.onscroll = function(e) { ...
... } examples visualview
port.onscroll = function(e) { ...
... } specifications specification status comment visual view
port apithe definition of 'onscroll' in that specification.
VisualViewport: resize event - Web APIs
the resize event of the visualview
port interface is fired when the visual view
port is resized.
... bubbles no cancelable no interface event event handler property onresize examples you can use the resize event in an addeventlistener method: visualview
port.addeventlistener('resize', function() { ...
... }); or use the onresize event handler property: visualview
port.onresize = function() { ...
... }; specifications specification status comment visual view
port apithe definition of 'visualview
port events' in that specification.
VisualViewport: scroll event - Web APIs
the scroll event of the visualview
port interface is fired when the visual view
port is scrolled.
... bubbles no cancelable no interface event event handler property onscroll examples you can use the scroll event in an addeventlistener method: visualview
port.addeventlistener('scroll', function() { ...
... }); or use the onscroll event handler property: visualview
port.onscroll = function() { ...
... }; specifications specification status comment visual view
port apithe definition of 'visualview
port events' in that specification.
WebGLRenderingContext.getSupportedExtensions() - Web APIs
the webglrenderingcontext.getsup
portedextensions() method returns a list of all the sup
ported webgl extensions.
... syntax gl.getsup
portedextensions(); return value an array of strings with all the sup
ported webgl extensions.
... examples var canvas = document.getelementbyid('canvas'); gl = canvas.getcontext('webgl'); var extensions = gl.getsup
portedextensions(); // array [ 'angle_instanced_arrays', 'ext_blend_minmax', ...
...tc webgl_compressed_texture_etc webgl_compressed_texture_etc1 webgl_compressed_texture_pvrtc webgl_compressed_texture_s3tc webgl_compressed_texture_s3tc_srgb webgl_debug_renderer_info webgl_debug_shaders webgl_depth_texture webgl_draw_buffers webgl_lose_context specifications specification status comment webgl 1.0the definition of 'webglrenderingcontext.getsup
portedextensions' in that specification.
XRViewport.height - Web APIs
the read-only xrview
port property height specifies the height, in pixels, of the view
port onto the drawing surface within which the webxr view is to be rendered.
... syntax height = xrview
port.height; value the view
port's height in pixels.
... examples see the main xrview
port page for examples.
... specifications specification status comment webxr device apithe definition of 'xrview
port.height' in that specification.
HTML Imports - Web Components
firefox will not ship html im
ports in its current form.
... html im
ports is intended to be the packaging mechanism for web components, but you can also use html im
ports by itself.
... you im
port an html file by using a <link> tag in an html document like this: <link rel="im
port" href="myfile.html"> the im
port link type is new.
... specification specification status comment html im
ports working draft initial definition.
Transport Layer Security (TLS) - MDN Web Docs Glossary: Definitions of Web-related terms
trans
port layer security (tls), formerly known as secure sockets layer (ssl), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.
... all modern browsers sup
port the tls protocol, requiring the server to provide a valid digital certificate confirming its identity in order to establish a secure connection.
... note: tls 1.0 and 1.1 sup
port will be removed from all major browsers in early 2020; you'll need to make sure your web server sup
ports tls 1.2 or 1.3 going forward.
nsISupportsWeakReference
inherits from: nsisup
ports last changed in gecko 1.7 method overview nsiweakreference getweakreference(); methods getweakreference() produces an appropriate instance of nsiweakreference.
... remarks the xpcom glue library provides nssup
portsweakreference, a canonical implementation of nsisup
portsweakreference.
... see also nsiweakreference nssup
portsweakreference ...
nsITransportSecurityInfo
netwerk/socket/nsitrans
portsecurityinfo.idlscriptable this interface provides information about trans
port security, including the security state and any error message for the connection.
... inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) attributes attribute type description errormessage wstring error message on connection failure.
... see also nsisockettrans
port ...
LDAP Support
this document is intended to "fill in the gaps" about how enterprise customers can leverage and customize ldap sup
port in mozilla thunderbird.
...ame webpage1 workurl webpage2 homeurl birthyear birthyear custom1 custom1 custom2 custom2 custom3 custom3 custom4 custom4 notes notes notes description prefermailformat xmozillausehtmlmail lastmodifieddate modifytimestamp custom ldap attributes thunderbird sup
ports custom ldap attributes for various address book attributes.
... original document information author(s): scott macgregor copyright information:
portions of this content are © 1998–2010 by individual mozilla.org contributors; content available under a creative commons license | details.
Measure a portion of the page - Firefox Developer Tools
from the available toolbox buttons check the measure a
portion of the page checkbox.
... you will now see the measure a
portion of the page button at the top right of the toolbox, in the same place as the settings/options button.
...now when you mouse over the view
port, you'll see the mouse has a crosshair cursor with its current coordinates displayed beside it.
EcKeyImportParams - Web APIs
the eckeyim
portparams dictionary of the web crypto api represents the object that should be passed as the algorithm parameter into subtlecrypto.im
portkey() or subtlecrypto.unwrapkey(), when generating any elliptic-curve-based key pair: that is, when the algorithm is identified as either of ecdsa or ecdh.
...this may be any of the following names for nist-approved curves: p-256 p-384 p-521 examples see the examples for subtlecrypto.im
portkey().
... specifications specification status comment web cryptography apithe definition of 'subtlecrypto.eckeyim
portparams' in that specification.
File and Directory Entries API support in Firefox - Web APIs
the original file system api was created to let browsers implement sup
port for accessing a sandboxed virtual file system on the user's storage device.
... firefox only sup
ports reading from files in the file system.
... firefox doesn't sup
port the "filesystem:" url scheme.
HTMLHyperlinkElementUtils.port - Web APIs
the htmlhyperlinkelementutils.
port property is a usvstring containing the
port number of the url.
... if the url does not contain an explicit
port number, it will be set to ''.
... syntax string = object.
port; object.
port = string; examples // let's an <a id="myanchor" href="https://developer.mozilla.org:443/docs/htmlhyperlinkelementutils.
port"> element be in the document var anchor = document.getelementbyid("myanchor"); var result = anchor.
port; // returns:'443' specifications specification status comment html living standardthe definition of 'htmlhyperlinkelementutils.
port' in that specification.
HmacImportParams - Web APIs
the hmacim
portparams dictionary of the web crypto api represents the object that should be passed as the algorithm parameter into subtlecrypto.im
portkey() or subtlecrypto.unwrapkey(), when generating a key for the hmac algorithm.
... examples see the examples for subtlecrypto.im
portkey().
... specifications specification status comment web cryptography apithe definition of 'subtlecrypto.hmacim
portparams' in that specification.
Location: port - Web APIs
the
port property of the location interface is a usvstring containing the
port number of the url.
... if the url does not contain an explicit
port number, it will be set to ''.
... syntax string = object.
port; object.
port = string; examples // let's an <a id="myanchor" href="https://developer.mozilla.org:443/docs/location.
port"> element be in the document var anchor = document.getelementbyid("myanchor"); var result = anchor.
port; // returns:'443' specifications specification status comment html living standardthe definition of 'location.
port' in that specification.
MessagePort.start() - Web APIs
the start() method of the message
port interface starts the sending of messages queued on the
port.
... syntax
port.start() returns void.
... example in the following code block, you can see a handlemessage handler function, run when a message is sent back to this document using onmessage: channel.
port1.onmessage = handlemessage; function handlemessage(e) { para.innerhtml = e.data; } another option would be to do this using eventtarget.addeventlistener, however, when this method is used, you need to explicitly call start() to begin the flow of messages to this document: channel.
port1.addeventlistener('message', handlemessage, false); function handlemessage(e) { para.innerhtml = e.data; textinput.value = ''; } channel.
port1.start(); specifications specification status comment html living standardthe definition of 'start()' in that specification.
RTCIceCandidateStats.port - Web APIs
the rtcicecandidatestats dictionary's
port property specifies the network
port used by the candidate.
... syntax candidate
port = rtcicecandidatestats.
port; value an integer value indicating the network
port used by the rtcicecandidate described by the rtcicecandidatestats object.
... specifications specification status comment identifiers for webrtc's statistics apithe definition of 'rtcicecandidatestats.
port' in that specification.
RTCIceTransport: statechange event - Web APIs
a statechange event occurs when the rtcicetrans
port changes state.
... bubbles no cancelable no interface event event handler property rtcicetrans
port.onstatechange examples given an rtcpeerconnection, pc, the following code creates an event handler that calls a function named handlefailure() if the ice trans
port enters a failure state.
... let icetrans
port = pc.getsenders()[0].trans
port.icetrans
port; icetrans
port.addeventlistener("statechange", ev => { if (icetrans
port.state === "failed") { handlefailure(pc); } }, false); the same code, using the onstatechange event handler property, looks like this: let icetrans
port = pc.getsenders()[0].trans
port.icetrans
port; icetrans
port.onstatechange = ev => { if (icetrans
port.state === "failed") { handlefailure(pc); } }; specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'statechange' in that specification.
RTCRtpStreamStats.transportId - Web APIs
the rtcrtpstreamstats dictionary's trans
portid property is a string which uniquely identifies the object from which the statistics contained in the rtctrans
portstats properties in the rtcstatsre
port.
... syntax var trans
portid = rtcrtpstreamstats.trans
portid; value a domstring uniquely identifying the source of the statistics contained the rtctrans
portstats properties in the rtcstatsre
port.
... specifications specification status comment identifiers for webrtc's statistics apithe definition of 'rtcrtpstreamstats.trans
portid' in that specification.
RTCSctpTransport.state - Web APIs
the state read-only property of the rtcsctptrans
port interface provides information which describes a stream control transmission protocol (sctp) trans
port state.
... syntax var mystate = sctptrans
port.state; value a string whose value is taken from the rtcsctptrans
portstate enumerated type.
... specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcsctptrans
port.state' in that specification.
RsaHashedImportParams - Web APIs
the rsahashedim
portparams dictionary of the web crypto api represents the object that should be passed as the algorithm parameter into subtlecrypto.im
portkey() or subtlecrypto.unwrapkey(), when im
porting any rsa-based key pair: that is, when the algorithm is identified as any of rsassa-pkcs1-v1_5, rsa-pss, or rsa-oaep.
... examples see the examples for subtlecrypto.im
portkey().
... specifications specification status comment web cryptography apithe definition of 'subtlecrypto.rsahashedim
portparams' in that specification.
SharedWorker.port - Web APIs
the
port property of the sharedworker interface returns a message
port object used to communicate and control the shared worker.
... syntax myworker.
port; value a message
port object.
...multiple scripts can then access the worker through a message
port object accessed using the sharedworker.
port property — the
port is started using its start() method: var myworker = new sharedworker('worker.js'); myworker.
port.start(); for a full example, see our basic shared worker example (run shared worker.) specifications specification status comment html living standardthe definition of 'abstractworker.onerror' in that specification.
StorageQuota.supportedTypes - Web APIs
the sup
portedtypes read-only property of the storagequota interface returns a list of the available storage types.
... syntax var storagetypes = storagequota.sup
portedtypes value a frozen array of available storage types.
... specifications specification status comment quota management apithe definition of 'sup
portedtypes' in that specification.
VisualViewport.height - Web APIs
the height read-only property of the visualview
port interface returns the height of the visual view
port, in css pixels.
... syntax var height = visualview
port.height value a double.
... specifications specification status comment visual view
port apithe definition of 'height' in that specification.
VisualViewport.offsetTop - Web APIs
the offsettop read-only property of the visualview
port interface returns the offset of the top edge of the visual view
port from the top edge of the layout view
port in css pixels.
... syntax var offsettop = visualview
port.offsettop value a double.
... specifications specification status comment visual view
port apithe definition of 'offsettop' in that specification.
VisualViewport.offsetleft - Web APIs
the offsetleft read-only property of the visualview
port interface returns the offset of the left edge of the visual view
port from the left edge of the layout view
port in css pixels.
... syntax var offsetleft = visualview
port.offsetleft value a double.
... specifications specification status comment visual view
port apithe definition of 'offsetleft' in that specification.
VisualViewport.pageLeft - Web APIs
the pageleft read-only property of the visualview
port interface returns the x coordinate of the left edge of the visual view
port relative to the initial containing block origin, in css pixels.
... syntax var pageleft = visualview
port.pageleft value a double.
... specifications specification status comment visual view
port apithe definition of 'pageleft' in that specification.
VisualViewport.pageTop - Web APIs
the pagetop read-only property of the visualview
port interface returns the y coordinate of the top edge of the visual view
port relative to the initial containing block origin, in css pixels.
... syntax var pagetop = visualview
port.pagetop value a double.
... specifications specification status comment visual view
port apithe definition of 'pagetop' in that specification.
VisualViewport.scale - Web APIs
the scale read-only property of the visualview
port interface returns the pinch-zoom scaling factor applied to the visual view
port.
... syntax var scale = visualview
port.scale value a double.
... specifications specification status comment visual view
port apithe definition of 'scale' in that specification.
VisualViewport.width - Web APIs
the width read-only property of the visualview
port interface returns the width of the visual view
port, in css pixels.
... syntax var width = visualview
port.width value a double.
... specifications specification status comment visual view
port apithe definition of 'width' in that specification.
WEBGL_compressed_texture_astc.getSupportedProfiles() - Web APIs
the webgl_compressed_texture_astc.getsup
portedprofiles() method returns an array of strings containing the names of the astc profiles sup
ported by the implementation.
... syntax sequence<domstring> ext.getsup
portedprofiles(); return value an array of domstring elements indicating which astc profiles are sup
ported by the implementation.
... examples var ext = gl.getextension('webgl_compressed_texture_astc'); ext.getsup
portedprofiles(); // ["ldr"] specifications specification status comment webgl_compressed_texture_astcthe definition of 'webgl_compressed_texture_astc' in that specification.
Window.visualViewport - Web APIs
the visualview
port read-only property of the window interface returns a visualview
port object representing the visual view
port for a given window.
... syntax var visualview
port = window.visualview
port value a visualview
port object.
... specifications specification status comment visual view
port apithe definition of 'visualview
port' in that specification.
Handling media support issues in web content - Web media technologies
there is a drawback, however: because there are so many to choose from, with so many different kinds of licenses and design principles involved, each web browser developer is left to its own devices when deciding which media file types and codecs to sup
port.
... poster frames for video progressive images images—whether embedded using <img> or <picture>—don't sup
port a concept similar to poster frames.
... specifying multiple sources checking compatibility in javascript htmlmediaelement.canplaytype and mediasource.istypesup
ported...
Using Crash Reporting in a XULRunner Application - Archive of obsolete content
xulrunner application authors who wish to use crash re
porting must run a crash re
porting server.
... to enable crash re
porting on the client, set the following items in application.ini: [crash re
porter] enabled=true serverurl=https://your.server.url/submit note: because crash re
ports can contain private data including passwords, in production environments they should only be sent via https.
reftest opportunities files - Archive of obsolete content
many of these were checked with the layout regression test tool, which has been described as difficult to use and it apparently re
ported a lot of regressions that were not errors.
... if you can look at the html in one of these pages, and can see a way to get the same visual ouptut, then that is an obvious reftest op
portunity.
Updating an extension to support multiple Mozilla applications - Archive of obsolete content
this is done by adding new <targetapplication> tags to the install.rdf file, like this: <!-- describe the thunderbird versions we sup
port --> <em:targetapplication> <description> <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <em:minversion>1.5</em:minversion> <em:maxversion>2.0.0.*</em:maxversion> </description> </em:targetapplication> <!-- describe the sunbird versions we sup
port --> <em:targetapplication> <description> <em:id> {718e30fb-e89b-41dd-9da7-e2...
...5a45638b28}</em:id> <em:minversion>0.2</em:minversion> <em:maxversion>0.4.*</em:maxversion> </description> </em:targetapplication> these two blocks indicate that the extension sup
ports thunderbird versions 1.5 through 2.0.0.x, sunbird versions 0.2 through 0.4.x.
CSS -moz-bool-pref() @supports function
the -moz-bool-pref() @sup
ports condition is available to gecko chrome and ua stylesheets to check if a boolean preference is enabled.
...</div> css @sup
ports -moz-bool-pref("test") { #pref-test { background: green; } } @sup
ports not -moz-bool-pref("test") { #pref-test { background: red; } } result ...
Reporting a Performance Problem
this article will guide you in re
porting a performance problem using the built-in gecko profiler tool.
...before you do this, please share the performance profile with the addon authors through a bug re
port.
PR_ImportFileMapFromString
syntax #include <prshma.h> nspr_api( prfilemap * ) pr_im
portfilemapfromstring( const char *fmstring ); parameter the function has the following parameter: fmstring a pointer to string created by pr_ex
portfilemapasstring.
... description pr_im
portfilemapfromstring creates a prfilemap object from a string previously created by pr_ex
portfilemapasstring.
nsIDispatchSupport
js/src/xpconnect/idl/nsidispatchsup
port.idlnot scriptable please add a summary to this article.
... inherits from: nsisup
ports last changed in gecko 1.7 method overview void comvariant2jsval(in comvariantptr comvar, out jsval val); unsigned long gethostingflags(in string acontext); boolean isclassmarkedsafeforscripting(in nscidref cid, out boolean classexists); boolean isclasssafetohost(in jscontextptr cx, in nscidref cid, in boolean capscheck, out boolean classexists); boolean isobjectsafeforscripting(in voidptr theobject, in nsiidref id); void jsval2comvariant(in jsval var, out comvariant comvar); methods comvariant2jsval() converts a com variant to a jsval.
nsIEditorIMESupport
editor/idl/nsieditorimesup
port.idlscriptable please add a summary to this article.
... inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void begincomposition(in nstexteventreplyptr areply); native code only!
nsISupports
xpcom/base/nsisup
ports.idlscriptable all xpcom interfaces inherit this interface.
...on win32 systems, nsisup
ports is abi-compatible with microsoft com's iunknown interface.
nsISupportsCString
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for ascii character strings.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data acstring provides access to the native type represented by the object.
nsISupportsChar
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for single character values (often used to store an ascii character).
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data char provides access to the native type represented by the object.
nsISupportsDouble
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for double-precision floating-point values.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data double provides access to the native type represented by the object.
nsISupportsFloat
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for single-precision floating-point values.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data float provides access to the native type represented by the object.
nsISupportsID
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for boolean values.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data nsidptr provides access to the native type represented by the object.
nsISupportsInterfacePointer
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for xpcom objects.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data nsisup
ports provides access to the native type represented by the object.
nsISupportsPRBool
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for boolean values.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data prbool provides access to the native type represented by the object.
nsISupportsPRInt16
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for 16-bit signed integers.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data print16 provides access to the native type represented by the object.
nsISupportsPRInt32
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for 32-bit signed integers.
... 66 introduced gecko 1.0 inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data print32 provides access to the native type represented by the object.
nsISupportsPRInt64
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for 64-bit signed integers.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data print64 provides access to the native type represented by the object.
nsISupportsPRTime
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for prtime values.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data prtime provides access to the native type represented by the object.
nsISupportsPRUint16
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for 16-bit unsigned integers.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data pruint16 provides access to the native type represented by the object.
nsISupportsPRUint32
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for 32-bit unsigned integers.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data pruint32 provides access to the native type represented by the object.
nsISupportsPRUint64
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for 64-bit unsigned integers.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data pruint64 provides access to the native type represented by the object.
nsISupportsPRUint8
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for 8-bit unsigned integers.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data pruint8 provides access to the native type represented by the object.
nsISupportsPriority
xpcom/threads/nsisup
portspriority.idlscriptable this interface exposes the general notion of a scheduled object with an integral priority value.
... 1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) this interface does not strictly define what happens when the priority of an object is changed.
nsISupportsString
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for unicode character strings.
... inherits from: nsisup
portsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data astring provides access to the native type represented by the object.
nsISupportsVoid
xpcom/ds/nsisup
portsprimitives.idlscriptable this interface provides scriptable access for generic pointers.
... inherits from: nsisup
portsprimitive last changed in gecko 1.0 method overview string tostring(); attributes attribute type description data voidptr this attribute provides access to the native type represented by the object.
nsIWebappsSupport
toolkit/components/webapps/nsiwebappssup
port.idlscriptable please add a summary to this article.
... 1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void installapplication(in wstring title, in wstring uri, in wstring iconuri, in wstring icondata); boolean isapplicationinstalled(in wstring uri); methods installapplication() this method installs a web application.
nsIWorkerMessagePort
dom/interfaces/threads/nsidomworkers.idlscriptable this interface represents a worker thread's message
port, which is used to allow the worker to post messages back to its creator.
... 1.0 66 introduced gecko 1.9.1 inherits from: nsisup
ports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) method overview void postmessage(in domstring amessage); methods postmessage() posts a message into the event queue.
ExtendableMessageEvent.ports - Web APIs
the
ports read-only property of the extendablemessageevent interface returns the array containing the message
port objects representing the
ports of the associated message channel (the channel the message is being sent through.) syntax var my
ports = extendablemessageevent.
ports; value an array of message
port objects.
... var
port; self.addeventlistener('push', function(e) { var obj = e.data.json(); if(obj.action === 'subscribe' || obj.action === 'unsubscribe') {
port.postmessage(obj); } else if(obj.action === 'init' || obj.action === 'chatmsg') {
port.postmessage(obj); } }); self.onmessage = function(e) {
port = e.
ports[0]; } specifications specification status comment service workersthe definition of 'extendablemessageevent.
ports' in that specification.
MessagePort.onmessageerror - Web APIs
the onmessageerror event handler of the message
port interface is an eventlistener, called whenever an messageevent of type messageerror is fired on the
port—that is, when it receives a message that cannot be deserialized.
... syntax
port.onmessageerror = function() { ...
RTCIceCandidateStats.mozLocalTransport - Web APIs
the non-standard mozilla extension to the rtcicecandidatestats dictionary, mozlocaltrans
port, has been supplanted by the standard relayprotocol property.
... syntax instead of using mozlocaltrans
port, you should use code like this: localtrans
port = rtcicecandidatestats.relayprotocol; specifications not part of any specification.
ReportingObserver.observe() - Web APIs
the observe() method of the re
portingobserver interface instructs a re
porting observer to start collecting re
ports in its re
port queue.
... syntax re
portingobserverinstance.observe() examples let options = { types: ['deprecation'], buffered: true } let observer = new re
portingobserver(function(re
ports, observer) { re
portbtn.onclick = () => displayre
ports(re
ports); }, options); observer.observe() specifications specification status comment re
porting apithe definition of 're
portingobserver.observe()' in that specification.
Index - Web APIs
29 addresserrors api, address, addresserrors, dictionary, errors, interface, payment address, payment request, payment request api, reference, payment, paymentaddress the addresserrors dictionary is used by the payment request api to to re
port validation errors in a physical address (typically a billing address or a shipping address).
... 121 audioconfiguration api, audio, audioconfiguration, experimental, interface, media capabilities api, reference, video the audioconfiguration dictionary of the media capabilities api defines the audio file being tested when calling mediacapabilities.encodinginfo() or mediacapabilities.decodinginfo() to query whether a specific audio configuration is sup
ported, smooth, and/or power efficient.
...this is useful for decay or release
portions of adsr envelopes.
...And 380 more matches
Index - Archive of obsolete content
syntax highliting sup
port for .htaccess files less.
... 6 navigator.moznotification api, deprecated, mobile, non-standard, property, reference provides sup
port for creating notification objects, which are used to display desktop notification alerts to the user.
... currently, these are only sup
ported on firefox mobile and firefox os.
...And 123 more matches
Index
this can create a difficult situation for extension developers trying to sup
port multiple gecko versions (firefox 2 and 3, for example).
... 36 components.utils.ex
portfunction api, add-ons, components, extensions, language bindings, method, mozilla, non-standard, reference, webextensions, xpcom this function provides a safe way to expose a function from a privileged scope to a less-privileged scope.
...in this case it can be im
portant to be able to force a garbage collection cycle from javascript.
...And 111 more matches
sslfnc.html
ssl initialization functions ssl ex
port policy functions ssl configuration functions ssl communication functions ssl functions used by callbacks ssl handshake functions nss shutdown function deprecated functions ssl initialization functions this section describes the initialization functions that are specific to ssl.
... note that at least one of the functions listed in ssl ex
port policy functions must also be called during nss initialization.
...therefore, an application cannot use nss to perform any cryptographic operations until after it enables appropriate cipher suites by calling one of the ssl ex
port policy functions: nss_setdomesticpolicy, nss_setex
portpolicy, and nss_setfrancepolicy configure the cipher suites for domestic, international, and french versions of software products with encryption features.
...And 99 more matches
Index
found 353 pages: # page tags and summary 1 network security services jss, nss, needsmigration network security services (nss) is a set of libraries designed to sup
port cross-platform development of security-enabled client and server applications.
... applications built with nss can sup
port ssl v3, tls, pkcs #5, pkcs #7, pkcs #11, pkcs #12, s/mime, x.509 v3 certificates, and other security standards.
...in order to sup
port multiple operating systems (os), it is based on a cross platform
portability layer, called the netscape
portable runtime (nspr), which provides cross platform application programming interfaces (apis) for os specific apis like file system access, memory management, network communication, and multithreaded programming.
...And 87 more matches
JavaScript modules - JavaScript
it has therefore made sense in recent years to start thinking about providing mechanisms for splitting javascript programs up into separate modules that can be im
ported when needed.
... the good news is that modern browsers have started to sup
port module functionality natively, and this is what this article is all about.
... browser sup
port use of native javascript modules is dependent on the im
port and ex
port statements; these are sup
ported in browsers as follows: im
port desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsim
portchrome full sup
port 61edge full sup
port 16 full sup
port 16 full sup
port 15disabled disabled f...
...And 83 more matches
Web video codec guide - Web media technologies
for each codec, the containers (file types) that can sup
port them are also listed.
... codec name (short) full codec name container sup
port av1 aomedia video 1 mp4, webm avc (h.264) advanced video coding 3gp, mp4, webm h.263 h.263 video 3gp hevc (h.265) high efficiency video coding mp4 mp4v-es mpeg-4 video elemental stream 3gp, mp4 mpeg-1 mpeg-1 part 2 visual mpeg, quicktime mpeg-2 mpeg-2 part 2 visual mp4, mpeg, quicktime theora theora ogg vp8 video processor 8 3gp, ogg, webm vp9 video processor 9 mp4, ogg, webm factors affec...
...additionally, in saturated
portions of the image (that is, where colors are pure and intense, such as a bright, pure red [rgba(255, 0, 0, 1)]), color depths below 10 bits per component (10-bit color) allow banding, where gradients cannot be represented without visible stepping of the colors.
...And 76 more matches
Implementing a Microsoft Active Accessibility (MSAA) Server - Accessibility
practical tips for developers and how mozilla does it contents this document is for developers working to sup
port msaa in an application in order to make it accessible with 3rd party assistive technologies, as well as for hackers wishing to be involved in mozilla's msaa sup
port specifically.
...if you're interested in more about gecko's msaa implementation, read gecko info for windows accessibility vendors to learn how msaa clients can utilize gecko's msaa sup
port.
... msaa is the microsoft active accessibility (msaa) api, used on windows operating systems to sup
port assistive technologies for users with disabilities.
...And 69 more matches
Web audio codec guide - Web media technologies
additionally, webrtc implementations generally use a subset of these codecs for their encoding and decoding of media, and may sup
port additional codecs as well, for optimal cross-platform sup
port of video and audio conferencing, and to integrate better with legacy telecommunication solutions.
... common codecs the list below denotes the codecs most commonly used on the web and which containers (file types) sup
port them.
...of course, individual browsers may or may not choose to sup
port all of these codecs, and their sup
port for which container types can use them may vary as well.
...And 62 more matches
Migrate apps from Internet Explorer to Mozilla - Archive of obsolete content
introduction when netscape started the mozilla browser, it made the conscious decision to sup
port w3c standards.
... as a result, mozilla is not fully backwards-compatible with netscape navigator 4.x and microsoft internet explorer legacy code; for example, mozilla does not sup
port <layer> as i will discuss later.
... i'll also cover nonstandard technologies, such as xmlhttprequest and rich text editing, that mozilla does sup
port because no w3c equivalent existed at the time.
...And 60 more matches
Mozilla Crypto FAQ - Archive of obsolete content
in this document i try to answer some frequently asked questions about the mozilla web browser and mail/news client and its sup
port for ssl, s/mime, and related features based on cryptographic technology.
...encryption ex
port regulations published on january 14, 2000, the release on february 11, 2000, of source code for ssl, s/mime, and general pki functionality for use in the mozilla project, and the "bernstein advisory" issued by the bureau of ex
port administration on february 17, 2000.
... the questions in this faq address mozilla's sup
port for encryption and related security functionality, information im
portant to mozilla contributors relating to encryption functionality in mozilla, and general questions on u.s.
...And 58 more matches
Gecko info for Windows accessibility vendors
this faq explains how makers of windows screen readers, voice dictation packages and magnification software can sup
port gecko-based software.
... the base of our sup
port for these products is msaa (microsoft active accessibility), external readonly dom sup
port, and the keyboard api/user interface.
...it sup
ports html, xhtml, cascading style sheets (css) and the document object model (dom).
...And 58 more matches
Index - MDN Web Docs Glossary: Definitions of Web-related terms
adobe flash can run from sup
porting web browsers via a browser plug-in.
... 103 dtls (datagram trans
port layer security) dtls, intro datagram trans
port layer security (dtls) is a protocol used to secure datagram-based communications.
... it's based on the stream-focused trans
port layer security (tls), providing a similar level of security.
...And 57 more matches
Python binding for NSS
project information python-nss is a python binding for nss (network security services) and nspr (netscape
portable runtime).
... nss provides cryptography services sup
porting ssl, tls, pki, pkix, x509, pkcs*, etc.
... netscape
portable runtime.
...And 57 more matches
IDBObjectStore - Web APIs
"notified", { unique: false }); note.innerhtml += '<li>object store created.</li>'; }; // create a new item to add in to the object store var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: 'december', year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbobjectstorechrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
...And 57 more matches
Introduction to SSL - Archive of obsolete content
the ssl protocol ciphers used with ssl the ssl handshake the new internet engineering task force (ietf) standard protocol called trans
port layer security (tls) is based on ssl.
...some red hat products already sup
port tls.
... most other red hat products plan to sup
port the protocol in future versions.
...And 55 more matches
Permissions - Web APIs
this is not currently sup
ported in any browser.
...this is not currently sup
ported in any browser.
... browser sup
port the compatibility table on this page is generated from structured data.
...And 53 more matches
Image file type and format guide - Web media technologies
in this guide, we'll cover the image file types generally sup
ported by web browsers, and provide insights that will help you select the most appropriate formats to use for your site's imagery.
...however, the ones listed below are generally recognized as usable on the web, though bmp is generally not recommended as browser sup
port is potentially constrained; it should usually be avoided for web content.
... 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 chro...
...And 52 more matches
sslerr.html
ssl error codes sec error codes ssl error codes table 8.1 error codes defined in sslerr.h constant value description ssl_error_ex
port_only_server -12288 "unable to communicate securely.
... peer does not sup
port high-grade encryption." the local system was configured to sup
port the cipher suites permitted for domestic use.
... the remote system was configured to sup
port only the cipher suites permitted for ex
port use.
...And 51 more matches
BluetoothCharacteristicProperties - Web APIs
examples the following example shows how tell if a gatt characteristic sup
ports value change notifications.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbluetoothcharacteristicproperties experimentalchrome full sup
port 56notes full sup
port 56notes notes chromeos and macos only.
... full sup
port 56notes disabled notes linux and versions of windows earlier than 10.disabled from version 56: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
...And 49 more matches
Codecs used by WebRTC - Web media technologies
this guide reviews the codecs that browsers are required to implement as well as other codecs that some or all browsers sup
port for webrtc.
...however, rfc 7742 specifies that all webrtc-compatible browsers must sup
port vp8 and h.264's constrained baseline profile for video, and rfc 7874 specifies that browsers must sup
port at least the opus codec as well as g.711's pcma and pcmu formats.
... these two rfcs also lay out options that must be sup
ported for each codec, as well as specific user comfort features such as echo cancelation.
...And 48 more matches
WebIDL bindings
there are various helper objects and utility methods in dom/bindings that are also all in the mozilla::dom namespace and whose headers are all ex
ported into mozilla/dom (placed in $objdir/dist/include by the build process).
...if you also inherit from nsisup
ports, make sure the nsisup
ports comes before the nswrappercache in your list of parent classes.
... if you do need to hook up cycle collection, it will look like this in the common case of also inheriting from nsisup
ports: // add strong pointers your class holds here.
...And 47 more matches
Media container formats (file types) - Web media technologies
see codecs used by webrtc for information about codecs commonly used for making webrtc calls, as well as browser compatibility information around codec sup
port in webrtc.
...some sup
port only audio while others sup
port both audio and video.
...not all of these are broadly sup
ported by browsers, however; some combinations of container and codec are sometimes given their own file extensions and mime types as a matter of convenience, or because of their ubiquity.
...And 45 more matches
Starting WebLock
the method at the core of this interface is observe: void observe(in nsisup
ports asubject, in string atopic, in wstring adata); there aren't really any restrictions on what the three parameters (asubject, atopic and adata) may represent.
...xxx what is example 2?following example 2, you change the class definition to sup
port the nsiobserver interface and change ns_impl_isup
ports1 so that the queryinterface implementation knows that the component also sup
ports nsiobserver.
... the weblock class definition with sup
port for startup observation is below.
...And 42 more matches
Choosing the right approach - Learn web development
browser compatibility really good general sup
port, although the exact sup
port for callbacks in apis depends on the particular api.
... refer to the reference documentation for the api you're using for more specific sup
port info.
... browser compatibility desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsettimeoutchrome full sup
port 30edge full sup
port 12firefox full sup
port 1 full sup
port 1 full sup
port 52notes notes setinterval now defined on windoworworkerglobalscope mixin.ie full sup
port ...
...And 40 more matches
Modularization techniques - Archive of obsolete content
nsisup
ports the key interface in our model is the nsisup
ports interface, our equivalent to com's iunknown interface.
... nsisup
ports provides two key features, interface interrogation and reference counting.
... interface interrogation is a simple, uniform mechanism for determining which interfaces a object sup
ports, and for hiding the the mechanics of how the object was implemented.
...And 39 more matches
Fullscreen API - Web APIs
note: sup
port for this api varies somewhat across browsers, with many requiring vendor prefixes and/or not implementing the latest specification.
... see the browser compatibility section below for details on sup
port for this api.
... properties the document interface provides properties that can be used to determine if full-screen mode is sup
ported and available, and if full-screen mode is currently active, which element is using the screen.
...And 39 more matches
Selection API - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetselection experimentalchrome full sup
port 1edge full sup
port 12firefox full sup
port 1notes full sup
port 1notes notes the globaleventhandlers.onselectionchange and globaleventhandlers.onselectstart event handlers are sup
ported as of firefox 52.ie full sup
port ...
... 9opera full sup
port 9safari full sup
port 1webview android full sup
port 1chrome android full sup
port 18firefox android full sup
port 4notes full sup
port 4notes notes the globaleventhandlers.onselectionchange and globaleventhandlers.onselectstart event handlers are sup
ported as of firefox 52.opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port ...
... 1.0addrange experimentalchrome full sup
port 1edge full sup
port 12firefox full sup
port yesie ?
...And 38 more matches
CSS3 - Archive of obsolete content
the transparent color is now a real color (thanks to the sup
port for the alpha channel) and is a now an alias for rgba(0,0,0,0.0).
... css namespaces module recommendation since september 29th, 2011 adds the sup
port for the xml namespaces by defining the notion of css qualified name, using the ' | ' syntax and adding the @namespace css at-rule.
...detection of ecmascript sup
port, using the script media features is also proposed.
...And 37 more matches
Understanding WebAssembly text format - WebAssembly
like in an es2015 module, wasm functions must be explicitly ex
ported by an ex
port statement inside the module.
...let's start by doing this — first, we'll add a name preceded by a dollar sign, just after the func keyword: (func $add … ) now we need to add an ex
port declaration — this looks like so: (ex
port "add" (func $add)) here, add is the name the function will be identified by in javascript whereas $add picks out which webassembly function inside the module is being ex
ported.
... so our final module (for now) looks like this: (module (func $add (param $lhs i32) (param $rhs i32) (result i32) local.get $lhs local.get $rhs i32.add) (ex
port "add" (func $add)) ) if you want to follow along with the example, save the above our module into a file called add.wat, then convert it into a binary file called add.wasm using wabt (see converting webassembly text format to wasm for details).
...And 37 more matches
Multiple-column layout - Learn web development
cras
porttitor imperdiet nunc, at ultricies tellus laoreet sit amet.
... sed auctor cursus massa at
porta.
...cras
porttitor imperdiet nunc, at ultricies tellus laoreet sit amet.
...And 36 more matches
An Overview of XPCOM
but xpcom also provides several tools and libraries that enable the loading and manipulation of these components, services that help the developer write modular cross-platform code, and versioning sup
port, so that components can be replaced or upgraded without breaking or having to recreate the application.
... xpcom not only sup
ports component software development, it also provides much of the functionality that a development platform provides, such as: component management file abstraction object message passing memory management we will discuss the above items in detail in the coming chapters, but for now, it can be useful to think of xpcom as a platform for component development, in which features such as those listed above are provided.
...the most im
portant use of xpcom is within gecko, an open source, standards compliant, embeddable web browser and toolkit for creating web browsers and other applications.
...And 36 more matches
Handling common HTML and CSS problems - Learn web development
this includes linting code, handling css prefixes, using browser dev tools to track down problems, using polyfills to add sup
port into browsers, tackling responsive design problems, and more.
...in other cases, nascent features are not sup
ported consistently across browsers, which can make some features and styles not work for some users.
...linters can generally be customized to be stricter or more relaxed in their error/warning re
porting.
...And 35 more matches
Index
3 creating javascript jstest reftests ecmascript, guide, javascript, test in the js/src/tests directory, there are a few im
portant subdirectories.
...the allocation will then be retried (and may still fail.) 68 js::setoutofmemorycallback jsapi reference, reference, référence(2), spidermonkey unlike the error re
porter, which is only called if the exception for an oom bubbles up and is not caught, the js::outofmemorycallback is called immediately at the oom site to allow the embedding to capture the current state of heap allocation before anything is freed.
... 97 jserrorformatstring jsapi reference, reference, référence(2), spidermonkey jserrorformatstring is a struct to represent error message and type, returned by js_re
porterrornumber function.
...And 35 more matches
Gecko events
« at apis sup
port page this page offers a list of accessibility-related events sup
ported by gecko.
... is sup
ported: yes event_dom_destroy an object has been destroyed.
... is sup
ported: yes event_dom_significant_change an object's properties or content have changed significantly so that the type of object has really changed, and therefore the accessible should be destroyed or recreated.
...And 35 more matches
BluetoothRemoteGATTDescriptor - Web APIs
methods bluetoothremotegattdescriptor.readvalue() returns a promise that resolves to an arraybuffer holding a duplicate of the value property if it is available and sup
ported.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbluetoothremotegattdescriptor experimentalchrome full sup
port 57notes full sup
port 57notes notes macos only.
... full sup
port 57notes disabled notes linux and versions of windows earlier than 10.disabled from version 57: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
...And 35 more matches
Implementation Status - Archive of obsolete content
specification chapter index here we give an overview of xforms 1.1 specification chapters and the current status of the mozilla sup
port.
... the sections are marked with their current status: sup
ported, partial sup
port, in progress, and not currently sup
ported.
...document structure section title status notes bugs 3.1 namespaces sup
ported 3.2.1 common attributes sup
ported 3.2.2 linking attributes sup
ported 3.2.3 single-node binding attributes sup
ported 3.2.4 node-set binding attributes sup
ported 3.2.5 model item property attributes partial in some cases a loop error can occur on valid bindings 302168; 3.3.1 model sup
porte...
...And 34 more matches
CSS property compatibility table for form controls - Learn web development
the following compatibility tables try to summarize the state of css sup
port for html forms.
... how to read the tables values for each property, there are four possible values: yes there's reasonably consistent sup
port for the property across browsers.
... line-height this property is sup
ported inconsistently across browsers and you should avoid it.
...And 34 more matches
DMD
in this mode, dmd tracks the contents of the heap, including which heap blocks have been re
ported by memory re
porters.
... it helps us reduce the "heap-unclassified" value in firefox's about:memory page, and also detects if any heap blocks are re
ported twice.
...look at the "trigger" section below to see the full list of ways to get a dmd re
port once you have it activated.
...And 34 more matches
MathML Accessibility in Mozilla
this table below provides a list of mathml constructions and how they are read in mozilla applications for various platforms: windows: mathml sup
port is provided by nvda, which actually delegates math reading to the proprietary mathplayer plugin.
... mac: mathml sup
port is provided by voiceover.
...hence basic sup
port is available in gecko 41.0 (firefox 41.0 / thunderbird 41.0 / seamonkey 2.38) and we are still trying to keep in sync with webkit/voiceover.
...And 32 more matches
Index - Learn web development
beyond mechanical use, it's im
portant to learn how to use these technologies responsibly so that all readers might use your creations on the web.
... at, accessibility, article, beginner, css, codingscripting, html, javascript, learn, tools, users, assistive technology, keyboard, screan reader, screenreader this article should have given you a useful high-level overview of accessibility, shown you why it's im
portant, and looked at how you can fit it into your workflow.
...in fact, you'll sometimes see these terms misused in news re
ports and elsewhere, so getting them mixed up is understandable!
...And 31 more matches
IDBIndex - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbindexchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitcountchrome ...
...And 31 more matches
background-size - CSS: Cascading Style Sheets
if the pro
portions of the image differ from the element, it is cropped either vertically or horizontally so that no empty space remains.
... auto scales the background image in the corresponding direction such that its intrinsic pro
portions are maintained.
...however, if the background's background-attachment value is fixed, the positioning area is instead the entire view
port.
...And 30 more matches
The building blocks of responsive design - Progressive web apps (PWAs)
it is usually much better to create a single version of your code which doesn't care about what browser or platform is accessing the site, but instead uses feature tests to find out what code features the browser sup
ports or what the values of certain browser features are, and then adjusts the code appropriately.
...you don't get caught in the situation of having to bring out more new site versions as more new browsers and platforms come out, and adjust code as feature sup
port in existing browsers changes.
...this has a lot of advantages in that the layout will adapt to different view
port dimensions.
...And 30 more matches
Handling common JavaScript problems - Learn web development
such incompatibility problems persisted well into the early 2000s, as old browsers were still being used and still needed sup
porting.
... things have improved significantly since then; modern browsers do a good job of sup
porting "classic javascript features", and the requirement to use such code has diminished as the requirement to sup
port older browsers has lessened (although bear in mind that they have not gone away altogether).
...when clicked, each one should alert a message containing its number (the value of i at the time it was created), however each one re
ports i as 11, because for loops do all their iterating before nested functions are invoked.
...And 29 more matches
BasicCardResponse - Web APIs
the first of these three (sup
portedinstruments in the example below) contains a data property that has to conform to the structure defined by the basiccardrequest dictionary.
... var sup
portedinstruments = [{ sup
portedmethods: 'basic-card', data: { sup
portednetworks: ['visa', 'mastercard', 'amex', 'jcb', 'diners', 'discover', 'mir', 'unionpay'], sup
portedtypes: ['credit', 'debit'] } }]; var details = { total: {label: 'donation', amount: {currency: 'usd', value: '65.00'}}, displayitems: [ { label: 'original donation amount', amount: {currency: 'usd', value: '65.00'} } ], shippingoptions: [ { id: 'standard', label: 'standard shipping', amount: {currency: 'usd', value: '0.00'}, selected: true } ] }; var options = {requestshipping: true}; try { var request = new paymentrequest(sup
portedinstruments, details, options); // add event listeners here.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbasiccardresponsechrome no sup
port noedge no sup
port ≤18 — 79firefox full sup
port 56notes disabled full sup
port 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 tru...
...And 29 more matches
IDBTransaction - Web APIs
note also the functions attached to transaction event handlers to re
port on the outcome of the transaction opening in the event of success or failure.
... dbopenrequest.result; // add the data to the database adddata(); }; function adddata() { // create a new object to insert into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready to add data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed: database modification finished.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); // add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of the request (this does not mean the item // has been stored successfully in the db - for that you need transaction.oncomplete) note.innerhtml += '<li>request successful.</li>'; }; }; specifications specification status comment indexed database api 2.0the definition of 'idbtransaction' in that specification.
...And 28 more matches
Working with Svelte stores - Learn web development
give it the following content: im
port { writable } from 'svelte/store' ex
port const alert = writable('welcome to the to-do list app!') note: stores can be defined and used outside of svelte components, so you can organize them in any way you please.
... in the above code we im
port the writable() function from svelte/store and use it to create a new store called alert with an initial value of "welcome to the to-do list app!".
... we then ex
port the store.
...And 27 more matches
JSAPI User Guide
error re
porting is also per-context and is enabled using js_seterrorre
porter.
...it is a fine-grained api, sup
porting many different combinations of the parts, and giving applications precise control over how spidermonkey behaves.
...static jsclass globalclass = { "global", jsclass_global_flags, js_propertystub, js_deletepropertystub, js_propertystub, js_strictpropertystub, js_enumeratestub, js_resolvestub, js_convertstub, nullptr, nullptr, nullptr, nullptr, js_globalobjecttracehook }; // the error re
porter callback.
...And 27 more matches
IDBDatabase - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbdatabasechrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitabort eventchrome...
...And 27 more matches
Implementing feature detection - Learn web development
previous overview: cross browser testing next feature detection involves working out whether a browser sup
ports a certain block of code, and running different code depending on whether it does (or doesn't), so that the browser can always provide a working experience rather than crashing/erroring in some browsers.
... this article details how to write your own simple feature detection, how to use a library to speed up implementation, and native features for feature detection such as @sup
ports.
... the concept of feature detection the idea behind feature detection is that you can run a test to determine whether a feature is sup
ported in the current browser, and then conditionally run code to provide an acceptable experience both in browsers that do sup
port the feature, and browsers that don't.
...And 26 more matches
Windows Media in Netscape - Archive of obsolete content
this article explains how to embed the windows media player activex control in web pages to sup
port netscape 7.1, how to control the windows media player activex control using javascript and provides working examples.
...this control is widely used to provide inline media sup
port for web pages that provide sound, video and other media.
...netscape 7.1 is the first netscape gecko™ browser to sup
port the windows media player as an activex control -- previous netscape browsers did not sup
port any activex controls, and thus detecting which versions of netscape sup
port the windows media activex control is an im
portant first step towards building multimedia experiences using html, javascript, and the windows media activex control.
...And 25 more matches
nsIDOMWindowUtils
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 49.0 (firefox 49.0 / thunderbird 49.0 / seamonkey 2.46) implemented by: window.
...ount)] in pruint32 aidentifiers, [array, size_is(count)] in print32 axs, [array, size_is(count)] in print32 ays, [array, size_is(count)] in pruint32 arxs, [array, size_is(count)] in pruint32 arys, [array, size_is(count)] in float arotationangles, [array, size_is(count)] in float aforces, in pruint32 count, in long amodifiers, [optional] in boolean aignorerootscrollframe); void setcssview
port(in float awidthpx, in float aheightpx); void setdisplay
port(in float axpx, in float aypx, in float awidthpx, in float aheightpx); void setresolution(in float axresolution, in float ayresolution); void startpccountprofiling(); void stoppccountprofiling(); void suppresseventhandling(in boolean asuppress); void suspendtimeouts(); ...
...on gtk2, users can use "simple ime" which only sup
ports dead key inputting.
...And 25 more matches
Using feature queries - CSS: Cascading Style Sheets
feature queries are created using the css at-rule @sup
ports, and are useful as they give web developers a way to test to see if a browser has sup
port for a certain feature, and then provide css that will only run based on the result of that test.
...the difference is that with a media query you are testing something about the environment in which the web page is running, whereas with feature queries you are testing browser sup
port for css features.
... a feature query consists of the @sup
ports rule, followed by the property name and value you would like to test for.
...And 25 more matches
Audio and Video Delivery - Developer guides
currently, to sup
port all browsers we need to specify two formats, although with the adoption of mp3 and mp4 formats in firefox and opera, this is changing fast.
... to deliver video and audio, the general workflow is usually something like this: check what format the browser sup
ports via feature detection (usually a choice of two, as stated above).
... if the browser doesn't sup
port playback of any of the provided formats natively, either present a still image or use a fallback technology to present the video.
...And 25 more matches
The "codecs" parameter in common media types - Web media technologies
however, many media types—especially those that sup
port video tracks—can benefit from the ability to more precisely describe the format of the data within them.
...all of these file types sup
port a variety of codecs, and those codecs may have any number of profiles, levels, and other configuration factors.
...the list may also contain codecs not present in the file.= codec options by container the containers below sup
port extended codec options in their codecs parameters: 3gp av1 iso bmff mpeg-4 quicktime webm several of the links above go to the same section; that's because those media types are all based on iso base media file format (iso bmff), so they share the same syntax.
...And 25 more matches
preserveAspectRatio - SVG: Scalable Vector Graphics
the preserveaspectratio attribute indicates how an element with a viewbox providing a given aspect ratio must fit into a view
port with a different aspect ratio.
...d; } syntax preserveaspectratio="<align> [<meetorslice>]" its value is made of one or two keywords: a required alignment value and an optional "meet or slice" reference as described below: alignment value the alignment value indicates whether to force uniform scaling and, if so, the alignment method to use in case the aspect ratio of the viewbox doesn't match the aspect ratio of the view
port.
...scale the graphic content of the given element non-uniformly if necessary such that the element's bounding box exactly matches the view
port rectangle.
...And 25 more matches
Mozilla Application Framework in Detail - Archive of obsolete content
imagine not having to re-write your application 3 times, or not sup
porting a less popular platform simply because you do not have the resources for parallel development!
...this innovation in browser technology offers small size, speed and industry leading standards sup
port.
... gecko is the premier cross-platform, full-featured, mature and well-tested layout engine available, providing robust and high quality sup
port for a massive array of standards.
...And 24 more matches
Gecko Compatibility Handbook - Archive of obsolete content
internet explorer 4 and netscape navigator 4 share sup
port for a large part of the html 3.2 standard and basic javascript.
... while they sup
port the css 1 standard to some degree, the implementations are not complete and have non-standard features added.
... neither internet explorer 4 or netscape navigator 4 sup
port the w3 dom.
...And 24 more matches
Beginner's guide to media queries - Learn web development
previous overview: css layout next the css media query gives you a way to apply css only when the browser and device environment matches a rule that you specify, for example "view
port is wider than 480 pixels".
... media queries are a key part of responsive web design, as they allow you to create different layouts depending on the size of the view
port, but they can also be used to detect other things about the environment your site is running on, for example whether the user is using a touchscreen rather than a mouse.
... width and height the feature we tend to detect most often in order to create responsive designs (and that has widespread browser sup
port) is view
port width, and we can apply css if the view
port is above or below a certain width — or an exact width — using the min-width, max-width, and width media features.
...And 24 more matches
Video and audio content - Learn web development
video and audio on the web web developers have wanted to use video and audio on the web for a long time, ever since the early 2000s when we started to have bandwidth fast enough to sup
port any kind of video (video files are much larger than text or even images.) in the early days, native web technologies such as html didn't have the ability to embed video and audio on the web, so proprietary (or plugin-based) technologies like flash (and later, silverlight) became popular for handling such content.
...a really simple example looks like this: <video src="rabbit320.webm" controls> <p>your browser doesn't sup
port html5 video.
... the paragraph inside the <video> tags this is called fallback content — this will be displayed if the browser accessing the page doesn't sup
port the <video> element, allowing us to provide a fallback for older browsers.
...And 24 more matches
Using JavaScript code modules
the module is loaded into a specific javascript scope, such as xul script or javascript xpcom script, using components.utils.im
port() or components.utils["im
port"]().
... creating a javascript code module a very simple javascript module looks like this: var ex
ported_symbols = ["foo", "bar"]; function foo() { return "foo"; } var bar = { name : "bar", size : 3 }; var dummy = "dummy"; notice that the module uses normal javascript to create functions, objects, constants, and any other javascript type.
... the module also defines a special array named ex
ported_symbols.
...And 24 more matches
Creating the Component Code
in this case, the long-hand implementation gives us an op
portunity to talk about various features of xpcom.
...you should consult with the authors of the application you wish to extend to see if there are other sup
ported ways.
... basic structure of the weblock component source weblock1.cpp that defines these classes and the code you need to create a basic component has the following structure: * required includes and constants * weblock: public iweblock * weblockfactory: public nsifactory * weblockmodule: public nsimodule in xpcom, all of these classes also derive from the nsisup
ports base interface.
...And 24 more matches
MCD, Mission Control Desktop, AKA AutoConfig - Archive of obsolete content
y.id1.stationery_folder", "imap://" + env_user + "@imap-int.int-evry.fr/templates"); lockpref("mail.identity.id1.tmpl_folder_picker_mode", "0"); lockpref("mail.identity.id1.valid", true); //smtp general lockpref("mail.smtp.defaultserver", "smtp1"); lockpref("mail.smtpserver.smtp1.auth_method", 0); lockpref("mail.smtpserver.smtp1.hostname", "smtp-int.int-evry.fr"); lockpref("mail.smtpserver.smtp1.
port", 25); lockpref("mail.smtpserver.smtp1.try_ssl", 0); lockpref("mail.smtpserver.smtp1.username", ""); lockpref("mail.smtpservers", "smtp1"); lockpref("mail.startup.enabledmailcheckonce", true); lockpref("mailnews.quotingprefs.version", 1); lockpref("mailnews.ui.threadpane.version", 5); /* 3) define here (because if set after "4)" below it doesn't work!) processldapvalues which is eventually calle...
...ird-account-management-using-mcd/ // identity defaultpref("mail.identity.id1.fullname", userinfo.cn ); defaultpref("mail.identity.id1.smtpserver", "smtp1" ); defaultpref("mail.identity.id1.useremail", userinfo.mail ); // imap server settings defaultpref("mail.server.server1.hostname", "myimap.server.com" ); defaultpref("mail.server.server1.name", userinfo.mail ); defaultpref("mail.server.server1.
port", 993 ); defaultpref("mail.server.server1.sockettype", 3 ); defaultpref("mail.server.server1.type", "imap" ); defaultpref("mail.server.server1.username", userinfo.mail ); // smtp server settings defaultpref("mail.smtpserver.smtp1.authmethod", 3 ); defaultpref("mail.smtpserver.smtp1.description", "my company name" ); defaultpref("mail.smtpserver.smtp1.hostname", "mysmtp.server.com" ); defaultpref...
...("mail.smtpserver.smtp1.
port", 465 ); defaultpref("mail.smtpserver.smtp1.try_ssl", 3 ); defaultpref("mail.smtpserver.smtp1.username", userinfo.mail ); // glue it all together defaultpref("mail.account.account1.identities", "id1" ); defaultpref("mail.account.account1.server", "server1" ); defaultpref("mail.accountmanager.accounts", "account1" ); defaultpref("mail.accountmanager.defaultaccount", "account1" ); defaultpref("mail.smtp.defaultserver", "smtp1" ); defaultpref("mail.smtpservers", "smtp1" ); // close the try, and call the catch() } catch(e) { displayerror("lockedpref", e); } test autoconfig debug to check that our autoconfig works fine, we just set to env variable to check the read of thunderbird.cfg file: $ ex
port nspr_log_modules=mcd:5 $ ex
port nspr_log_file=/tmp/thunderbird...
...And 23 more matches
Advanced Svelte: Reactivity, lifecycle, accessibility - Learn web development
put the following content into your moreactions.svelte file: <script> im
port { createeventdispatcher } from 'svelte' const dispatch = createeventdispatcher() let completed = true const checkall = () => { dispatch('checkall', completed) completed = !completed } const removecompleted = () => dispatch('removecompleted') </script> <div class="btn-group"> <button type="button" class="btn btn__primary" on:click={checkall}>{completed ?
... back over in todos.svelte, we are going to im
port our moreactions component and create two functions to handle the events emitted by the moreactions component.
... add the following im
port statement below the existing ones: im
port moreactions from './moreactions.svelte' then add the described functions at the end of the <script> section: const checkalltodos = (completed) => todos.foreach(t => t.completed = completed) const removecompletedtodos = () => todos = todos.filter(t => !t.completed) now go to the bottom of the todos.svelte markup section and replace the btn-group <div> that we copied into moreactions.svelte with a call to the moreactions component, like so: <!-- moreactions --> <moreactions on:checkall={e => checkalltodos(e.detail)} on:removecompleted={removecompletedtodos} /> ok, let's go back into the app and try it out!
...And 23 more matches
WebGL best practices - Web APIs
every webgl error is re
ported in the web console as a javascript warning with a descriptive message.
...when using webgl extensions, if possible, try to make them optional by gracefully adapting to the case there they are not sup
ported.
... take advantage of universally sup
ported webgl 1 extensions these webgl 1 extensions are universally sup
ported: angle_instanced_arrays ext_blend_minmax oes_element_index_uint oes_standard_derivatives oes_vertex_array_object webgl_debug_renderer_info webgl_lose_context (see also: https://jdashg.github.io/misc/webgl/webgl-feature-levels.html) consider polyfilling these into webglrenderingcontext, like: https://github.com/jdashg/misc/blob/master/webgl/webgl-v1.1.js universally sup
ported limits the minimum requirements for webgl are quite low.
...And 23 more matches
HTTP Index - HTTP
though often based on a tcp/ip layer, it can be used on any reliable trans
port layer, that is, a protocol that doesn't lose messages silently like udp does.
... 8 identifying resources on the web domain, http, path, scheme, syntax, uri, url, url syntax, web, fragment,
port, query, resources the target of an http request is called a "resource", whose nature isn't defined further; it can be a document, a photo, or anything else.
... 13 compression in http guide, http, compression compression is an im
portant way to increase the performance of a web site.
...And 23 more matches
WAI-ARIA basics - Learn web development
html5 provides special input types to render such controls: <input type="date"> <input type="range"> these are not well-sup
ported across browsers, and it is also difficult to style them, making them not very useful for integrating with website designs.
... an im
portant point about wai-aria attributes is that they don't affect anything about the web page, except for the information exposed by the browser's accessibility apis (where screenreaders get their information from).
... where is wai-aria sup
ported?
...And 22 more matches
Introduction to CSS layout - Learn web development
css page layout techniques allow us to take elements contained in a web page and control where they are positioned relative to their default position in normal layout flow, the other elements around them, their parent container, or the main view
port/window.
...starting with a well-structured html document is very im
portant, as you can then work with the way things are laid out by default rather than fighting against it.
...static positioning is the default in normal flow, but you can cause elements to be laid out differently using other values, for example always fixed to the top of the browser view
port.
...And 22 more matches
Examples
components.utils.im
port("resource://gre/modules/osfile.jsm") let path = os.path.join(os.constants.path.tmpdir, "file.txt"); let promise = os.file.exists(path); let newpromise = promise.then(function onfulfill(aexists) { if (aexists) { console.log("you have file.txt in your temporary directory."); } else { throw new error("you don't have file.txt in your temporary directory."); } }); // unexpected errors should always be re
ported at the end of a promise chain.
... components.utils.im
port("resource://gre/modules/osfile.jsm") let path = os.path.join(os.constants.path.tmpdir, "file.txt"); let promise = os.file.exists(path); let newpromise = promise.then(function onfulfill(aexists) { if (aexists) { console.log("you have file.txt in your temporary directory."); } else { console.log("you don't have file.txt in your temporary directory."); } }); // unexpected errors should always be re
ported at the end of a promise chain.
... let lastpromise = newpromise.then(null, components.utils.re
porterror); in this case, if the file existence check succeeds, the onfulfill callback is invoked.
...And 22 more matches
NSS FAQ
general questions what is network security services (nss) nss is set of libraries, apis, utilities, and documentation designed to sup
port cross-platform development of security-enabled client and server applications.
... if you want add sup
port for ssl, s/mime, or other internet security standards to your application, you can use network security services (nss) to do so.
... because nss provides complete sup
port for all versions of ssl and tls, it is particularly well-suited for applications that need to communicate with the many clients and servers that already sup
port the ssl protocol.
...And 22 more matches
Using XPCOM Utilities to Make Things Easier
the module macros include one set of macros that define the ex
ported nsgetmodule entry point, the required nsimodule implementation code and another that creates a generic factory for your implementation class.
...}; the im
portant thing to note in the fictitious listing above is that it can sup
port multiple components in a module.
... common implementation macros every xpcom object implements nsisup
ports, but writing this implementation over and over is tedious.
...And 22 more matches
Drawing and Event Handling - Plugins
a windowed plug-in is drawn into its own native window (or
portion of a native window) on a web page.
... note: windowless plug-ins were not sup
ported on the x window system platform prior to gecko 1.9 alpha 7 (bug 137189).
...ndow structure typedef enum { npwindowtypewindow = 1, npwindowtypedrawable } npwindowtype; typedef struct _npwindow { void* window; /* platform-specific handle */ uint32 x; /* position of top-left corner */ uint32 y; /* relative to a netscape page */ uint32 width; /* maximum window size */ uint32 height; nprect cliprect; /* clipping rectangle in
port coordinates */ #ifdef xp_unix void * ws_info; /* platform-dependent additional data */ #endif /* xp_unix */ npwindowtype type; /* whether this is a window or a drawable */ } npwindow; the window parameter is a platform-specific handle to a native window element in the browser window hierarchy on windows and unix.
...And 22 more matches
<input>: The Input (Form Input) element - HTML: Hypertext Markup Language
<input type="checkbox" name="checkbox"/> color a control for specifying a color; opening a color picker when active in sup
porting browsers.
...opens a date picker or numeric wheels for year, month, day when active in sup
porting browsers.
...opens a date picker or numeric wheels for date- and time-components when active in sup
porting browsers.
...And 22 more matches
<textarea> - HTML: Hypertext Markup Language
<textarea> does not sup
port the value attribute.
... autocapitalize this is a non-standard attribute sup
ported 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.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettextareachrome full sup
port yesedge full sup
port 12firefox full sup
port yesnotes full sup
port yesnotes notes before firefox 6, when a <textarea> was focused, the insertion point was placed at the end of the text by default.
...And 22 more matches
requiredFeatures - SVG: Scalable Vector Graphics
it determines whether or not all of the named features are sup
ported by the browser; if all of them are sup
ported, the attribute evaluates to true end the element is rendered; otherwise, the attribute evaluates to false and the current element and its children are skipped and thus will not be rendered.
...t>, <g>, <image>, <line>, <mask>, <path>, <pattern>, <polygon>, <polyline>, <rect>, <set>, <svg>, <switch>, <text>, <textpath>, <tref>, <tspan>, <use> html, body, svg { height: 100%; } text { fill: white; } <svg viewbox="0 0 250 45" xmlns="http://www.w3.org/2000/svg"> <g> <rect fill="forestgreen" x="10" y="10" height="25" width="230" /> <text x="20" y="27">requiredfeatures sup
ported</text> </g> <g requiredfeatures=""> <rect fill="crimson" x="10" y="10" height="25" width="230" /> <text x="20" y="27">requiredfeatures not sup
ported</text> </g> </svg> usage notes value <list-of-features> default value true if not defined, false if null or empty string as value animatable no <list-of-features> this is a list of fe...
...determines whether all of the named features are sup
ported by the browser.
...And 22 more matches
Responsive images - Learn web development
here's a simple example: this works well on a wide screen device, such as a laptop or desktop (you can see the example live and find the source code on github.) we won't discuss the css much in this lesson, except to say that: the body content has been set to a maximum width of 1200 pixels — in view
ports above that width, the body remains at 1200px and centers itself in the available space.
... in view
ports below that width, the body will stay at 100% of the width of the view
port.
...if the site is being viewed on a narrower screen, the im
portant detail in the center of the image (the people) can still be seen, and the excess is lost off either side.
...And 21 more matches
NSS 3.28 release notes
nss 3.28 requires netscape
portable runtime (nspr) 4.13.1 or newer.
... nss 3.28 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_28_rtm/src/ new in nss 3.28 new functionality nss includes sup
port for tls 1.3 draft -18.
... this includes a number of improvements to tls 1.3: the signed certificate timestamp, used in certificate transparency, is sup
ported in tls 1.3 (bug 1252745).
...And 21 more matches
PasswordCredential - Web APIs
in sup
porting browsers an instance of this class may be passed in the credential member of the init object for global fetch.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpasswordcredential experimentalchrome full sup
port 51edge full sup
port ≤79firefox ?
... opera full sup
port yessafari ?
...And 21 more matches
window.location - Web APIs
curabitur convallis, justo posuere
porta egestas, velit erat ornare tortor, non viverra justo diam eget arcu.
...nam turpis nunc, suscipit a hendrerit vitae, volutpat non ipsum.</p> <p>duis lobortis sapien quis nisl luctus
porttitor.
...fusce cursus sollicitudin
porta.
...And 21 more matches
WebAssembly
ex
ported webassembly functions ex
ported webassembly functions are the javascript reflections of webassembly functions which allow calling webassembly code from javascript.
... webassembly.global() a webassembly.global object represents a global variable instance, accessible from both javascript and im
portable/ex
portable across one or more webassembly.module instances.
... instance objects contain all the ex
ported webassembly functions that allow calling into webassembly code from javascript.
...And 21 more matches
NSS Sample Code Sample1
nss sample code 1: key generation and trans
port between servers.
... this is an example program that demonstrates how to do key generation and trans
port between cooperating servers.
...the secondary host generates an rsa keypair that will be used // to trans
port keys between the primary host and itself.
...And 20 more matches
NSS functions
this page lists all ex
ported functions in nss 3.11.7 it was
ported from here.
...in addition to the functions listed here, applications that sup
port ssl use some of the certificate functions, crypto functions, and utility functions described below on this page.
... other sources of information: the nss_reference documents the functions most commonly used by applications to sup
port ssl.
...And 20 more matches
Intersection Observer API - Web APIs
the intersection observer api provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's view
port.
... re
porting of visibility of advertisements in order to calculate ad revenues.
... the intersection observer api lets code register a callback function that is executed whenever an element they wish to monitor enters or exits another element (or the view
port), or when the amount by which the two intersect changes by a requested amount.
...And 20 more matches
PhotoCapabilities - Web APIs
photocapabilities.imageheight read only returns a mediasettingsrange object indicating the image height range sup
ported by the user agent.
... photocapabilities.imagewidth read only returns a mediasettingsrange object indicating the image width range sup
ported by the user agent.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetphotocapabilities experimentalchrome full sup
port 59edge full sup
port ≤79firefox ?
...And 20 more matches
Signaling and video calling - Web APIs
in this article, we will further enhance the websocket chat first created as part of our websocket documentation (this article link is forthcoming; it isn't actually online yet) to sup
port opening a two-way video call between users.
...webrtc doesn't specify a trans
port mechanism for the signaling information.
... it's im
portant to note that the server doesn't need to understand or interpret the signaling data content.
...And 20 more matches
WebAssembly - JavaScript
webassembly.global() represents a global variable instance, accessible from both javascript and im
portable/ex
portable across one or more webassembly.module instances.
... var im
portobject = { im
ports: { im
ported_func: arg => console.log(arg) } }; webassembly.instantiatestreaming(fetch('simple.wasm'), im
portobject) .then(obj => obj.instance.ex
ports.ex
ported_func()); the resultobject's instance member is then accessed, and the contained ex
ported function invoked.
... desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jswebassemblychrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
...And 20 more matches
Using the WebAssembly JavaScript API - WebAssembly
now, to help us understand what is going on here, let’s look at the text representation of our wasm module (which we also meet in converting webassembly format to wasm): (module (func $i (im
port "im
ports" "im
ported_func") (param i32)) (func (ex
port "ex
ported_func") i32.const 42 call $i)) in the second line, you will see that the im
port has a two-level namespace — the internal function $i is im
ported from im
ports.im
ported_func.
... we need to reflect this two-level namespace in javascript when writing the object to be im
ported into the wasm module.
... create a <script></script> element in your html file, and add the following code to it: var im
portobject = { im
ports: { im
ported_func: arg => console.log(arg) } }; streaming the webassembly module new in firefox 58 is the ability to compile and instantiate webassembly modules directly from underlying sources.
...And 20 more matches
Browser Feature Detection - Archive of obsolete content
an experimental approach to discovering degree of sup
port for standards.
... among the methods of browser detection, many people recommend using the existence of specific properties or methods in a browser's dom to detect the browser type and whether it sup
ports a given operation.
... this test takes that idea to the extreme and tests a large number of properties and methods to determine the level of sup
port a browser has for particular standards and re
ports a rating as the percentage of names the browser defines.
...And 19 more matches
Getting started with React - Learn web development
it does this through the use of components — self-contained, logical pieces of code that describe a
portion of the user interface.
...it's recommended that you use the long-term sup
port (lts) version.
... the public directory contains files that will be read by your browser while you're developing the app; the most im
portant of these is index.html.
...And 19 more matches
Getting started with Svelte - Learn web development
it's main current disadvantages are that it is a young framework — its ecosystem is therefore more limited in terms of tooling, sup
port, plugins, clear usage patterns, etc.
... than more mature frameworks, and there are also less job op
portunities.
... note: recently svelte has added official typescript sup
port, one of its most requested features.
...And 19 more matches
RTCPeerConnection - Web APIs
if this hasn't been set yet, this is null.sctp the read-only sctp property on the rtcpeerconnection interface returns an rtcsctptrans
port describing the sctp trans
port over which sctp data is being sent and received.
...the answer contains information about any media already attached to the session, codecs and options sup
ported by the browser, and any ice candidates already gathered.
...because this method has been deprecated, you should instead use removetrack() if your target browser versions have implemented it.removetrack()the rtcpeerconnection.removetrack() method tells the local end of the connection to stop sending media from the specified track, without actually removing the corresponding rtcrtpsender from the list of senders as re
ported by rtcpeerconnection.getsenders().restartice()the webrtc api's rtcpeerconnection interface offers the restartice() method to allow a web application to easily request that ice candidate gathering be redone on both ends of the connection.setconfiguration() the rtcpeerconnection.setconfiguration() method sets the current configuration of the rtcpeerconnection based on the values included in the ...
...And 19 more matches
Web applications and ARIA FAQ - Accessibility
where is aria sup
ported?
... aria is a relatively new specification, but sup
port for it is growing.
... a wide variety of commonly-used browsers, assistive technologies, javascript toolkits, and applications now sup
port aria.
...And 19 more matches
Server-side web frameworks - Learn web development
they provide tools and libraries that simplify common web development tasks, including routing urls to appropriate handlers, interacting with databases, sup
porting sessions and user authorization, formatting output (e.g.
... # django view function from django.http im
port httpresponse def index(request): # get an httprequest (request) # perform operations using information from the request.
... #best/models.py from django.db im
port models class team(models.model): team_name = models.charfield(max_length=40) team_levels = ( ('u09', 'under 09s'), ('u10', 'under 10s'), ('u11', 'under 11s'), ...
...And 18 more matches
Mozilla accessibility architecture
intro this document is for people who wish to understand the architecture of mozilla's accessibility api module, which provides sup
port for platform accessibility apis.
... accessibility apis are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and ui controls, as well as im
portant events like changes of focus.
... mozilla sup
ports two accessibility apis: microsoft active accessibility (msaa) on windows and accessibility tool kit (atk) on linux and unix.
...And 18 more matches
An overview of NSS Internals
in order to sup
port multiple operating systems (os), it is based on a cross platform
portability layer, called the netscape
portable runtime (nspr), which provides cross platform application programming interfaces (apis) for os specific apis like file system access, memory management, network communication, and multithreaded programming.
... nss offers lots of functionality; we'll walk through the list of modules, design principles, and im
portant relevant standards.
...(note that it's im
portant to look at the number 11, as there are other pkcs standards with different numbers that define quite different topics.) a software or hardware module conforming to the pkcs#11 standard implements an interface of c calls, which allow querying the characteristics and offered services of the module.
...And 18 more matches
JSS Provider Notes
contents signed jar file installing the provider specifying the cryptotoken sup
ported classes what's not sup
ported signed jar file jss 3.2 implements several jce (java cryptography extension) algorithms.
... these algorithms have at various times been ex
port-controlled by the us government.
...dsakpg.initialize(1024); keypair dsapair = dsakpg.generatekeypair(); sup
ported classes cipher dsaprivatekey dsapublickey keyfactory keygenerator keypairgenerator mac messagedigest rsaprivatekey rsapublickey secretkeyfactory secretkey securerandom signature what's not sup
ported the following classes don't work very well: keystore: there are many serious problems mapping the jca keystore interface onto nss's model of pkcs #11 module...
...And 18 more matches
NSS API Guidelines
the nss apis are layered, as shown in this diagram: the boxes in the gray section, towards the center, are ex
ported only through pkcs #11.
... pkcs #11 is only ex
ported through the wrappers.
...currently, ocsp checking settings are ex
ported through certhi.
...And 18 more matches
Introduction to XPCOM for the DOM
im
portant note: this document assumes some knowledge of c++, specially the object-oriented part of it.
...i will introduce nscomptr's, interfaces, reference counting, and the nsisup
ports interface.
...the im
portant thing to note is that a pointer to nsifoo can only call the methods defined on the nsifoo interface, and on its parents.
...And 18 more matches
nsIXPConnect
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) to access the xpconnect service, use code like this: nsresult rv; nscomptr<nsixpconnect> xpconnect = do_getservice(nsixpconnect::getcid(), &rv); if (ns_succeeded(rv)) { /* use the object */ } method overview void addjsholder(in voidptr aholder, in nsscriptobjecttracerptr atracer); native code only!
...location(in pruint32 alanguage, in string afilename, in string afunctionname, in print32 alinenumber, in nsistackframe acaller); void debugdump(in short depth); void debugdumpevalinjsstackframe(in pruint32 aframenumber, in string asourcetext); void debugdumpjsstack(in prbool showargs, in prbool showlocals, in prbool showthisprops); void debugdumpobject(in nsisup
ports acomobj, in short depth); [noscript,notxpcom] prbool definedomquickstubs(in jscontextptr cx, in jsobjectptr proto, in pruint32 flags, in pruint32 interfacecount, [array, size_is(interfacecount)] in nsiidptr interfacearray); jsval evalinsandboxobject(in astring source, in jscontextptr cx, in nsixpconnectjsobjectholder sandbox, in prbool returnstringonly); native code only!
... obsolete since gecko 2.0 void getdefaultsecuritymanager(out nsixpcsecuritymanager amanager, out pruint16 flags); nsixpcfunctionthistranslator getfunctionthistranslator(in nsiidref aiid); jsobjectptr getjsobjectofwrapper(in jscontextptr ajscontext, in jsobjectptr ajsobj); [noscript, notxpcom] nsisup
ports getnativeofwrapper(in jscontextptr ajscontext, in jsobjectptr ajsobj); void getsecuritymanagerforjscontext(in jscontextptr ajscontext, out nsixpcsecuritymanager amanager, out pruint16 flags); nsixpconnectwrappednative getwrappednativeofjsobject(in jscontextptr ajscontext, in jsobjectptr ajsobj); nsixpconnectwrappednative getwrappednativeofnativeobject(in jscontextptr ...
...And 18 more matches
Mozilla
it currently allows you to run javascript code in the same scope as the main firefox browser window and re
port results using the same functions as the mochitest test framework.
... browser security an im
portant aspect of developing code for any browser, including firefox, as well as any web-oriented project, is its security.
... these articles provide im
portant guides and references to ensuring the code you write is secure, including both design recommendations and testing guidelines.
...And 18 more matches
PushRegistrationManager - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpushregistrationmanager experimentaldeprecatedchrome no sup
port noedge no sup
port nofirefox ?
... ie no sup
port noopera no sup
port nosafari ?
... webview android no sup
port nochrome android no sup
port nofirefox android ?
...And 18 more matches
WebRTC API - Web APIs
interoperability because implementations of webrtc are still evolving, and because each browser has different levels of sup
port for codecs and webrtc features, you should strongly consider making use of the adapter.js library provided by google before you begin to write your code.
... adapter.js uses shims and polyfills to smooth over the differences among the webrtc implementations across the environments sup
porting it.
... webrtc concepts and usage webrtc serves multiple purposes; together with the media capture and streams api, they provide powerful multimedia capabilities to the web, including sup
port for audio and video conferencing, file exchange, screen sharing, identity management, and interfacing with legacy telephone systems including sup
port for sending dtmf (touch-tone dialing) signals.
...And 18 more matches
XUL Migration Guide - Archive of obsolete content
next, we'll look at some of the main tasks involved in migrating: working with content scripts using the sdk's sup
ported apis how to go beyond the sup
ported apis when necessary, by: using third party modules using the sdk's low-level apis getting direct access to xpcom finally, we'll walk through a simple example.
... whether you should migrate a particular add-on is largely a matter of how well the sdk's sup
ported apis meet its needs.
... if your add-on can accomplish everything it needs using only the sup
ported apis, it's a good candidate for migration.
...And 17 more matches
Strategies for carrying out testing - Learn web development
instead, you should try to make sure your site works on the most im
portant target browsers and devices, and then code defensively to give your site the widest sup
port reach it can be expected to have.
...you can make this as simple or as complex as you like — for example a common approach is to have multiple grades of sup
port level, something like: a grade: common/modern browsers — known to be capable.
... test thoroughly and provide full sup
port.
...And 17 more matches
Accessible Toolkit Checklist
the work when implementing a new toolkit it's im
portant to: implement standard keyboard behavior, which can vary from platform to platform.
...also, assistive technologies already understand native widgets so it is only necessary to implement microsoft active accessibility (msaa) api sup
port for custom controls.
...you will also need to provide a way for custom and owner drawn controls to easily accessibility api sup
port, as wxwidgets does.
...And 17 more matches
nsIMsgFolder
inherits from: nsisup
ports method overview void startfolderloading(); void endfolderloading(); void updatefolder(in nsimsgwindow awindow); nsimsgfilterlist getfilterlist(in nsimsgwindow msgwindow); void setfilterlist(in nsimsgfilterlist filterlist); void forcedbclosed(); void delete(); void deletesubfolders(in nsisup
portsarray folders, in nsimsgwindow msgwindow); void propagatedelete(in nsimsgfolder folder, in boolean deletestorage,in nsimsgwindow msgwindow); ...
...msgwindow msgwindow); void createsubfolder(in astring foldername, in nsimsgwindow msgwindow); nsimsgfolder addsubfolder(in astring foldername); void createstorageifmissing(in nsiurllistener urllistener); void compact(in nsiurllistener alistener, in nsimsgwindow amsgwindow); void compactall(in nsiurllistener alistener, innsimsgwindow amsgwindow,in nsisup
portsarray afolderarray, in boolean acompactofflinealso,in nsisup
portsarray aofflinefolderarray); void compactallofflinestores(in nsimsgwindow amsgwindow,in nsisup
portsarray aofflinefolderarray); void emptytrash(in nsimsgwindow amsgwindow, in nsiurllistener alistener); void rename(in astring name, in nsimsgwindow msgwindow); void renamesubfolders( in nsimsgwindow ms...
...d setflag(in unsigned long flag); void clearflag(in unsigned long flag); boolean getflag(in unsigned long flag); void toggleflag(in unsigned long flag); void onflagchange(in unsigned long flag); void setprefflag(); nsimsgfolder getfolderswithflag(in unsigned long flags, in unsigned long resultsize, out unsigned long numfolders); nsisup
portsarray getallfolderswithflag(in unsigned long aflag); void getexpansionarray(in nsisup
portsarray expansionarray); acstring geturiformsg(in nsimsgdbhdr msghdr); void deletemessages(in nsisup
portsarray messages,in nsimsgwindow msgwindow, in boolean deletestorage, in boolean ismove, in nsimsgcopyservicelistener listener, in boolean allowundo); void copymessages(in ...
...And 17 more matches
Key Values - Web APIs
modifies keystrokes to allow typing upper (or other) case letters, and to sup
port typing punctuation and other special characters.
... [1] in internet explorer (tested on release 9 and 11), as well as in all versions of firefox, the windows key is re
ported as "os" instead of as "meta".
... [2] internet explorer (tested on release 9 and 11) re
ports "scroll" instead of "scrolllock" for the scroll lock key.
...And 17 more matches
Capabilities, constraints, and settings - Web APIs
the twin concepts of constraints and capabilities let the browser and web site or app exchange information about what constrainable properties the browser's implementation sup
ports and what values it sup
ports for each one.
... overview the process works like this (using mediastreamtrack as an example): if needed, call mediadevices.getsup
portedconstraints() to get the list of sup
ported constraints, which tells you what constrainable properties the browser knows about.
... once the script knows whether the property or properties it wishes to use are sup
ported, it can then check the capabilities of the api and its implementation by examining the object returned by the track's getcapabilities() method; this object lists each sup
ported constraint and the values or range of values which are sup
ported.
...And 17 more matches
SubtleCrypto.wrapKey() - Web APIs
this means that it ex
ports the key in an external,
portable format, then encrypts the ex
ported key.
... as with subtlecrypto.ex
portkey(), you specify an ex
port format for the key.
... to ex
port a key, it must have cryptokey.extractable set to true.
...And 17 more matches
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 sup
port in the public versions of firefox, chrome, opera, safari and edge.
... however, while evergreen browsers mean that many of us are going to see the majority of users having grid layout sup
port very quickly, there are also old or non-sup
porting browsers to contend with.
... in this guide we will walk through a variety of strategies for sup
port.
...And 17 more matches
min-width - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmin-widthchrome full sup
port 1edge full sup
port 12firefox full sup
port 1notes full sup
port 1notes notes css 2.1 leaves the behavior of min-width with table undefined.
... firefox sup
ports applying min-width to table elements.ie full sup
port 7opera full sup
port 4notes full sup
port 4notes notes css 2.1 leaves the behavior of min-width with table undefined.
... opera sup
ports applying min-width to table elements.safari full sup
port 1webview android full sup
port 4.4chrome android full sup
port 18firefox android full sup
port 4notes full sup
port 4notes notes css 2.1 leaves the behavior of min-width with table undefined.
...And 17 more matches
<input type="datetime-local"> - HTML: Hypertext Markup Language
the control's ui varies in general from browser to browser; at the moment sup
port is patchy, with only chrome/opera and edge on desktop and most modern versions of mobile browsers having usable implementations.
... because of the limited browser sup
port for datetime-local, and the variations in how the inputs work, it may currently still be best to use a framework or library to present these, or to use a custom input of your own.
... another option is to use separate date and time inputs, each of which is more widely sup
ported than datetime-local.
...And 17 more matches
<input type="time"> - HTML: Hypertext Markup Language
sup
port is good in modern browsers, with safari being the sole major browser not yet implementing it; in safari, and any other browsers that don't sup
port <time>, it degrades gracefully to <input type="text">.
... events change and input sup
ported common attributes autocomplete, list, readonly, and step idl attributes value, valueasdate, valueasnumber, and list.
... using time inputs although among the date and time input types time has the widest browser sup
port, it is not yet approaching universal, so it is likely that you'll need to provide an alternative method for entering the date and time, so that safari users (and users of other non-sup
porting browsers) can still easily enter time values.
...And 17 more matches
HTML documentation index - HTML: Hypertext Markup Language
39 html attribute: crossorigin advanced, attribute, cors, html, needscontent, reference, security the crossorigin attribute, valid on the <audio>, <img>, <link>, <script>, and <video> elements, provides sup
port for cors, defining how the element handles crossorigin requests, thereby enabling the configuration of the cors requests for the element's fetched data.
...valid on <link>, <a>, <area>, and <form>, the sup
ported values depend on the element on which the attribute is found.
... 62 <aside>: the aside element element, html, html sections, html5, html:flow content, html:palpable content, html:sectioning content, reference, web the html <aside> element represents a
portion of a document whose content is only indirectly related to the document's main content.
...And 17 more matches
Browser detection using the user agent - HTTP
if the problem seems uncommon, it's worth checking if this bug has been re
ported to the browser vendor via their bug tracking system (mozilla; webkit; blink; opera).
... browser makers do pay attention to bug re
ports, and the analysis may hint about other workarounds for the bug.
... your site needs to use a specific web feature that some browsers don't yet sup
port, and you want to send those users to an older web site with fewer features but that you know will work.
...And 17 more matches
HTTP headers - HTTP
hop-by-hop headers these headers are meaningful only for a single trans
port-level connection, and must not be retransmitted by proxies or cached.
... accept-ch servers can advertise sup
port for client hints using the accept-ch header field or an equivalent html <meta> element with http-equiv attribute ([html5]).
... accept-ch-lifetime servers can ask the client to remember the set of client hints that the server sup
ports for a specified period of time, to enable delivery of client hints on subsequent requests to the server’s origin ([rfc6454]).
...And 17 more matches
Gecko FAQ - Gecko Redirect 1
gecko is the open source browser engine designed to sup
port open internet standards such as html 5, css 3, the w3c dom, xml, javascript, and others.
...gecko also offers the ability to parse various document types (html, xml, svg, etc), advanced rendering capabilities including compositing and transformations, and sup
port for embedded javascript and plugins.
...gecko technologies will also power the display of the mozilla.com
portal site, speedily delivering more exciting content and services.
...And 16 more matches
Floats - Learn web development
cras
porttitor imperdiet nunc, at ultricies tellus laoreet sit amet.
... </p> <p>sed auctor cursus massa at
porta.
...cras
porttitor imperdiet nunc, at ultricies tellus laoreet sit amet.
...And 16 more matches
Componentizing our React app - Learn web development
let's take the second bullet point as inspiration and make a component out of the most reused, most im
portant piece of the ui: a todo list item.
...open it up and give it its first line: im
port react from "react"; since we're going to make a component called todo, you can start adding the code for that to todo.js too, as follows.
... in this code, we define the function and ex
port it on the same line: ex
port default function todo() { return ( ); } this is ok so far, but our component has to return something!
...And 16 more matches
Mozilla Web Developer FAQ
if @im
port is used, it should be the first thing in a css file.
... css parsing errors are re
ported to the javascript console.
... some proprietary document objects such as document.all and document.layers are not part of the w3c dom and are not sup
ported in mozilla.
...And 16 more matches
NSS Certificate Download Specification
the only significant field in the signeddata object is the certificates field, which may contain multiple certificates to be im
ported together.
... netscape certificate sequence: this is another pkcs#7 object format, and like the signeddata format, it allows multiple certificates to be im
ported together.
... text formats any of the above binary formats can also be im
ported in text form.
...And 16 more matches
Mozilla-JSS JCA Provider notes
contents signed jar file installing the provider specifying the cryptotoken sup
ported classes what's not sup
ported signed jar file jss implements several jce (java cryptography extension) algorithms.
... these algorithms have at various times been ex
port-controlled by the us government.
...dsakpg.initialize(1024); keypair dsapair = dsakpg.generatekeypair(); sup
ported classes cipher dsaprivatekey dsapublickey keyfactory keygenerator keypairgenerator mac messagedigest rsaprivatekey rsapublickey secretkeyfactory secretkey securerandom signature cipher sup
ported algorithms notes aes des desede (des3) rc2 rc4 rsa the following modes and padding schemes are sup
ported: algorithm mode padding ...
...And 16 more matches
sample2
*/ /* nspr headers */ #include <prthread.h> #include <plgetopt.h> #include <prerror.h> #include <prinit.h> #include <prlog.h> #include <prtypes.h> #include <plstr.h> /* nss headers */ #include <cryptohi.h> #include <keyhi.h> #include <pk11priv.h> #include <cert.h> #include <base64.h> #include <secerr.h> #include <sec
port.h> #include <secoid.h> #include <secmodt.h> #include <secoidt.h> #include <sechash.h> /* our samples utilities */ #include "util.h" /* constants */ #define blocksize 32 #define modblocksize 128 #define default_key_bits 1024 /* header file constants */ #define enckey_header "-----begin wrapped enckey-----" #define enckey_trailer "-----end wrapped enckey-----" #define mackey_header "-----begin wrap...
...---end signature-----" #define ns_cert_header "-----begin certificate-----" #define ns_cert_trailer "-----end certificate-----" /* missing publically from nss versions earlier than 3.13 */ #ifndef sec_error_base #define sec_error_base (-0x2000) typedef enum { sec_error_io = sec_error_base + 0, sec_error_token_not_logged_in = (sec_error_base + 155), sec_error_end_of_list } secerrorcodes; #endif /*
port_errortostring introduced in nss 3.13.
... on earlier versions of nss that * don't sup
port error tables, pr_errortostring will return "unknown code".
...And 16 more matches
PKCS11 FAQ
does the certificate need to be im
ported into nss's internal certificate database?
... what version of pkcs #11 does nss sup
port?
... nss requires at least pkcs #11 version 2.0, but can sup
port some features of later versions of nss, including nss 2.20.
...And 16 more matches
Handling Mozilla Security Bugs
version 1.1 im
portant: anyone who believes they have found a mozilla-related security vulnerability can and should re
port it by sending email to address security@mozilla.org.
...first, mozilla.org is appointing a security module owner charged with primary responsibility for coordinating the investigation and resolution of re
ported mozilla security vulnerabilities.
...this document describes how the new security organizational structure will work, and how security-related mozilla bug re
ports will be handled.
...And 16 more matches
BudgetService - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbudgetservice experimentaldeprecatednon-standardchrome full sup
port 55edge full sup
port ≤79firefox ?
... opera full sup
port 42safari ?
... webview android full sup
port 55chrome android full sup
port 55firefox android ?
...And 16 more matches
IDBKeyRange - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbkeyrangechrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yesboundchrome full sup
port ...
... 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfi...
...And 16 more matches
MediaMetadata - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmediametadata experimentalchrome full sup
port 57edge no sup
port nofirefox full sup
port 71ie no sup
port noopera full sup
port yessafari ?
... webview android no sup
port nochrome android full sup
port 57firefox android ?
... opera android no sup
port nosafari ios ?
...And 16 more matches
:is() (:matches(), :any()) - CSS: Cascading Style Sheets
note that currently browsers sup
port this functionality as :matches(), or through an older, prefixed pseudo-class — :any(), including older versions of chrome, firefox, and safari.
... :any() works in exactly the same way as :matches()/:is(), except that it requires vendor prefixes and doesn't sup
port complex selectors.
...); } catch(e) { try { matcheditems = document.queryselectorall(':matches(header, main, footer) p'); } catch(e) { try { matcheditems = document.queryselectorall(':-webkit-any(header, main, footer) p'); } catch(e) { try { matcheditems = document.queryselectorall(':-moz-any(header, main, footer) p'); } catch(e) { console.log('your browser doesn\'t sup
port :is(), :matches(), or :any()'); } } } } matcheditems.foreach(applyhandler); function applyhandler(elem) { elem.addeventlistener('click', function(e) { alert('this paragraph is inside a ' + e.target.parentnode.nodename); }); } simplifying list selectors the :is() pseudo-class can greatly simplify your css selectors.
...And 16 more matches
Specificity - CSS: Cascading Style Sheets
the !im
portant exception when an im
portant rule is used on a style declaration, this declaration overrides any other declarations.
... although technically !im
portant has nothing to do with specificity, it interacts directly with it.
... using !im
portant, however, is bad practice and should be avoided because it makes debugging more difficult by breaking the natural cascading in your stylesheets.
...And 16 more matches
position - CSS: Cascading Style Sheets
it is positioned relative to the initial containing block established by the view
port, except when one of its ancestors has a transform, perspective, or filter property set to something other than none (see the css transforms spec), in which case that ancestor behaves as the containing block.
... border: 3px solid blue; padding: 10px; margin: 10px; } span { background: red; border: 1px solid black; } .positioned { position: absolute; background: yellow; top: 30px; left: 30px; } result fixed positioning fixed positioning is similar to absolute positioning, with the exception that the element's containing block is the initial containing block established by the view
port, unless any ancestor has transform, perspective, or filter property set to something other than none (see css transforms spec), which then causes that ancestor to take the place of the elements containing block.
...even after scrolling, it remains in the same place relative to the view
port.
...And 16 more matches
Live streaming web audio and video - Developer guides
live streaming technology is often employed to relay live events such as s
ports, concerts and more generally tv and radio programmes that are output live.
... http for now, http is by far the most commonly sup
ported protocol used to transfer media on demand or live.
... rtmp real time messaging protocol (rtmp) is a proprietary protocol developed by macromedia (now adobe) and sup
ported by the adobe flash plugin.
...And 16 more matches
<input type="date"> - HTML: Hypertext Markup Language
the time and datetime-local input types sup
port time and date+time input.
...in unsup
ported browsers, the control degrades gracefully to <input type="text">.
... 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 sup
ported common attributes autocomplete, list, readonly, and step idl attributes list, value, valueasdate, valueasnumber.
...And 16 more matches
Introduction to Public-Key Cryptography - Archive of obsolete content
like a driver's license, a pass
port, or other commonly used personal ids, a certificate provides generally recognized proof of a person's identity.
...most im
portantly, a certificate always includes the digital signature of the issuing ca.
...certificates are one way of sup
porting authentication.
...And 15 more matches
Client-side form validation - Learn web development
previous overview: forms next before submitting data to the server, it is im
portant to ensure all required form controls are filled out, in the correct format.
... objective: to understand what client-side form validation is, why it's im
portant, and how to apply various techniques to implement it.
... client-side validation is an initial check and an im
portant feature of good user experience; by catching invalid data on the client-side, the user can fix it straight away.
...And 15 more matches
Introducing a complete toolchain - Learn web development
many of today's code editors (such as vs code and atom) have integration sup
port for a lot of tools via plugins.
... the latest built-in javascript features (at time of writing), such as im
port.
... for our sample project, we'll be using a toolchain specifically designed to aid our software development and sup
port the technical choices made during the software design phase.
...And 15 more matches
What to do and what not to do in Bugzilla
canconfirm privilege the canconfirm privilege allows you to confirm bugs and also to start your bug re
ports in the confirmed state (new).
... a guide for confirming layout bugs (bugs in web page rendering) re
porting new bugs you should re
port a bug in the new state after going through the triaging process as described in the two above-mentioned guides.
... you should look at all the open bugs you've re
ported (see the "my bugs" link at the bottom of every bugzilla page) at least every two months and test whether they still exist.
...And 15 more matches
NSS_3.12_release_notes.html
ev.tech.crypto contents introduction distribution information new in nss 3.12 bugs fixed documentation compatibility feedback introduction network security services (nss) 3.12 is a minor release with the following new features: sqlite-based shareable certificate and key databases libpkix: an rfc 3280 compliant certificate path validation library camellia cipher sup
port tls session ticket extension (rfc 5077) nss 3.12 is tri-licensed under the mpl 1.1/gpl 2.0/lgpl 2.1.
...ex (see secmod.h) sec_getregisteredhttpclient (see ocsp.h) sec_pkcs5isalgorithmpbealgtag (see secpkcs5.h) vfy_createcontextdirect (see cryptohi.h) vfy_createcontextwithalgorithmid (see cryptohi.h) vfy_verifydatadirect (see cryptohi.h) vfy_verifydatawithalgorithmid (see cryptohi.h) vfy_verifydigestdirect (see cryptohi.h) vfy_verifydigestwithalgorithmid (see cryptohi.h) new macros for camellia sup
port (see blapit.h): nss_camellia nss_camellia_cbc camellia_block_size new macros for rsa (see blapit.h): rsa_max_modulus_bits rsa_max_exponent_bits new macros in certt.h: x.509 v3 ku_encipher_only cert_max_serial_number_bytes cert_max_dn_bytes pkix cert_rev_m_do_not_test_using_this_method cert_rev_m_test_using_this_method cert_rev_m_allow_network_fetching cert_rev_m_forbid_network_fetching c...
... tls session ticket extension (off by default) see ssl_enable_session_tickets in ssl.h new ssl error codes (see sslerr.h) ssl_error_unsup
ported_extension_alert ssl_error_certificate_unobtainable_alert ssl_error_unrecognized_name_alert ssl_error_bad_cert_status_response_alert ssl_error_bad_cert_hash_value_alert ssl_error_rx_unexpected_new_session_ticket ssl_error_rx_malformed_new_session_ticket new tls cipher suites (see sslproto.h): tls_rsa_with_camellia_128_cbc_sha tls_dhe_dss_with_camellia_128_cbc_sha tls_dhe_rsa_with_camellia_128...
...And 15 more matches
Enc Dec MAC Output Public Key as CSR
---" #define ns_certreq_header "-----begin new certificate request-----" #define ns_certreq_trailer "-----end new certificate request-----" typedef enum { gen_csr, encrypt, decrypt, unknown } commandtype; typedef enum { symkey = 0, mackey = 1, iv = 2, mac = 3, pad = 4, pubkey = 5, lab = 6 } headertype; /* this is conditionalized because
port_errortostring was introduced with nss 3.13.
... * though pr_errortostring was available, sup
port for it in nss wasn't.
... */ #ifndef
port_errortostring #ifndef sec_error_base #define sec_error_base (-0x2000) #define
port_errortostring(err) pr_errortostring((err), pr_language_i_default) #endif #endif /* * print usage message and exit */ static void usage(const char *progname) { fprintf(stderr, "\nusage: %s -c -d [-z ] " "[-p | -f ] -s -r -i -o \n\n", progname); fprintf(stderr, "%-20s specify 'g' for generating rsa keypair for wrapping\n\n", "g"); fprintf(stderr, "%-20s specify 'e' for encrypt operation\n\n", "e"); fprintf(stderr, "%-20s specify 'd' for decrypt operation\n\n", "d"); ...
...And 15 more matches
PKCS11 Implement
summarizes the sup
port nss expects from different kinds of tokens.
... future versions of netscape server products will also sup
port of pkcs #11 version 2.0.
...if you don't implement a function, you should still provide a stub that returns ckr_function_not_sup
ported.
...And 15 more matches
NSS tools : pk12util
nss tools : pk12util name pk12util — ex
port and im
port keys and certificate to or from a pkcs #12 file and the nss database synopsis pk12util [-i p12file|-l p12file|-o p12file] [-d [sql:]directory] [-h tokenname] [-p dbprefix] [-r] [-v] [-k slotpasswordfile|-k slotpassword] [-w p12filepasswordfile|-w p12filepassword] description the pkcs #12 utility, pk12util, enables sharing certificates among any server that sup
ports pkcs#12.
... the tool can im
port certificates and keys from pkcs#12 files into security databases, ex
port certificates, and list certificates and keys.
... options and arguments options -i p12file im
port keys and certificates from a pkcs#12 file into a security database.
...And 15 more matches
NSS tools : pk12util
name pk12util — ex
port and im
port keys and certificate to or from a pkcs #12 file and the nss database synopsis pk12util [-i p12file [-h tokenname] [-v] [common-options] ] [ -l p12file [-h tokenname] [-r] [common-options] ] [ -o p12file -n certname [-c keycipher] [-c certcipher] [-m|--key_len keylen] [-n|--cert_key_len certkeylen] [common-options] ] [ common-options are: [-d [sql:]directory] [-p dbprefix] [-k slotpasswordfile|-k slotpassword] [-w p12filepasswordfile|-w p12filepassword] ] description the pkcs #12 utility, pk12util, enables sharing certificates among any server that sup
ports pkcs#12.
... the tool can im
port certificates and keys from pkcs#12 files into security databases, ex
port certificates, and list certificates and keys.
... options and arguments options -i p12file im
port keys and certificates from a pkcs#12 file into a security database.
...And 15 more matches
FileSystemEntry - Web APIs
because this is a non-standard api, whose specification is not currently on a standards track, it's im
portant to keep in mind that not all browsers implement it, and those that do may implement only small
portions of it.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystementry experimentalchrome full sup
port 8alternate name full sup
port 8alternate name alternate name uses the non-standard name: entryedge full sup
port 79prefixed full sup
port 79prefixed prefixed implemented with the vendor prefix: webkitfirefox full sup
port...
... 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full sup
port ≤37alternate name full sup
port ≤37alternate name alternate name uses the non-standard name: entrychrome android full sup
port 18alternate name full sup
port 18alternate name alternate name uses the non-standard name: entryfirefox android full sup
port 50opera android no sup
port ...
...And 15 more matches
RTCRemoteOutboundRtpStreamStats.localId - Web APIs
thus, if an rtcstatsre
port includes an remote-outbound-rtp statistics object (of type rtcremoteoutboundrtpstreamstats), it should also have a corresponding inbound-rtp object.
... example in this example, we have a pair of functions: the first, networkteststart(), captures an initial re
port, and the second, networkteststop(), captures a second re
port, then uses the two re
ports to output some information about the network conditions...
... networkteststart() this function simply calls the rtcpeerconnection method getstats() to request an rtcstatsre
port and store it in the variable startre
port.
...And 15 more matches
SubtleCrypto.unwrapKey() - Web APIs
this means that it takes as its input a key that has been ex
ported and then encrypted (also called "wrapped").
... it decrypts the key and then im
ports it, returning a cryptokey object that can be used in the web crypto api.
... as with subtlecrypto.im
portkey(), you specify the key's im
port format and other attributes of the key to im
port details such as whether it is extractable, and which operations it can be used for.
...And 15 more matches
Movement, orientation, and motion: A WebXR example - Web APIs
when rendering the left eye, the xrwebgllayer has its view
port configured to restrict drawing to the left half of the drawing surface.
... contrarily, when rendering the right eye, the view
port is set to restrict drawing to the right half of the surface.
...this example also im
ports the webxr polyfill maintained by the immersive web working group, which is the team responsible for the webxr api's specification.
...And 15 more matches
Functions and classes available to Web Workers - Web APIs
yes, on workerglobalscope yes, on workerglobalscope yes, on window setinterval() yes, on workerglobalscope yes, on workerglobalscope yes, on workerglobalscope yes, on workerglobalscope yes, on window settimeout() yes, on workerglobalscope yes, on workerglobalscope yes, on workerglobalscope yes, on workerglobalscope yes, on window im
portscripts() yes, on workerglobalscope yes, on workerglobalscope yes, on workerglobalscope yes, on workerglobalscope no close() yes, on workerglobalscope yes, on workerglobalscope yes, but is a no-op.
... unknown no postmessage() yes, on dedicatedworkerglobalscope no no unknown no apis available in workers function functionality sup
port in gecko (firefox) sup
port in ie sup
port in blink (chrome and opera) sup
port 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).
... 38 (38) no sup
port no sup
port no sup
port cache cache api provides the ability to programmatically control cache storage associated with current origin.
...And 15 more matches
<img>: The Image Embed element - HTML: Hypertext Markup Language
sup
ported image formats the html standard doesn't list what image formats to sup
port, so each user agent sup
ports different formats.
... a complete guide to image formats sup
ported by web browsers is available.
... 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 gr...
...And 15 more matches
<input type="month"> - HTML: Hypertext Markup Language
the control's ui varies in general from browser to browser; at the moment sup
port is patchy, with only chrome/opera and edge on desktop — and most modern mobile browser versions — having usable implementations.
... in browsers that don't sup
port month inputs, the control degrades gracefully to a simple <input type="text">, although there may be automatic validation of the entered text to ensure it's formatted as expected.
... for those of you using a browser that doesn't sup
port month, the screenshot below shows what it looks like in chrome and opera.
...And 15 more matches
SVG documentation index - SVG: Scalable Vector Graphics
alable vector graphics 2d graphics, graphics, icons, images, reference, responsive design, svg, scalable graphics, scalable images, vector graphics, web, l10n:priority scalable vector graphics (svg) are an xml-based markup language for describing two-dimensional based vector graphics.xml 2 applying svg effects to html content css, guide, html, svg modern browsers sup
port using svg within css styles to apply graphical effects to html content.
...it is im
portant to understand the concept of namespaces and how they are used if you plan to author svg content.
... versions of svg viewers prior to the release of firefox 1.5 unfortunately paid scant attention to namespaces, but they are essential to multi-xml dialect sup
porting user agents such as gecko-based browsers which must be very strict.
...And 15 more matches
Content Scripts - Archive of obsolete content
there are five basic principles: the add-on's main code, including "main.js" and other modules in "lib", can use the sdk high-level and low-level apis, but can't access web content directly content scripts can't use the sdk's apis (no access to globals ex
ports, require) but can access web content sdk apis that use content scripts, like page-mod and tabs, provide functions that enable the add-on's main code to load content scripts into web pages content scripts can be loaded in as strings, but are more often stored as separate files under the add-on's "data" directory.
... tabs: ex
ports a tab object for working with a browser tab.
... event listeners you can listen for dom events in a content script just as you can in a normal page script, but there are two im
portant differences: first, if you define an event listener by passing it as a string into setattribute(), then the listener is evaluated in the page's context, so it will not have access to any variables defined in the content script.
...And 14 more matches
dev/panel - Archive of obsolete content
when the panel's created, the framework passes it a debuggee: this is a message
port object that you can use to exchange json messages with the browser that the developer tools are currently debugging.
... debuggee is a message
port object that you can use to exchange messages with the debugger server.
... optional once you've defined the panel's constructor you have to ex
port it so it can be called by the framework.
...And 14 more matches
Frequently Asked Questions - Archive of obsolete content
this is either because your browser doesn't sup
port svg (you must have mozilla firefox 1.5 or newer), or because the webpage/server isn't correctly telling mozilla that the file contains svg.
... how should i re
port bugs in mozilla svg?
...to help us make the best use of our time, please first search in the svg component of our bug database to check that the issue hasn't already been re
ported.
...And 14 more matches
nsIContentPolicy - Archive of obsolete content
method overview short shouldload(in unsigned long acontenttype, in nsiuri acontentlocation, in nsiuri arequestorigin, in nsisup
ports acontext, in acstring amimetypeguess, in nsisup
ports aextra, in nsiprincipal arequestprincipal); short shouldprocess(in unsigned long acontenttype, in nsiuri acontentlocation, in nsiuri arequestorigin, in nsisup
ports acontext, in acstring amimetype, in nsisup
ports aextra, in nsiprincipal arequestprincipal); constants content types constant value description ...
... type_csp_re
port 17 indicates a content security policy re
port.
... im
portant: this type is mapped to type_script before being passed to content policy implementations, and should not be used outside gecko core code.
...And 14 more matches
Responsive design - Learn web development
it is im
portant to understand that responsive web design isn't a separate technology — it is a term used to describe an approach to web design or a set of best practices, used to create a layout that can respond to the device being used to view the content.
... for example, the following media query tests to see if the current web page is being displayed as screen media (therefore not a printed document) and the view
port is at least 800 pixels wide.
... using view
port units for responsive typography an interesting approach is to use the view
port unit vw to enable responsive typography.
...And 14 more matches
Accessibility Features in Firefox
assistive technology sup
port on windows "i am a full firefox convert with the release of 1.5.
... at my next op
portunity, i intend to convert my family over to it too." darren paskell, from window-eyes beta testing list firefox works with popular screen readers, with the best sup
port currently coming from gw micro's window-eyes 5.5.
... we are optimistic that jaws sup
port will catch up this year.
...And 14 more matches
Experimental features in Firefox
html element: <dialog> the html <dialog> element and its associated dom apis provide sup
port for html-based modal dialog boxes.
... nightly 75 no developer edition 75 no beta 75 no release 75 no preference name layout.css.focus-visible.enabled single numbers as aspect ratio in media queries sup
port for using a single <number> as a <ratio> when specifying the aspect ratio for a media query.
... nightly 70 no developer edition 70 no beta 70 no release 70 no preference name layout.css.backdrop-filter.enabled grid: masonry layout adds sup
port for a masonry style layout based on grid layout where one axis has a masonry layout while having normal grid layout on the other.
...And 14 more matches
about:memory
it also lets you do other memory-related operations like trigger gc and cc, dump gc & cc logs, and dump dmd re
ports.
... how to generate memory re
ports let's assume that you want to measure firefox's memory usage.
... perhaps you want to investigate it yourself, or perhaps someone has asked you to use about:memory to generate "memory re
ports" so they can investigate a problem you are having.
...And 14 more matches
NSS 3.35 release notes
nss 3.35 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_35_rtm/src/ new in nss 3.35 new functionality tls 1.3 sup
port has been updated to draft -23.
... this includes a large number of changes since 3.34, which sup
ported only draft -18.
...note that this release does not include sup
port for the latter.
...And 14 more matches
Enc Dec MAC Using Key Wrap CertReq PKCS10 CSR
= filetoitem(&filedata, file); nonbody = (char *)filedata.data; if (!nonbody) { pr_fprintf(pr_stderr, "unable to read data from input file\n"); rv = secfailure; goto cleanup; } /* check for headers and trailers and remove them */ if ((body = strstr(nonbody, header)) != null) { char *trail = null; nonbody = body; body =
port_strchr(body, '\n'); if (!body) body =
port_strchr(nonbody, '\r'); /* maybe this is a mac file */ if (body) trail = strstr(++body, trailer); if (trail != null) { *trail = '\0'; } else { pr_fprintf(pr_stderr, "input has header but no trailer\n");
port_free(filedata.data); rv = secfailu...
...re; goto cleanup; } } else { /* headers didn't exist */ char *trail = null; body = nonbody; if (body) { trail = strstr(++body, trailer); if (trail != null) { pr_fprintf(pr_stderr, "input has no header but has trailer\n");
port_free(filedata.data); rv = secfailure; goto cleanup; } } } hextobuf(body, item, ishexdata); cleanup: if (file) { pr_close(file); } return rv; } /* * generate the private key */ seckeyprivatekey * generateprivatekey(keytype keytype, pk11slotinfo *slot, int size, int publicexponent, const char *noise, seckeypubli...
... mechanism; secoidtag algtag; pk11rsagenparams rsaparams; void *params; seckeyprivatekey *privkey = null; secstatus rv; unsigned char randbuf[blocksize + 1]; rv = generaterandom(randbuf, blocksize); if (rv != secsuccess) { fprintf(stderr, "error while generating the random numbers : %s\n",
port_errortostring(rv)); goto cleanup; } pk11_randomupdate(randbuf, blocksize); switch (keytype) { case rsakey: rsaparams.keysizeinbits = size; rsaparams.pe = publicexponent; mechanism = ckm_rsa_pkcs_key_pair_gen; algtag = sec_oid_pkcs1_md5_with_rsa_encryption; pa...
...And 14 more matches
EventTarget.addEventListener() - Web APIs
common targets are element, document, and window, but the target may be any object that sup
ports events (such as xmlhttprequest).
... for example, an event handler callback that can be used to handle both fullscreenchange and fullscreenerror might look like this: function eventhandler(event) { if (event.type == 'fullscreenchange') { /* handle a full screen toggle */ } else /* fullscreenerror */ { /* handle a full screen toggle error */ } } safely detecting option sup
port in older versions of the dom specification, the third parameter of addeventlistener() was a boolean value indicating whether or not to use capture.
... for example, if you want to check for the passive option: let passivesup
ported = false; try { const options = { get passive() { // this function will be called when the browser // attempts to access the passive property.
...And 14 more matches
FileReaderSync - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilereadersyncchrome full sup
port yesedge full sup
port 12firefox full sup
port 8ie full sup
port yesopera full sup
port yessafari full sup
port yeswebview android full...
... sup
port yeschrome android full sup
port yesfirefox android full sup
port 8opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yesreadasarraybufferchrome full sup
port yesedge full sup
port 12firefox full sup
port 8ie full sup
port yesopera full sup
port yessafari full sup...
...
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 8opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yesreadasbinarystringchrome full sup
port yesedge full sup
port 12firefox full sup
port 8ie full sup
port yesopera fu...
...And 14 more matches
MSGestureEvent - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmsgestureevent non-standardchrome no sup
port noedge no sup
port 12 — 79firefox no sup
port noie full sup
port 10opera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nomsgestureevent() constructor non-standardchrome no sup
port noedge no sup
port 12 — 79firefox no sup
port noie full sup
port 10opera no sup
port nosafari no sup
port noweb...
...view android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port noexpansion non-standardchrome no sup
port noedge no sup
port 12 — 79firefox no sup
port noie full sup
port 10opera no sup
port nosafari no suppo...
...And 14 more matches
URLUtilsReadOnly - Web APIs
urlutilsreadonly.host read only is a domstring containing the host, that is the hostname, a ':', and the
port of the url.
... urlutilsreadonly.
port read only is a domstring containing the
port number of the url.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung interneturlutilsreadonlychrome no sup
port noedge no sup
port nofirefox full sup
port 57 full sup
port 57 no sup
port 3.5 — 57notes notes firefox has a bug whereby single quotes contained in urls are escaped when accessed via url apis (see bug 1386683).i...
...And 14 more matches
Geometry and reference spaces in WebXR - Web APIs
the webgl coordinates and lengths are transformed automatically at render time to the size of the view
port in which the scene is being rendered.
...each object within the scene that needs to directly exchange position and orientation data with the webxr system needs to be able to re
port that information in a way that can be understood and adapted as needed to be comprehensible by other objects within the scene.
...it has the ability to re
port movement and its orientation, but it doesn't know anything about the position of the headset or, more crucially, its coordinate system.
...And 14 more matches
@font-feature-values - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet@font-feature-valueschrome no sup
port noedge no sup
port nofirefox full sup
port 34 full sup
port 34 full sup
port 24disabled disabled from version 24: this feature is behind the layout.css.font-features.enabled preference (needs to...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port 9.1webview android no sup
port nochrome android no sup
port nofirefox android full sup
port 34 full sup
port 34 full sup
port 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 sup
port nosafari ios full sup
port 9.3samsung internet android no sup
port no@annotationchrome no sup
port noedge no sup
port nofirefox full sup
port 34 full sup
port 34 full sup
port 24disabled disabled from version 24: this feature is behind the layout.css.font-features.enabled preference (needs to be set to true).
...And 14 more matches
max-width - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmax-widthchrome full sup
port 1edge full sup
port 12firefox full sup
port 1notes full sup
port 1notes notes css 2.1 leaves the behavior of max-width with table undefined.
... firefox sup
ports applying max-width to table elements.ie full sup
port 7opera full sup
port 4notes full sup
port 4notes notes css 2.1 leaves the behavior of max-width with table undefined.
... opera sup
ports applying max-width to table elements.safari full sup
port 1webview android full sup
port 4.4chrome android full sup
port 18firefox android full sup
port 4notes full sup
port 4notes notes css 2.1 leaves the behavior of max-width with table undefined.
...And 14 more matches
WebAssembly.instantiate() - JavaScript
im
portant: this method is not the most efficient way of fetching and instantiating wasm modules.
... syntax primary overload — taking wasm binary code promise<resultobject> webassembly.instantiate(buffersource, im
portobject); parameters buffersource a typed array or arraybuffer containing the binary code of the .wasm module you want to compile.
... im
portobject optional an object containing the values to be im
ported into the newly-created instance, such as functions or webassembly.memory objects.
...And 14 more matches
panel - Archive of obsolete content
usage this module ex
ports a single constructor function panel() which constructs a new panel.
...to do this, save the html in your add-on's data directory and load it using the data.url() method ex
ported by the self module, like this: var mypanel = require("sdk/panel").panel({ contenturl: require("sdk/self").data.url("myfile.html") }); mypanel.show(); from firefox 34, you can use "./myfile.html" as an alias for self.data.url("myfile.html").
... you can communicate with the script using either the postmessage() api or (preferably, usually) the
port api.
...And 13 more matches
Archived Mozilla and build documentation - Archive of obsolete content
activex control for hosting netscape plug-ins in ie microsoft has removed sup
port for netscape plug-ins from ie 5.5 sp 2 and beyond.
...mozilla dtrace sup
port has been added by the sun dtrace team and can be used on solaris 10 and mac os x 10.5.
... error console the error console is a tool available in most mozilla-based applications that is used for re
porting errors in the application chrome and in web pages user opens.
...And 13 more matches
TCP/IP Security - Archive of obsolete content
trans
port layer.
... this layer provides connection-oriented or connectionless services for trans
porting application layer services between networks.
... the trans
port layer can optionally assure the reliability of communications.
...And 13 more matches
CSS values and units - Learn web development
you can use any available <color> values assuming they are sup
ported by your browser.
... the page on mdn for each value will give you information about browser sup
port.
... for example, if you look at the page for <color> you will see that the browser compatibility section lists different types of color value and sup
port for them.
...And 13 more matches
The HTML5 input types - Learn web development
note: most of the features discussed in this article have wide sup
port across browsers.
...if you want more detail on browser sup
port, you should consult our html forms element reference, and in particular our extensive <input> types reference.
...the browser will re
port an error if no protocol (such as http:) is entered, or if the url is otherwise malformed.
...And 13 more matches
CSUN Firefox Materials
websites such as online magazines with sophisticated audiences are now re
porting upwards of 25% firefox usage.
...assistive technology sup
port on windows "i am a full firefox convert with the release of 1.5.
... at my next op
portunity, i intend to convert my family over to it too.
...And 13 more matches
Software accessibility: Where are we today?
on to use the keyboard to simulate mouse actions alternate input devices, which allow people with physical disabilities to use alternatives to a keyboard and mouse voice recognition software, which allows a person to simulate typing on a keyboard or selecting with a mouse by speaking into the computer screen magnification software, which allows a low-vision computer user to more easily read
portions of the screen comprehension software, which allows a dyslexic or learning disabled computer user to see and hear text as it is manipulated on the computer screen in fact, the entire adaptive technology industry has grown up around these issues.
...finally, this technology could be useful to mainstream users, on
portable information appliances, or to access information when the eyes are busy elsewhere.
...otherwise, screen magnification programs may be used, which allow zooming in to
portions of the screen, while following the mouse or the current focus.
...And 13 more matches
NSS 3.24 release notes
nss 3.24 requires netscape
portable runtime (nspr) 4.12 or newer.
... also, partial sup
port for rsa probabilistic signature scheme (rsa-pss) certificates has been added.
... for functions that use temporary arenas, allocating a
portcheaparena on the stack is more performant than allocating a plarenapool on the heap.
...And 13 more matches
nsITransferable
inherits from: nsisup
ports last changed in gecko 13.0 (firefox 13.0 / thunderbird 13.0 / seamonkey 2.10) implemented by: @mozilla.org/widget/transferable;1.
... to create an instance, use: var transferable = components.classes["@mozilla.org/widget/transferable;1"] .createinstance(components.interfaces.nsitransferable); it's im
portant to note that a flavor, which specifies a type of data the transferable sup
ports, is represented by a null-terminated string indicating the mime type of the format sup
ported by the flavor.
... method overview void adddataflavor( in string adataflavor ); nsisup
portsarray flavorstransferablecanex
port( ); nsisup
portsarray flavorstransferablecanim
port( ); void getanytransferdata( out string aflavor, out nsisup
ports adata, out unsigned long adatalen ); void gettransferdata( in string aflavor, out nsisup
ports adata, out unsigned long adatalen ); void init(in nsiloadcontext acontext); boolean islargedataset( ); void removedataflavor( in string adataflavor ); void settransferdata( in string aflavor, in nsisup
ports adata, in unsigned long adatalen ); attributes attribute type description converter nsiformatconverter an nsiformatconverter instance which implements the cod...
...And 13 more matches
NavigationPreloadManager - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnavigationpreloadmanager experimentalchrome full sup
port 62edge full sup
port 18firefox no sup
port nonotes no sup
port nonotes notes implementation tracked in bug 1290958ie ?
... opera full sup
port 49safari ?
... webview android full sup
port 62chrome android full sup
port 62firefox android no sup
port nonotes no sup
port nonotes notes implementation tracked in bug 1290958opera android full sup
port 46safari ios ?
...And 13 more matches
Using the Payment Request API - Web APIs
note: the code snippets from this section are from our feature detect sup
port demo.
...this takes two mandatory parameters and one option parameter: methoddata — an object containing information concerning the payment provider, such as what payment methods are sup
ported, etc.
... so for example, you could create a new paymentrequest instance like so: var request = new paymentrequest(buildsup
portedpaymentmethoddata(), buildshoppingcartdetails()); the functions invoked inside the constructor simply return the required object parameters: function buildsup
portedpaymentmethoddata() { // example sup
ported payment methods: return [{ sup
portedmethods: 'basic-card', data: { sup
portednetworks: ['visa', 'mastercard'], sup
portedtypes: ['debit', 'credit'] } }]; } function buildshoppingcartdet...
...And 13 more matches
RTCConfiguration - Web APIs
the options include ice server and trans
port settings and identity information.
... icetrans
portpolicy optional the current ice trans
port policy; this must be one of the values from the rtcicetrans
portpolicy enumeration.
... rtcpmuxpolicy optional the rtcp mux policy to use when gathering ice candidates, in order to sup
port non-multiplexed rtcp.
...And 13 more matches
Using WebRTC data channels - Web APIs
since all webrtc components are required to use encryption, any data transmitted on an rtcdatachannel is automatically secured using datagram trans
port layer security (dtls).
... creating a data channel the underlying data trans
port used by the rtcdatachannel can be created in one of two ways: let webrtc create the trans
port and announce it to the remote peer for you (by causing it to receive a datachannel event).
... write your own code to negotiate the data trans
port and write your own code to signal to the other peer that it needs to connect to the new channel.
...And 13 more matches
Starting up and shutting down a WebXR session - Web APIs
webxr availability as a new and still in development api, webxr sup
port is limited to specific devices and browsers; and even on those, it may not be enabled by default.
... webxr polyfill the team designing the webxr specification has published a webxr polyfill which you can use to simulate webxr on browsers which don't have sup
port for the webxr apis.
... if the browser sup
ports the older webvr api, that is used.
...And 13 more matches
Adding captions and subtitles to HTML5 video - Developer guides
similar to the video controls, if a browser sup
ports html5 video subtitles, there will be a button provided within the native control set to access them.
... browsers do vary as to what they sup
port, so we will be attempting to bring a more unified ui to each browser where possible.
...d:#666; list-style-type:none; margin:0; padding:0; width:100px; padding:10px; } .subtitles-menu li { padding:0; text-align:center; } .subtitles-menu li button { border:none; background:#000; color:#fff; cursor:pointer; width:90%; padding:2px 5px; border-radius:2px; } styling the displayed subtitles one of the less well known about and sup
ported features of webvtt is the ability to style the individual subtitles (something called text cues) via css extensions.
...And 13 more matches
Creating a cross-browser video player - Developer guides
using these different source formats gives the best chance of being sup
ported across all browsers that sup
port html5 video.
... for further information on video formats and browser compatibility, see sup
ported media formats.
... for browsers that do not sup
port html5 video, a flash player is provided that will allow playback of the mp4 video source, provided the end user has flash installed.
...And 13 more matches
<input type="week"> - HTML: Hypertext Markup Language
the control's user interface varies from browser to browser; cross-browser sup
port is currently a bit limited, with only chrome/opera and microsoft edge sup
porting it at this time.
... in non-sup
porting browsers, the control degrades gracefully to function identically to <input type="text">.
... value a domstring representing a week and year, or empty events change and input sup
ported common attributes autocomplete, list, readonly, and step idl attributes value, valueasdate, valueasnumber, and list.
...And 13 more matches
<video>: The Video Embed element - HTML: Hypertext Markup Language
the html video element (<video>) embeds a media player which sup
ports video playback into the document.
... the content inside the opening and closing <video></video> tags is shown as a fallback in browsers that don't sup
port the element.
... attributes like all other html elements, this element sup
ports the global attributes.
...And 13 more matches
Content Security Policy (CSP) - HTTP
browsers that don't sup
port it still work with servers that implement it, and vice-versa: browsers that don't sup
port csp simply ignore it, functioning as usual, defaulting to the standard same-origin policy for web content.
...entions of the x-content-security-policy header, but that's an older version and you don't need to specify it anymore.) alternatively, the <meta> element can be used to configure a policy, for example: <meta http-equiv="content-security-policy" content="default-src 'self'; img-src https://*; child-src 'none';"> threats mitigating cross site scripting a primary goal of csp is to mitigate and re
port xss attacks.
...sites may also use the strict-trans
port-security http header to ensure that browsers connect to them only over an encrypted channel.
...And 13 more matches
Authoring MathML - MathML
as a consequence, good mathml authoring tools are more im
portant and we describe some tools below.
... using mathml mathml in html pages you can use presentation mathml inside html5 documents: <!doctype html> <html> <head> <title>mathml in html5</title> </head> <body> <h1>mathml in html5</h1> <p> square root of two: <math> <msqrt> <mn>2</mn> </msqrt> </math> </p> </body> </html> content mathml is not sup
ported by browsers.
... fallback for browsers without mathml sup
port unfortunately, some browsers are not able to render mathml equations or only have a limited sup
port.
...And 13 more matches
platform/xpcom - Archive of obsolete content
implementing xpcom interfaces this module ex
ports a class called unknown which implements the fundamental xpcom interface nsisup
ports.
... function register() { observerservice.addobserver(this, this.topic, false); }, unregister: function() { observerservice.removeobserver(this, this.topic); }, observe: function observe(subject, topic, data) { console.log('star observer:', subject, topic, data); } }); var starobserver = starobserver(); starobserver.register(); implementing xpcom factories the xpcom module ex
ports a class called factory which implements the nsifactory interface.
...loworld'; // 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[contractid].createinstance(ci.nsisup
ports); var helloworld = wrapper.wrappedjsobject; console.log(helloworld.hello()); using class id you can specify a class id for the factory by setting the id option in the factory's constructor.
...And 12 more matches
How to convert an overlay extension to restartless - Archive of obsolete content
step 1: use services.jsm if you load one of mozilla's internal jsm files, for example services.jsm, you'll do so via privileged javascript code like this: components.utils.im
port("resource://gre/modules/services.jsm"); from here on out, it is assumed you've im
ported services.jsm somewhere at the top of whatever file you're in and will be using it in all code examples.
...you can use chrome:// uris with "components.utils.im
port()" just fine; in fact you've been able to since firefox 4.
... step 2a: load your jsm from chrome:// now with that preface out of the way, this part is easy: drop sup
port for firefox 3.x if you haven't already, move your jsm files to wherever you've got your chrome mapping to for your xul overlay and/or windows, im
port your files from that new chrome mapped path instead of the old resource one, and remove your "resource" line from your chrome.manifest file.
...And 12 more matches
XML in Mozilla - Archive of obsolete content
mozilla has a relatively good sup
port for xml.
... several world wide web consortium (w3c) recommendations and drafts from the xml family of specifications are sup
ported, as well as other related technologies.
... sup
ported core xml w3c recommendations the core xml sup
port includes parsing xml without validation (we use the expat parser), displaying xml with css, manipulating xml documents with scripts via dom, associating stylesheets with xml documents, and namespaces in xml.
...And 12 more matches
Writing Skinnable XUL and CSS - Archive of obsolete content
if inheriting the global skin, a skin file must im
port the global skin explicitly.
... if your skin file wishes to inherit the global skin, then it should im
port the global skin explicitly.
... this is done using an @im
port directive placed at the top of the file.
...And 12 more matches
Choosing Standards Compliance Over Proprietary Practices - Archive of obsolete content
the purpose of this document is to discuss and emphasize the im
portance of conforming to open technology standards that are external to the organization.
... common development process as an organization matures, managers and engineers develop a fundamental understanding of the im
portance of requiring adherence to these processes.
... other standards it is also im
portant to follow other types of standards across an organization.
...And 12 more matches
Multimedia: Images - Learn web development
for the average website, 51% of its bandwidth comes from imagery, followed by video at 25%, so it's safe to say it's im
portant to address and optimize your multi-media content.
...it's im
portant to remember that when images are downloaded, they need to be stored in memory.
...however, images are mostly used for content, so it's im
portant that a visitor can see them as soon as possible for a good experience.
...And 12 more matches
How Mozilla's build system works
however, the most im
portant file in terms of architecture is config.status.
...for example, there is a tier for the netscape
portable runtime (nspr), one for the javascript engine, one for the core gecko platform, one for the xul app being built, and so on.
... each tier consists of three sub-tiers: ex
port, libs, and tools.
...And 12 more matches
Introduction to Network Security Services
network security services (nss) is a set of libraries designed to sup
port cross-platform development of communications applications that sup
port ssl, s/mime, and other internet security standards.
... for a general overview of nss and the standards it sup
ports, see overview of nss.
...applications that use the shared libraries must use only the apis that they ex
port.
...And 12 more matches
Scripting Java
rhino provides a top-level function im
portpackage that serves the same purpose as java's im
port declaration.
... for example, we could im
port all of the classes in the java.io package and access class java.io.file using just the name file: js> im
portpackage(java.io) js> file [javaclass java.io.file] here im
portpackage(java.io) makes all the classes in the java.io package (such as file) available at the top level.
... it's equivalent in effect to the java declaration im
port java.io.*;.
...And 12 more matches
Component Internals
a component in the xpcom framework when you build a component or module and compile it into a library, it must ex
port a single method named nsgetmodule.
...these latter supply ease-of-development utilities like smart pointers, generic modules sup
port, and simple string implementations.
... xpcom initialization to understand why and when your component library gets called, it is im
portant to understand the xpcom initalization process.
...And 12 more matches
nsIURI
netwerk/base/public/nsiuri.idlscriptable this is an interface for an uniform resource identifier with internationalization sup
port, offering attributes that allow setting and querying the basic components of a uri, and methods for performing basic operations on uris.
... inherits from: nsisup
ports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) see the following rfcs for details: rfc3490: internationalizing domain names in applications (idna) rfc3986: uniform resource identifier (uri): generic syntax rfc3987: internationalized resource identifiers subclasses of nsiuri, such as nsiurl, impose further structure on the uri.
...hould use nsiioservice.newuri(), like this: function makeuri(aurl, aorigincharset, abaseuri) { var ioservice = components.classes["@mozilla.org/network/io-service;1"] .getservice(components.interfaces.nsiioservice); return ioservice.newuri(aurl, aorigincharset, abaseuri); } components of a uri prepath path scheme userpass host
port ref ftp :// username@password @ hostname :
portnumber /pathname?query=value #ref method overview nsiuri clone(); nsiuri cloneignoringref(); boolean equals(in nsiuri other); boolean equalsexceptref(in nsiuri other); autf8string resolve(in autf8string relativepath); boolean schemeis(in strin...
...And 12 more matches
nsIURL
netwerk/base/public/nsiurl.idlscriptable this interface provides convenience methods that further break down the path
portion of nsiuri.
...nsiurl); } catch(e) { // the uri is not an url } or using instanceof: if (myuri instanceof components.interfaces.nsiurl) { // your code here } method overview autf8string getcommonbasespec(in nsiuri auritocompare); autf8string getrelativespec(in nsiuri auritocompare); attributes attribute type description directory autf8string directory
portion of a url.
... if the url denotes a path to a directory and not a file, for example http://host/foo/bar/, then the directory attribute accesses the complete /foo/bar/
portion, and the filename is the empty string.
...And 12 more matches
BudgetState - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbudgetstate experimentaldeprecatednon-standardchrome full sup
port 60edge full sup
port ≤79firefox ?
... opera no sup
port nosafari ?
... webview android no sup
port nochrome android full sup
port 60firefox android ?
...And 12 more matches
FederatedCredential - Web APIs
in browsers that sup
port it, an instance of this interface may be passed in the credential member of the init object for global fetch.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfederatedcredential experimentalchrome full sup
port 51edge full sup
port ≤79firefox ?
... opera full sup
port yessafari ?
...And 12 more matches
Using Web Workers - Web APIs
im
porting scripts and libraries worker threads have access to a global function, im
portscripts(), which lets them im
port scripts.
... it accepts zero or more uris as parameters to resources to im
port; all of the following examples are valid: im
portscripts(); /* im
ports nothing */ im
portscripts('foo.js'); /* im
ports just "foo.js" */ im
portscripts('foo.js', 'bar.js'); /* im
ports two scripts */ im
portscripts('//example.com/hello.js'); /* you can im
port scripts from other origins */ the browser loads each listed script and executes it.
...function declarations after the im
portscripts() method are also kept, since these are always evaluated before the rest of the code.
...And 12 more matches
break-before - CSS: Cascading Style Sheets
cras suscipit
porta leo sit amet rutrum.
...morbi metus libero, pharetra non
porttitor a, molestie nec nisi.</p> <h2>subheading</h2> <p>vivamus eleifend metus vitae neque placerat, eget interdum elit mattis.
...nam risus justo, faucibus non
porta a, congue vel massa.
...And 12 more matches
HTML elements reference - HTML: Hypertext Markup Language
<aside> the html <aside> element represents a
portion of a document whose content is only indirectly related to the document's main content.
...im
portant for accessibility and seo, these elements identify the purpose or structure of that content.
... <b> the html bring attention to element (<b>) is used to draw the reader's attention to the element's contents, which are not otherwise granted special im
portance.
...And 12 more matches
OpenSearch description format
opensearch is sup
ported by (at least) firefox, edge, internet explorer, safari, and chrome.
... (see reference material for links to other browsers' documentation.) firefox also sup
ports additional features not in the opensearch standard, such as search suggestions and the <searchform> element.
... this article focuses on creating opensearch-compatible search plugins that sup
port these additional firefox features.
...And 12 more matches
Appendix D: Loading Scripts - Archive of obsolete content
the examples below which make use of the services global assume that you're previously im
ported the services.jsm module.
... debuggable: development tools sup
port debugging javascript loaded by script tags disadvantages scoping: scripts loaded via script tags share the global scope with all other scripts loaded into the same window.
...some known issues include: e4x xml objects cannot be wrapped for passage between compartments: bug 613142 there are a number of type detection issues, including: string.replace does not recognize regexp objects from foreign compartments: bug 633830 debugging: sup
port for sandbox evaluation in development tools is uneven.
...And 11 more matches
Index of archived content - Archive of obsolete content
navigator navigator.moznotification add-ons add-on sdk builder guides content scripts communicating with other scripts communicating using "
port" communicating using "postmessage" cross-domain content scripts interacting with page scripts loading content scripts reddit example
port self contributor's guide classes and inheritance ...
... content processes getting started modules private properties firefox compatibility module structure of the sdk
porting the library detector program id sdk api lifecycle sdk and xul comparison testing the add-on sdk two types of scripts working with events xul migration guide high-level apis addon-page base64 clipboard context-menu hotkeys indexed-db l10n notifications page-mod ...
... rosetta running applications svg animation svg general scrollbar sidebar stringview tabbox toolbar tree uri parsing view source for xul applications windows xml-related code snippets xml:base sup
port in old browsers xpath getattributens common pitfalls communication between html and your extension creating custom firefox extensions with the mozilla build system custom about: urls default preferences deploying a plugin as an extension developing add-on...
...And 11 more matches
JavaScript crypto - Archive of obsolete content
though some browsers may still sup
port it, it is in the process of being dropped.
... warning: the features mentioned in this article are deleted proprietary mozilla extensions, and are not sup
ported in any other browser.
... services are provided to enable: smart card events, generating certificate requests, im
porting user certs, generating random numbers, logging out of your tokens, and signing text.
...And 11 more matches
Index - Archive of obsolete content
435 how to implement a custom xul query processor component xul sup
ports templating to create a block of content from a datasource query.
...the templating system also sup
ports building custom query processors.
... 436 index found 1218 pages: 437 international characters in xul javascript firefox, gecko, guide, internationalization, javascript, mozilla, xpcom, xul gecko 1.8, as used in firefox 1.5 and other applications, added sup
port for non-ascii characters in javascript files loaded from xul files.
...And 11 more matches
HTML text fundamentals - Learn web development
search engines indexing your page consider the contents of headings as im
portant keywords for influencing the page's search rankings.
...more im
portantly, its semantic value will be used in multiple ways, for example by search engines and screen readers (as mentioned above).
... emphasis and im
portance in human language, we often emphasise certain words to alter the meaning of a sentence, and we often want to mark certain words as im
portant or different in some way.
...And 11 more matches
Introduction to client-side frameworks - Learn web development
it is an older framework that has less users than more modern alternatives such as react and vue, but it still enjoys a fair amount of popularity due to its stability, community sup
port, and some clever coding principles.
... when an spa is complex enough, and renders enough unique views, it's im
portant to bring routing functionality into your application.
... overengineering if your web development project is a personal
portfolio with a few pages, and those pages have little or no interactive capability, a framework (and all of its javascript) may not be necessary at all.
...And 11 more matches
Creating our first Vue component - Learn web development
along the way, we'll learn about a few im
portant concepts such as calling components inside other components, passing data to them via props, and saving data state.
...inside the <script> tags, add a default ex
ported object ex
port default {}, which is your component object.
... your file should now look like this: <template> </template> <script> ex
port default {}; </script> we can now begin to add actual content to our todoitem.
...And 11 more matches
Testopia
it is designed to be a generic tool for tracking test cases, allowing for testing organizations to integrate bug re
porting with their test case run results.
... if you find bugs in the code available from the git repository, please re
port it to us so that we can fix most critical ones on time for testopia 3.0.
... testopia 2.5 this versions sup
ports bugzilla 4.2 and 4.4, and the best news is that it no longer requires a patch for bugzilla.
...And 11 more matches
WebRequest.jsm
usage to im
port webrequest, use code like: let {webrequest} = cu.im
port("resource://gre/modules/webrequest.jsm", {}); the webrequest object has the following properties, each of which corresponds to a specific stage in executing a web request: onbeforerequest onbeforesendheaders onsendheaders onheadersreceived onresponsestarted oncompleted each of these objects defines two functions: addlistener(c...
... to specify match patterns, first im
port the "matchpattern.jsm" module, then construct a matchpattern.
... the matchpattern constructor accepts: either: a string defining a single pattern or: an array of such strings cu.im
port("resource://gre/modules/matchpattern.jsm"); let pattern = new matchpattern("https:/developer.mozilla.org/*"); cu.im
port("resource://gre/modules/matchpattern.jsm"); let pattern = new matchpattern(["https://mozorg.cdn.mozilla.net/*", "https://mdn.mozillademos.org/*", "https://developer.cdn.mozilla.net/*"]); see the match patterns article for details on the syntax of the strings you supply.
...And 11 more matches
JSS FAQ
does jss have 64 bit sup
port?
... how can i tell which ssl/tls ciphers jss sup
ports?
... jss 3.2 has jca sup
port.
...And 11 more matches
Observer Notifications
you can cancel the shutdown from here by setting asubject.data to true (asubject is the first parameter to your observer, the data value is an nsisup
portsprbool).
...the data value is an nsisup
portsprbool.
... the window id can be obtained from subject.queryinterface(components.interfaces.nsisup
portspruint64).data outer-window-destroyed nsidomwindow called when an outer window is disconnected from its docshell.
...And 11 more matches
nsIIOService
inherits from: nsisup
ports last changed in gecko 1.2 this interface duplicates many of the nsiprotocolhandler methods in a protocol handler independent way (for example newuri() inspects the scheme in order to delegate creation of the new uri to the appropriate protocol handler).
... implemented by @mozilla.org/network/io-service;1 as a service: var ioservice = components.classes["@mozilla.org/network/io-service;1"] .getservice(components.interfaces.nsiioservice); method overview boolean allow
port(in long a
port, in string ascheme); acstring extractscheme(in autf8string urlstring); unsigned long getprotocolflags(in string ascheme); nsiprotocolhandler getprotocolhandler(in string ascheme); nsichannel newchannel(in autf8string aspec, in string aorigincharset, in nsiuri abaseuri); obsolete since gecko 48 nsichannel newchannel2(in autf8string aspec, in string aorigincharset, in nsiuri abaseuri, in nsidomnode aloadingnode, in nsiprincipal aloadin...
... methods allow
port() checks if a
port number is banned.
...And 11 more matches
nsINavBookmarksService
1.0 67 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 14.0 (firefox 14.0 / thunderbird 14.0 / seamonkey 2.11) implemented by: @mozilla.org/browser/nav-bookmarks-service;1.
...d, in nsiuri anewuri); long long createdynamiccontainer(in long long aparentfolder, in autf8string aname, in astring acontractid, in long aindex); note: renamed from createcontainer in gecko 1.9 obsolete since gecko 13.0 long long createfolder(in long long aparentfolder, in autf8string name, in long index); void endupdatebatch(); obsolete since gecko 1.9 void ex
portbookmarkshtml(in nsifile file); obsolete since gecko 1.9 nsiuri getbookmarkedurifor(in nsiuri auri); void getbookmarkfolderstarray(in nsiuri auri, in print64array aresult); native code only!
...d); unsigned short getitemtype(in long long aitemid); astring getkeywordforbookmark(in long long aitemid); obsolete since gecko 40.0 astring getkeywordforuri(in nsiuri auri); obsolete since gecko 40.0 nsitransaction getremovefoldertransaction(in long long aitemid); nsiuri geturiforkeyword(in astring keyword); obsolete since gecko 40.0 void im
portbookmarkshtml(in nsiuri url); obsolete since gecko 1.9 void im
portbookmarkshtmltofolder(in nsiuri url, in print64 folder); obsolete since gecko 1.9 print32 indexoffolder(in print64 parent, in print64 folder); obsolete since gecko 1.9 print32 indexofitem(in print64 folder, in nsiuri uri); obsolete since gecko 1.9 long long insertbookmark(in long long aparentid, i...
...And 11 more matches
Standard OS Libraries
components.utils.im
port("resource://gre/modules/ctypes.jsm"); var lib = ctypes.open("user32.dll"); /* note: if you go to getcursorpos page on msdn, it says first argument is of structure point, so lets create that structure, * the link here shows that that x and y are type long which is ctypes.long */ // https://msdn.microsoft.com/en-us/library/windows/desktop/dd162805%28v=vs.85%29.aspx var point = new ctypes.structt...
...ype("tagpoint", [ { "x": ctypes.long }, { "y": ctypes.long } ]); /* declare the signature of the function we are going to call */ var getcursorpos = lib.declare('getcursorpos', ctypes.winapi_abi, ctypes.bool, point.ptr ); /* use it like this */ var point = point(); var ret = getcursorpos(point.address()); components.utils.re
porterror(ret); components.utils.re
porterror(point); lib.close(); resources for winapi githubgists :: noitidart / search · winapi - winapi js-ctypes snippets that can be copied and pasted to scratchpad com see using com from js-ctypes.
...gtk+ and qt have begun
porting their code to wayland.
...And 11 more matches
Plug-in Basics - Plugins
because plug-ins are platform-specific, you must
port them to every operating system and processor platform upon which you want to deploy your plug-in.
...these functions are ex
ported from the plug-in dll and accessed with a system table lookup, which means that they are not related to any particular plug-in instance.
...for example: #!/bin/bash ex
port moz_plugin_path=/usr/lib64/mozilla/plugins exec /usr/lib64/firefox/firefox profile directory/plugins, where profile directory is the directory of the current user profile.
...And 11 more matches
IDBFactory - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbfactorychrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitcmpchrome ...
...And 11 more matches
Using the Resource Timing API - Web APIs
pull requests and bug re
ports are welcome.
... function calculate_load_times() { // check performance sup
port if (performance === undefined) { console.log("= calculate load times: performance not sup
ported"); return; } // get a list of "resource" performance entries var resources = performance.getentriesbytype("resource"); if (resources === undefined || resources.length <= 0) { console.log("= calculate load times: there are no `resource` performance records"); return; } co...
...start until response end time = " + t); } } resource size measurements the size of an application's resources can affect an application's performance so getting accurate data on resource size can be im
portant (especially for non-hosted resources).
...And 11 more matches
WebRTC Statistics API - Web APIs
try { mypeerconnection = new rtcpeerconnection(pcoptions); statsinterval = window.setinterval(getconnectionstats, 1000); /* add event handlers, etc */ } catch(err) { console.error("error creating rtcpeerconnection: " + err); } function getconnectionstats() { mypeerconnection.getstats(null).then(stats => { var statsoutput = ""; stats.foreach(re
port => { if (re
port.type === "inbound-rtp" && re
port.kind === "video") { object.keys(re
port).foreach(statname => { statsoutput += `<strong>${statname}:</strong> ${re
port[statname]}<br>\n`; }); } }); document.queryselector(".stats-box").innerhtml = statsoutput; }); } when the promise returned by getstats() is fulfilled, the resolution handler receives ...
...as input an rtcstatsre
port object containing the statistics information.
... this example specifically looks for the re
port whose type is inbound-rtp and whose kind is video.
...And 11 more matches
Viewpoints and viewers: Simulating cameras in WebXR - Web APIs
the first and most im
portant thing to understand when considering the code to manage point-of-view and cameras in your application is this: webxr does not have cameras.
... in a side-scrolling or top-scrolling game such as super mario bros., the camera moves along left and right (or up and down, or both) to ensure that the action remains visible even though the game level is much larger than the view
port.
...im
portantly, the effect of perspective on a vector can be represented by adding a fourth component to the vector: the perspective component, called w.
...And 11 more matches
Fundamentals of WebXR - Web APIs
webxr additionally provides sup
port for accepting inputs from control devices such as handheld vr controllers or specialized mixed reality gamepads.
...this is an im
portant fact to keep in mind; while webxr manages the timing, scheduling, and the various points of view relevant when drawing the scene, it does not actually know how to load and manage models, render and texture them, and so forth.
...as browser developers built sup
port for webvr and allowed developers to experiment, it became clear that in order to finish an api for virtual environments on the web, it would make more sense to start a new specification than to try to "fix" webvr.
...And 11 more matches
Backwards Compatibility of Flexbox - CSS: Cascading Style Sheets
flexbox is very well sup
ported across modern browsers, however there are a few issues that you might run into.
... in this guide we will look at how well flexbox is sup
ported in browsers, and look at some potential issues, resources and methods for creating workarounds and fallbacks.
...browser sup
port for the up-to-date version of the specification is excellent from this point forward.
...And 11 more matches
break-after - CSS: Cascading Style Sheets
cras suscipit
porta leo sit amet rutrum.
...morbi metus libero, pharetra non
porttitor a, molestie nec nisi.</p> <h2>subheading</h2> <p>vivamus eleifend metus vitae neque placerat, eget interdum elit mattis.
...nam risus justo, faucibus non
porta a, congue vel massa.
...And 11 more matches
mask-size - CSS: Cascading Style Sheets
auto a keyword that scales the mask image in the corresponding directions in order to maintain its intrinsic pro
portion.
... the interpretation of possible values depends on the image's intrinsic dimensions (width and height) and intrinsic pro
portion (ratio of width and height).
... a bitmap image always has intrinsic dimensions and an intrinsic pro
portion.
...And 11 more matches
max-height - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmax-heightchrome full sup
port 18edge full sup
port 12firefox full sup
port 1notes full sup
port 1notes notes css 2.1 leaves the behavior of max-height with table undefined.
... firefox sup
ports applying max-height to table elements.ie full sup
port 7opera full sup
port 7notes full sup
port 7notes notes css 2.1 leaves the behavior of max-height with table undefined.
... opera sup
ports applying max-height to table elements.safari full sup
port 1.3webview android full sup
port ≤37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0fit-content experimentalchrome full sup
port 46 full sup
port 46 full sup
port 25prefixed p...
...And 11 more matches
Cross-browser audio basics - Developer guides
a cross-browser html5 audio player with all the associated attributes, properties, and events explained a guide to custom controls created using the media api basic audio example the code below is an example of a basic audio implementation using html5: <audio controls> <source src="audiofile.mp3" type="audio/mpeg"> <source src="audiofile.ogg" type="audio/ogg"> <!-- fallback for non sup
porting browsers goes here --> <p>your browser does not sup
port html5 audio, but you can still <a href="audiofile.mp3">download the music</a>.</p> </audio> note: you can also use an mp4 file instead of mp3.
...(currently, browsers that sup
port mp3 also sup
port mp4 audio).
... here we define an <audio> element with multiple sources — we do this as not all browsers sup
port the same audio formats.
...And 11 more matches
Standard metadata names - HTML: Hypertext Markup Language
[light | dark]+ one or more color schemes sup
ported by the document.
... only light indicates that the document only sup
ports light mode, with a light background and dark foreground colors.
... the css device adaptation specification defines the following metadata name: view
port: gives hints about the size of the initial size of the view
port.
...And 11 more matches
MIME types (IANA media types) - HTTP
im
portant: browsers use the mime type, not the file extension, to determine how to process a url, so it's im
portant that web servers send the correct mime type in the response's content-type header.
... im
portant mime types for web developers application/octet-stream this is the default for binary files.
...: application/javascript application/ecmascript application/x-ecmascript application/x-javascript text/javascript text/ecmascript text/javascript1.0 text/javascript1.1 text/javascript1.2 text/javascript1.3 text/javascript1.4 text/javascript1.5 text/jscript text/livescript text/x-ecmascript text/x-javascript note: even though any given user agent may sup
port any or all of these, you should only use text/javascript.
...And 11 more matches
Network Error Logging - HTTP
this experimental header allows web sites and applications to opt-in to receive re
ports about failed (and, if desired, successful) network fetches from sup
porting browsers.
... re
ports are sent to a re
porting group defined within a re
port-to header.
... usage web applications opt in to this behaviour with the nel header, which is a json-encoded object: nel: { "re
port_to": "nel", "max_age": 31556952 } an origin considered secure by the browser is required.
...And 11 more matches
WebAssembly.Module - JavaScript
webassembly.module.ex
ports() given a module, returns an array containing descriptions of all the declared ex
ports.
... webassembly.module.im
ports() given a module, returns an array containing descriptions of all the declared im
ports.
... var worker = new worker("wasm_worker.js"); webassembly.compilestreaming(fetch('simple.wasm')) .then(mod => worker.postmessage(mod) ); in the worker (see wasm_worker.js) we define an im
port object for the module to use, then set up an event handler to receive the module from the main thread.
...And 11 more matches
WebAssembly.Table - JavaScript
var tbl = new webassembly.table({initial:2, element:"anyfunc"}); console.log(tbl.length); // "2" console.log(tbl.get(0)); // "null" console.log(tbl.get(1)); // "null" we then create an im
port object that contains the table: var im
portobj = { js: { tbl:tbl } }; finally, we load and instantiate a wasm module (table2.wasm) using the webassembly.instantiatestreaming() method.
... the table2.wasm module contains two functions (one that returns 42 and another that returns 83) and stores both into elements 0 and 1 of the im
ported table (see text representation).
... so after instantiation, the table still has length 2, but the elements now contain callable ex
ported webassembly functions which we can call from js.
...And 11 more matches
Tools for SVG - SVG: Scalable Vector Graphics
browser sup
port as of internet explorer 9, all major browsers sup
port svg: ie 9, mozilla firefox, safari, google chrome and opera.
... mobile devices with webkit-based browsers also sup
port svg.
... on older or smaller devices, chances are that svg tiny is sup
ported.
...And 11 more matches
Signing an XPI - Archive of obsolete content
in my case it's c:\apps\nss-3.11.4\ get netscape
portable runtime 1.
... download the latest netscape
portable runtime from the mozilla ftp site: http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/.
...certificate common name: xpi test organization: tjworld organization unit: software state or province: nottingham country (must be exactly 2 characters): gb username: tj email address: certificates@lan.tjworld.net generated public/private key pair certificate request generated certificate has been signed certificate "mytestcert" added to database ex
ported certificate to x509.raw and x509.cacert.
...And 10 more matches
Tamarin build documentation - Archive of obsolete content
sup
ported platforms tamarin currently sup
ports the following operating systems and/or architectures.
... the tamarin codebase has the ability to build additional code which sup
ports debugging hooks.
...if you have trouble starting the app try this: $ ex
port android_swt=$android_build_top/android-sdk-mac_86/tools/lib/x86_64 where $android_build_top is the full path to your sdk/ndk top folder - get the openssl-0.9.8r.tar (openssl-1.0.0c.tar.gz won't work) openssl files from http://www.openssl.org (use the source link on the left).
...And 10 more matches
The Joy of XUL - Archive of obsolete content
the key features and benefits of xul will be explored followed by an examination of sup
porting mozilla technologies.
... in fact, many developers invest a significant amount of effort to achieve these results in their dhtml web applications but at the cost of complexity and performance and without any sup
porting standards.
... platform
portability like html, xul is designed to be platform-neutral, making applications easily
portable to all of the operating systems on which mozilla runs.
...And 10 more matches
HTML: A good basis for accessibility - Learn web development
— you'll keep seeing a common theme: the im
portance of using semantic html (sometimes called posh, or plain old semantic html).
... you might wonder why this is so im
portant.
... good for seo — search engines give more im
portance to keywords inside headings, links, etc.
...And 10 more matches
HTML: A good basis for accessibility - Learn web development
— you'll keep seeing a common theme: the im
portance of using semantic html (sometimes called posh, or plain old semantic html).
... you might wonder why this is so im
portant.
... good for seo — search engines give more im
portance to keywords inside headings, links, etc.
...And 10 more matches
Flexbox - Learn web development
so for example, you can replace flex-direction: row; flex-wrap: wrap; with flex-flow: row wrap; flexible sizing of flex items let's now return to our first example, and look at how we can control what pro
portion of space flex items take up compared to the other flex items.
... first, add the following rule to the bottom of your css: article { flex: 1; } this is a unitless pro
portion value that dictates how much of the available space along the main axis each flex item will take up compared to other flex items.
... now add the following rule below the previous one: article:nth-of-type(3) { flex: 2; } now when you refresh, you'll see that the third <article> takes up twice as much of the available width as the other two — there are now four pro
portion units available in total (since 1 + 1 + 2 = 4).
...And 10 more matches
Web fonts - Learn web development
web fonts are a css feature that allows you to specify font files to be downloaded along with your website as it is accessed, meaning that any browser that sup
ports web fonts can have exactly the fonts you specify available to it.
... there are two im
portant things to bear in mind about web fonts: browsers sup
port different font formats, so you'll need multiple font formats for decent cross-browser sup
port.
... for example, most modern browsers sup
port woff/woff2 (web open font format versions 1 and 2), the most efficient format around, but older versions of ie only sup
port eot (embedded open type) fonts, and you might need to include an svg version of the font to sup
port older versions of iphone and android browsers.
...And 10 more matches
How to build custom form controls - Learn web development
in particular, it's im
portant to clearly define all the states of your control.
... once we know how to change states, it is im
portant to define how to change the control's value: the value changes when: the user clicks on an option when the control is in the open state.
...this is im
portant to make sure that we don't bind our css and javascript to a strong html structure, so that we can make implementation changes later without breaking code that uses the control.
...And 10 more matches
Drawing graphics - Learn web development
the situation started to improve when browsers began to sup
port the <canvas> element and associated canvas api — apple invented it in around 2004, and other browsers followed by implementing it in the years that followed.
... note: basic canvas functionality is sup
ported well across browsers, with the exception of ie 8 and below for 2d canvas, and ie 11 and below for webgl.
... inside the canvas tags, you can put some fallback content, which is shown if the user's browser doesn't sup
port canvas.
...And 10 more matches
The Firefox codebase: CSS Guidelines
basics here are some basic tips that can optimize reviews if you are changing css: avoid !im
portant but if you have to use it, make sure it's obvious why you're using it (ideally with a comment).
... formatting spacing & indentation 2 spaces indentation is preferred add a space after each comma, except within color functions: linear-gradient(to bottom, black 1px, rgba(255,255,255,0.2) 1px) always add a space before !im
portant.
... once the two things above have been checked, check if the other rule you are overriding contains !im
portant, if that is case, try putting it in question, because it might have become obsolete.
...And 10 more matches
Fonts for Mozilla 2.0's MathML engine
these variant or part glyphs do not in general have unicode assignments, and so font-specific sup
port is required for some characters.
... mozilla has general sup
port for the common delimiters and arrows that have the necessary unicode assignments.
... for other characters, mozilla has font-specific sup
port.
...And 10 more matches
Profiling with the Firefox Profiler
re
porting a performance problem has a step-by-step guide for obtaining a profile when requested by firefox developers.
... a significant
portion of time can be spent in idle, blocking calls like waiting for events.
... it's a good idea to search bugzilla before filing a bug about a performance problem in firefox but sometimes it's hard to find issues that have already been re
ported.
...And 10 more matches
NSS 3.12.4 release notes
currently nss 3.12.4 is in the "review pending" state in the fips 140-2 pre-validation list at http://csrc.nist.gov/groups/stm/cmvp/documents/140-1/140inprocess.pdf added crl distribution point sup
port (see cert.h).
... cert_decodecrlissuingdistributionpoint cert_findcrlissuingdistpointexten the old documentation of the expression matching syntax rules was incorrect, and the new corrected documentation is as follows for public nssutil functions (see
portreq.h):
port_regexpvalid
port_regexpsearch
port_regexpcasesearch these functions will match a string with a shell expression.
... new functions in the nss shared library: pk11_isinternalkeyslot (see pk11pub.h) secmod_opennewslot (see pk11pub.h) new error codes (see secerr.h): sec_error_bad_info_access_method sec_error_crl_im
port_failed new oids (see secoidt.h) sec_oid_x509_any_policy the nssckbi pkcs #11 module's version changed to 1.75.
...And 10 more matches
nss tech note5
nalkeyslot(); /* alwys returns internal slot, may not be optimal */ prepare the key if using a raw key /* turn the raw key into a secitem */ secitem keyitem; keyitem.data = /* ptr to an array of key bytes */ keyitem.len = /* length of the array of key bytes */ /* turn the secitem into a key object */ pk11symkey* symkey = pk11_im
portsymkey(slot, ciphermech, pk11_originunwrap, cka_encrypt, &keyitem, null); if generating the key - see section generate a symmetric key <big>prepare the parameter for crypto context.
...nternalkeyslot(); /* always returns int slot, may not be optimal */ prepare the key if using a raw key /* turn the raw key into a secitem */ secitem keyitem; keyitem.data = /* ptr to an array of key bytes */ keyitem.len = /* length of the array of key bytes */ /* turn the secitem into a key object */ pk11symkey* symkey = pk11_im
portsymkey(slot, digestmech, pk11_originunwrap, cka_digest, &keyitem, null); if generating the key - see section generate a symmetric key.
...ns int slot, may not be optimal */ prepare the key if using a raw key /* turn the raw key into a secitem */ secitem keyitem; keyitem.type = sibuffer; keyitem.data = /* ptr to an array of key bytes */ keyitem.len = /* length of the array of key bytes */ /* turn the secitem into a key object */ pk11symkey* symkey = pk11_im
portsymkey(slot, hmacmech, pk11_originunwrap, cka_sign, &keyitem, null); if generating the key - see section generate a symmetric key.
...And 10 more matches
Multithreading in Necko
in the future, necko may be made thread safe to sup
port changes to gecko that would put some other processing work on background threads (eg.
...for example, the http protocol handler has code that runs on the socket trans
port thread to kick off pending requests well before the main thread would get around to doing so.
... socket trans
port thread (1) socket connections are processed on a single background thread.
...And 10 more matches
SpiderMonkey 1.8.5
—22 march 2011 platform sup
port spidermonkey 1.8.5 is sup
ported on all the platforms where firefox 4 runs.
...it is sup
ported only on x86, x86_64 and arm architectures.
... sup
port for extended class methods (in particular, jsequalityop) has been removed.
...And 10 more matches
IAccessibleText
the rest of the boundary types must be sup
ported.
...textafteroffset() returns a text()
portion after the given position.
...boundarytype the type of the text()
portion to return.
...And 10 more matches
ByteLengthQueuingStrategy - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbytelengthqueuingstrategy experimentalchrome full sup
port 59edge full sup
port 16firefox full sup
port 57disabled full sup
port 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 ...
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 46safari ?
... webview android full sup
port 59chrome android full sup
port 59firefox android full sup
port 57disabled full sup
port 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 10 more matches
Using channel messaging - Web APIs
the channel messaging api allows two separate scripts running in different browsing contexts attached to the same document (e.g., two iframes, or the main document and an iframe, or two documents via a sharedworker) to communicate directly, passing messages between one another through two-way channels (or pipes) with a
port at each end.
... note: for more information and ideas, the
ports as the basis of an object-capability model on the web section of the spec is a useful read.
... var input = document.getelementbyid('message-input'); var output = document.getelementbyid('message-output'); var button = document.queryselector('button'); var iframe = document.queryselector('iframe'); var channel = new messagechannel(); var
port1 = channel.
port1; // wait for the iframe to load iframe.addeventlistener("load", onload); function onload() { // listen for button clicks button.addeventlistener('click', onclick); // listen for messages on
port1
port1.onmessage = onmessage; // transfer
port2 to the iframe iframe.contentwindow.postmessage('init', '*', [channel.
port2]); } // post a message on
port1 when the button...
...And 10 more matches
CountQueuingStrategy - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcountqueuingstrategy experimentalchrome full sup
port 59edge full sup
port 16firefox full sup
port 57disabled full sup
port 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 ...
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 46safari ?
... webview android full sup
port 59chrome android full sup
port 59firefox android full sup
port 57disabled full sup
port 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 10 more matches
Guide to the Fullscreen API - Web APIs
prefixing note: currently, only firefox 64 and chrome 71 sup
ports this unprefixed.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfullscreen deprecatedchrome full sup
port 71 full sup
port 71 full sup
port 15alternate name alternate name uses the non-standard name: webkitisfullscreenedge full sup
port ≤79 full sup
port ≤79 full sup
port ...
... ≤79alternate name alternate name uses the non-standard name: webkitisfullscreenfirefox full sup
port 64 full sup
port 64 no sup
port 49 — 65disabled disabled from version 49 until version 65 (exclusive): this feature is behind the full-screen-api.unprefix.enabled preference (needs to be set to true).
...And 10 more matches
NotificationEvent - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnotificationevent experimentalchrome full sup
port 42edge full sup
port ≤18firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie ?
... opera full sup
port 37safari ?
... webview android no sup
port nochrome android full sup
port 42firefox android full sup
port 44opera android full sup
port 37safari ios ?
...And 10 more matches
RTCStatsType - Web APIs
the rtcstatstype enumerated type (enum) is a set of strings which define the type of statistics re
ported in a record found in the rtcstatsre
port object.
... values candidate-pair an rtcicecandidatepairstats object providing statistics related to an rtcicetrans
port.
... candidate pairs other than the currently active pair for the trans
port are deleted when the rtcpeerconnection changes its rtcpeerconnection.icegatheringstate to new during an ice restart.
...And 10 more matches
ARIA Test Cases - Accessibility
or copy-paste: http://oaa-accessibility.org/examples/ for each example we test the "expected" results with assistive technologies, for each browser that at sup
ports wai-aria in.
... voiceover (leopard) n/a n/a - fail window-eyes - - - - nvda - - - - zoom (leopard) pass n/a pass pass zoomtext - - - - orca - - - - table legend - no info/test yet n/a not applicable (not sup
ported technically) pass expected behaviour met fail expected behaviour notmet 1.
...however, if the screen reader does not at least indicate that the description exists, users are likely to miss im
portant information.
...And 10 more matches
font-variant - CSS: Cascading Style Sheets
the possible values are: lining-nums, oldstyle-nums, pro
portional-nums, tabular-nums, diagonal-fractions, stacked-fractions, ordinal, and slashed-zero.
...the possible values are: jis78, jis83, jis90, jis04, simplified, traditional, full-width, pro
portional-width, ruby.
...-lig-values> = [ common-ligatures | no-common-ligatures ]<discretionary-lig-values> = [ discretionary-ligatures | no-discretionary-ligatures ]<historical-lig-values> = [ historical-ligatures | no-historical-ligatures ]<contextual-alt-values> = [ contextual | no-contextual ]<feature-value-name> = <custom-ident><numeric-figure-values> = [ lining-nums | oldstyle-nums ]<numeric-spacing-values> = [ pro
portional-nums | tabular-nums ]<numeric-fraction-values> = [ diagonal-fractions | stacked-fractions ]<east-asian-variant-values> = [ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]<east-asian-width-values> = [ full-width | pro
portional-width ] examples setting the small-caps font variant html <p class="normal">firefox rocks!</p> <p class="small">firefox rocks!</p> css p.normal { fo...
...And 10 more matches
Content-Security-Policy - HTTP
re
porting directives re
porting directives control the re
porting process of csp violations.
... see also the content-security-policy-re
port-only header.
... re
port-uri instructs the user agent to re
port attempts to violate the content security policy.
...And 10 more matches
Index - HTTP
6 accept-ranges http, http header, range requests, reference, response header the accept-ranges response http header is a marker used by the server to advertise its sup
port of partial requests.
... 16 allow entity header, http, http header, reference, header the allow header lists the set of methods sup
port by a resource.
... 44 csp: re
port-uri csp, directive, http, reference, security the deprecated http content-security-policy (csp) re
port-uri directive instructs the user agent to re
port attempts to violate the content security policy.
...And 10 more matches
Performance fundamentals - Web Performance
application launch is one particularly im
portant case discussed in more detail below.
... responsiveness is im
portant simply because people get frustrated and angry when they're ignored.
... framerate is im
portant as a "quality of service" metric.
...And 10 more matches
WebAssembly Concepts - WebAssembly
webassembly modules can be im
ported into a web (or node.js) app, exposing webassembly functions for use via javascript.
... webassembly goals webassembly is being created as an open standard inside the w3c webassembly community group with the following goals: be fast, efficient, and
portable — webassembly code can be executed at near-native speed across different platforms by taking advantage of common hardware capabilities.
...(note that webassembly has the high-level goal of sup
porting languages with garbage-collected memory models in the future.) with the advent of webassembly appearing in browsers, the virtual machine that we talked about earlier will now load and run two types of code — javascript and webassembly.
...And 10 more matches
No Proxy For configuration - Archive of obsolete content
note for former-ie users: "*" is sup
ported only at the beginning of domain filters (*.mozilla.org).
...hat end in the same string (other-www.mozilla.org) an ip address ip address "1.2.3.4" does not block hostnames that resolve to the ip address ("127.0.0.1" does not block "localhost") a network network w/ cidr block "10.0.0.0/8" does not block hostnames that resolve to the ip address range (10.0.0.0/8 is not "no proxy for intranet hostnames") optional -
port-specific (optional) ":" +
port number "<filter>:81" only black-lists
port.
... only applies to one
port (no sup
port for ranges and/or multiple
ports).
...And 9 more matches
URIs and URLs - Archive of obsolete content
familiar examples include an electronic document, an image, a service (e.g., "today's weather re
port for los angeles"), and a collection of other resources.
...the protocol handler provides scheme specific information and methods to create new uris of the schemes it sup
ports.
... one of the main necko goals is to provide a "plug able" protocol sup
port.
...And 9 more matches
Complete - Archive of obsolete content
however, because it is so simple it does not sup
port some of the usual features of extensions.
...if you want to see these techniques in action, then you can download and install the complete allcustom extension: allcustom.xpi (the link is external only because this wiki does not sup
port xpi files.) the extension does not contain any useful functions.
...it sup
ports firefox, thunderbird, sunbird and flock—these are referred to as "firefox etc." in the rest of this page.
...And 9 more matches
Common Firefox theme issues and solutions - Archive of obsolete content
please see the following threads on mozillazine for solutions to this issue: http://forums.mozillazine.org/viewtopic.php?f=18&t=2131121 http://forums.mozillazine.org/viewtopic.php?f=18&t=1953371&start=60 windows 7 aero not going into full screen mode properly on win7 with aero glass sup
port firefox doesn't always go to full screen mode from a normal window properly.
... the resolution to this issue is to add the following code to your browser.css file somewhere below where the main-window is made transparent to sup
port aero glass.
... @media all and (-moz-windows-compositor) { /* make transition to fullscreen mode seamlessly in firefox 10+ */ #main-window[infullscreen="true"] { -moz-appearance: none; background-color: -moz-dialog!im
portant; } } for more information about this issue please see bug 732757 and bug 732757 and this mozillazine thread.
...And 9 more matches
Game promotion - Game development
promoting the game helps a lot when monetizing it later on too, so it's im
portant to do it correctly.
...the more information you can include the better — you should include screenshots, description, trailer, press kit, requirements, available platforms, sup
port details and more.
...a further option is to publish monthly re
ports that summarize all your progress — it helps you see what you've accomplished throughout the month and what's still left to do, and it keeps reminding people that your game is coming out soon — building buzz is always good.
...And 9 more matches
Audio for Web games - Game development
audio is an im
portant part of any game; it adds feedback and atmosphere.
... mobile audio caveats by far the most difficult platforms to provide web audio sup
port for are mobile platforms.
...although the situation is soon going to get better with the adoption of the web audio api, the current most widely-sup
ported method — using the vanilla <audio> element — leads to patchy results on mobile devices.
...And 9 more matches
Cascade and inheritance - Learn web development
conflicting rules css stands for cascading style sheets, and that first word cascading is incredibly im
portant to understand — the way that the cascade behaves is key to understanding css.
... note: there is also a newer value, revert, which has limited browser sup
port.
... there are three factors to consider, listed here in increasing order of im
portance.
...And 9 more matches
Legacy layout methods - Learn web development
this knowledge will be helpful to you if you need to create fallback code for browsers that do not sup
port newer methods, in addition to allowing you to work on existing projects which use these types of systems.
...cras
porttitor imperdiet nunc, at ultricies tellus laoreet sit amet.
... sed auctor cursus massa at
porta.
...And 9 more matches
Positioning - Learn web development
previous overview: css layout next positioning allows you to take elements out of the normal document layout flow, and make them behave differently; for example sitting on top of one another, or always remaining in the same place inside the browser view
port.
...the initial containing block has the dimensions of the view
port, and is also the block that contains the <html> element.
... simply put, the absolutely positioned element will be displayed outside of the <html> element, and be positioned relative to the initial view
port.
...And 9 more matches
HTML forms in legacy browsers - Learn web development
and html5 <input> types don't fail when not sup
ported: they fall back to type=text.
...just check the sup
port of the elements (or dom interface) you want to use.
...there are other resources that can be amazingly helpful: browser vendor documentation mozilla: you're in the right place, just browse mdn microsoft: internet explorer standards sup
port documentation webkit: because there are several different editions of this engine, things are a little trickier.
...And 9 more matches
Introduction to NSPR
the netscape
portable runtime (nspr) api allows compliant applications to use system facilities such as threads, thread synchronization, i/o, interval timing, atomic operations, and several other low-level services in a platform-independent manner.
... nspr does not provide a platform for
porting existing code.
... nspr naming conventions naming of nspr types, functions, and macros follows the following conventions: types ex
ported by nspr begin with pr and are followed by intercap-style declarations, like this: print, prfiledesc function definitions begin with pr_ and are followed by intercap-style declarations, like this: pr_read, pr_jointhread preprocessor macros begin with the letters pr and are followed by all uppercase characters separated with the underscore character (_), like this: pr_bytes_per_short, pr_extern nspr threads nspr provides an execution environment that promotes the use of lightweight threads.
...And 9 more matches
Utilities for nss samples
* * this function sup
ports password extraction from files with * multipe passwords, one for each token.
... */ /* * newline */ static void newline(prfiledesc* out) { pr_fprintf(out, "\n"); } /* * printasascii */ void printasascii(prfiledesc* out, const unsigned char *data, unsigned int len) { char *b64data = null; b64data = btoa_datatoascii(data, len); pr_fprintf(out, "%s", b64data); pr_fprintf(out, "\n"); if (b64data) {
port_free(b64data); } } /* * printashex */ void printashex(prfiledesc* out, const unsigned char *data, unsigned int len) { unsigned i; int column; unsigned int limit = 15; unsigned int level = 1; column = level; if (!len) { pr_fprintf(out, "(empty)\n"); return; } for (i = 0; i < len; i++) { if (i != len - 1) { pr_fprintf(out...
...
port_alloc(outlen) :
port_alloc(len); if (!outbuf->data) { return -1; } if (ishexdata) { while (*instring) { if ((*instring == '\n') || (*instring == ':')) { instring++; continue; } digit1 = getdigit(*instring++); digit2 = getdigit(*instring++); if ((digit1 == -1) || (...
...And 9 more matches
sslintro.html
other apis that may be exposed in the header files are not sup
ported for application use.
... nss_setdomesticpolicy, nss_setex
portpolicy, nss_setfrancepolicy, or ssl_cipherpolicyset.
... these functions tell the library which cipher suites are permitted by policy (for example, to comply with ex
port restrictions).
...And 9 more matches
WebReplayRoadmap
new features are possible with time travel, though, which would be nice to sup
port: sup
porting the debugger's event breakpoints would allow searching the recording for places where particular dom events occur, and -- in the same manner as logpoints -- logging them to the console and allowing them to be seeked to later.
... similarly, when the debugger sup
ports dom mutation breakpoints (bug 1547692), the recording can be searched for dom mutations, and mutations can be logged to the console and seeked to later.
... hide unsup
ported developer tool features (not yet implemented) sup
port for the normal features of the developer tools is pretty limited in recording/replaying tabs.
...And 9 more matches
Gecko object attributes
« at apis sup
port page introduction you can obtain object attributes by nsiaccessible.getattributes() method.
... applied to: listitem, option exposed in aria: aria-setsize live region attribues atomic true when the entire region should be presented as a whole, when changes within it are considered im
portant enough to automatically present.
...see the live region sup
port for more information.
...And 9 more matches
nsIContentSecurityPolicy
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview boolean permitsancestry(in nsidocshell docshell); void refinepolicy(in astring policystring, in nsiuri selfuri); void scanrequestdata(in nsihttpchannel achannel); void sendre
ports(in astring blockeduri, in astring violateddirective); short shouldload(in unsigned long acontenttype, in nsiuri acontentlocation, in nsiuri arequestorigin, in nsisup
ports acontext, in acstring amimetypeguess, in nsisup
ports aextra); short shouldprocess(in unsigned long acontenttype, in nsiuri...
... acontentlocation, in nsiuri arequestorigin, in nsisup
ports acontext, in acstring amimetype, in nsisup
ports aextra); attributes attribute type description allowseval boolean whether this policy allows eval and eval-like functions such as settimeout("code string", time).
... calls to this may trigger violation re
ports when queried, so this value should not be cached.
...And 9 more matches
nsISocketProvider
inherits from: nsisup
ports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) implemented by: @mozilla.org/network/socket;2?type=foo.
... to create an instance, use: var socketprovider = components.classes["@mozilla.org/network/socket;2?type="] .createinstance(components.interfaces.nsisocketprovider); method overview void addtosocket(in long afamily, in string ahost, in long a
port, in string aproxyhost, in long aproxy
port, in unsigned long aflags, in prfiledescstar afiledesc, out nsisup
ports asecurityinfo); native code only!
... void newsocket(in long afamily, in string ahost, in long a
port, in string aproxyhost, in long aproxy
port, in unsigned long aflags, out prfiledescstar afiledesc, out nsisup
ports asecurityinfo); native code only!
...And 9 more matches
nsIWebBrowserPersist
to create an instance, use: var webbrowserpersist = components.classes["@mozilla.org/embedding/browser/nswebbrowserpersist;1"] .createinstance(components.interfaces.nsiwebbrowserpersist); method overview void cancelsave(); void savechannel(in nsichannel achannel, in nsisup
ports afile); void savedocument(in nsidomdocument adocument, in nsisup
ports afile, in nsisup
ports adatapath, in string aoutputcontenttype, in unsigned long aencodingflags, in unsigned long awrapcolumn); void saveuri(in nsiuri auri, in nsisup
ports acachekey, in nsiuri areferrer, in long areferrerpolicy, in nsiinputstream apostdata, in string aextraheaders, in nsisup
ports afile, in ns...
...iloadcontext aprivacycontext); void saveprivacyawareuri(in nsiuri auri, in nsisup
ports acachekey, in nsiuri areferrer, in long areferrerpolicy, in nsiinputstream apostdata, in string aextraheaders, in nsisup
ports afile, in boolean aisprivate); attributes attribute type description currentstate unsigned long current state of the persister object.
...this differs just slightly but in an im
portant way from normal formatted, and that is that lines are space stuffed.
...And 9 more matches
nsIZipWriter
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) once all the operations you wish to perform are added to the queue, a call to processqueue() will perform the operations in the order they were added to the queue.
... void addentrystream(in autf8string azipentry, in prtime amodtime, in print32 acompression, in nsiinputstream astream, in boolean aqueue); void close(); nsizipentry getentry(in autf8string azipentry); boolean hasentry(in autf8string azipentry); void open(in nsifile afile, in print32 aioflags); void processqueue(in nsirequestobserver aobserver, in nsisup
ports acontext); void removeentry(in autf8string azipentry, in boolean aqueue); attributes attribute type description comment acstring gets or sets the comment associated with the currently open zip file.
...if the operation is performed on the queue then the channel will be opened asynchronously, otherwise the channel must sup
port being opened synchronously.
...And 9 more matches
Weak reference
but in this design, by hitching its life to the observable, it is kept on life-sup
port long past any need or use.
...in the following example, an nsobservable must keep some kind of a reference to each observer, in order to re
port events.
... the following assumes that any nsiobserver that is passed in also implements nsisup
portsweakreference.
...And 9 more matches
HTMLImageElement.alt - Web APIs
perhaps the most im
portant reason to use the alt tag is to sup
port accessibility, as the alt text may be used by screen readers and other assistive technologies to help differently-abled users make full use of your content.
... it will be read aloud or sent to the touch device, for example, to sup
port visually impaired users.
...if the image doesn't require a fallback (such as for an image which is simply decorative or an advisory icon of minimal im
portance), you may specify an empty string ("").
...And 9 more matches
Media Capabilities API - Web APIs
the media capabilities api allows developers to determine decoding and encoding abilities of the device, exposing information such as whether media is sup
ported and whether playback should be smooth and power efficient, with real time feedback about playback to better enable adaptive streaming, and access to display property information.
... examples detect audio file sup
port and expected performance this example defines a audio configuration then checks to see if the user agent sup
ports decoding that media configuration, and whether it will perform well in terms of smoothness and power efficiency.
... if ('mediacapabilities' in navigator) { const audiofileconfiguration = { type : 'file', audio : { contenttype: "audio/mp3", channels: 2, bitrate: 132700, samplerate: 5200 } }; navigator.mediacapabilities.decodinginfo(audiofileconfiguration).then(result => { console.log('this configuration is ' + (result.sup
ported ?
...And 9 more matches
RTCIceCandidatePairStats - Web APIs
the webrtc rtcicecandidatepairstats dictionary re
ports statistics which provide insight into the quality and performance of an rtcpeerconnection while connected and configured as described by the specified pair of ice candidates.
...in addition, it adds the following new properties: availableincomingbitrate optional provides an informative value representing the available inbound capacity of the network by re
porting the total number of bits per second available for all of the candidate pair's incoming rtp streams.
... this does not take into account the size of the ip overhead, nor any other trans
port layers such as tcp or udp.
...And 9 more matches
Rendering and the WebXR frame animation callback - Web APIs
this is im
portant because as the computer becomes increasingly busy, it may not be able to accurately call your callback every frame and may have to skip frames.
...this pseudocode outlines that process: for each view in the pose's views list: get the webxr gl layer's view
port set the webgl view
port to match for each object in the scene bindprogram() bindvertices() bindmatrices() binduniforms() bindbuffers() bindtextures() drawmyobject() put simply, this form of renderer is using view-first order.
...however, it simplifies
porting existing webgl code and is frequently good enough to do the job, so we'll look at this method first.
...And 9 more matches
Window.open() - Web APIs
this can be a path or url to an html page, image file, or any other resource that is sup
ported by the browser.
...firefox (50.0.1) functions as described: from the same domain+
port reopen with same name will access the previously created window.
... tip: for accessibility reasons, it is strongly recommended to set this feature always on scrollbars if this feature is on, the new secondary window will show horizontal and/or vertical scrollbar(s) if the document doesn't fit into the window's view
port.
...And 9 more matches
WritableStream - Web APIs
backpressure because of how backpressure is sup
ported in the api, its implementation in code may be less than obvious.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetwritablestream experimentalchrome full sup
port 59edge full sup
port 16firefox no sup
port noie no sup
port noopera full sup
port 47safari ?
... webview android full sup
port 59chrome android full sup
port 59firefox android no sup
port noopera android full sup
port 44safari ios ?
...And 9 more matches
Web APIs
apimedia source extensions mediastream recordingnnavigation timingnetwork information api ppage visibility apipayment request apiperformance apiperformance timeline apipermissions apipointer eventspointer lock apiproximity events push api rresize observer apiresource timing apisserver sent eventsservice workers apistoragestorage access apistreams ttouch eventsuurl apivvibration apivisual view
port wweb animationsweb audio apiweb authentication apiweb crypto apiweb notificationsweb storage apiweb workers apiwebglwebrtcwebvttwebxr device apiwebsockets api interfaces this is a list of all the interfaces (that is, types of objects) that are available.
...section css cssconditionrule csscounterstylerule cssgroupingrule cssimagevalue csskeyframerule csskeyframesrule csskeywordvalue cssmathproduct cssmathsum cssmathvalue cssmediarule cssnamespacerule cssnumericvalue cssomstring csspagerule csspositionvalue cssprimitivevalue csspseudoelement cssrule cssrulelist cssstyledeclaration cssstylerule cssstylesheet cssstylevalue csssup
portsrule cssunitvalue cssunparsedvalue cssvalue cssvaluelist cssvariablereferencevalue cache cachestorage canvascapturemediastreamtrack canvasgradient canvasimagesource canvaspattern canvasrenderingcontext2d caretposition channelmergernode channelsplitternode characterdata childnode client clients clipboard clipboardevent clipboarditem closeevent comment compositionevent con...
...stantsourcenode constrainboolean constraindomstring constraindouble constrainulong contentindex contentindexevent convolvernode countqueuingstrategy crashre
portbody credential credentialscontainer crypto cryptokey cryptokeypair customelementregistry customevent d domconfiguration domerror domexception domhighrestimestamp domimplementation domimplementationlist domlocator dommatrix dommatrixreadonly domobject domparser dompoint dompointinit dompointreadonly domquad domrect domrectreadonly domstring domstringlist domstringmap domtimestamp domtokenlist domuserdata datatransfer datatransferitem datatransferitemlist dedicatedworkerglobalscope delaynode deprecationre
portbody devicelightevent devicemotionevent devicemotioneventacceleration devicemotioneventrotationr...
...And 9 more matches
Using media queries - CSS: Cascading Style Sheets
screen) or specific characteristics and parameters (such as screen resolution or browser view
port width).
... media queries are used for the following: to conditionally apply styles with the css @media and @im
port at-rules.
... aspect-ratio width-to-height aspect ratio of the view
port color number of bits per color component of the output device, or zero if the device isn't color color-gamut approximate range of colors that are sup
ported by the user agent and output device added in media queries level 4.
...And 9 more matches
<input type="range"> - HTML: Hypertext Markup Language
the precise value, however, is not considered im
portant.
...because this kind of widget is imprecise, it shouldn't typically be used unless the control's exact value isn't im
portant.
... if the user's browser doesn't sup
port type range, it will fall back and treat it as a text input.
...And 9 more matches
Web Performance
it is im
portant to minimize the loading and response times and add additional features to conceal latency by making the experience as available and interactive as possible, as soon as possible, while asynchronously loading in the longer tail parts of the experience.
...instead, we're going to look at a more im
portant issue when building web apps: starting up as asynchronously as possible.
...to understand how the browser works.recommended web performance timings: how long is too long?there are no clear set rules as to what constitutes a slow pace when loading pages, but there are specific guidelines for indicating content will load (1 second), idling (50ms), animating (16.7s) and responding to user input (50 to 200ms).the business case for web performanceyou know web performance is im
portant, but how do you convince clients and management to invest in performance and make it a priority.
...And 9 more matches
Index - XSLT: Extensible Stylesheet Language Transformations
9 introduction gecko, intro, javascript, xslt with modern browsers sup
porting xslt, developers can now use javascript to access the power that xslt provides.
...once instantiated, an xsltprocessor has an xsltprocessor.im
portstylesheet() method that takes as an argument the xslt stylesheet to be used in the transformation.
... the stylesheet has to be passed in as an xml document, which means that the .xsl file has to be loaded by the page before calling xsltprocessor.im
portstylesheet().
...And 9 more matches
Module structure of the SDK - Archive of obsolete content
a commonjs module is a piece of reusable javascript: it ex
ports certain objects which are thus made available to dependent code.
... commonjs defines: an object called ex
ports which contains all the objects which a commonjs module wants to make available to other modules a function called require which a module can use to im
port the ex
ports object of another module.
...each module is a separate file stored under your add-on's "lib" directory, and ex
ports the objects you want to make available to other modules in your add-on.
...And 8 more matches
widget - Archive of obsolete content
you can communicate with the script using either the postmessage() api or (preferably, usually) the
port api.
... next, we write a content script that listens for click events on each icon and sends the corresponding message to the main add-on code: var play_button = document.getelementbyid("play-button"); play_button.onclick = function() { self.
port.emit("play"); } var pause_button = document.getelementbyid("pause-button"); pause_button.onclick = function() { self.
port.emit("pause"); } var stop_button = document.getelementbyid("stop-button"); stop_button.onclick = function() { self.
port.emit("stop"); } we save this file in the add-on's data directory as "button-script.js".
...d-on's "main.js" file, we create the widget, assign it the html file and the content script, and listen for events from the content script: const widgets = require("sdk/widget"); const data = require("sdk/self").data; var player = widgets.widget({ id: "player", width: 72, label: "player", contenturl: data.url("buttons.html"), contentscriptfile: data.url("button-script.js") }); player.
port.on("play", function() { console.log("playing"); }); player.
port.on("pause", function() { console.log("pausing"); }); player.
port.on("stop", function() { console.log("stopping"); }); to learn much more about content scripts, see the working with content scripts guide.
...And 8 more matches
Localization - Archive of obsolete content
the sdk sup
ports localization of strings appearing in: your main add-on's javascript code html files packaged with your add-on the title, description and homepage fields of your add-on's metadata the title and description fields of your add-on's preferences.
... it doesn't, yet, sup
port localization of css or content scripts, or the add-on's title and description that appear in the add-ons manager.
...hello_id= <blink>hello!</blink> localizing element attributes this feature is new in firefox 39 you can localize certain attributes of elements with an l10n-id by setting its value with l10n-id.attributename in the properties file like: hello_id.accesskey= h the following attributes are sup
ported: accesskey alt label title placeholder further the localization of the aria attributes aria-label, aria-valuetext and aria-moz-hint are sup
ported with the same aliases as on firefox os: arialabel ariavaluetext ariamozhint using localized strings in javascript to reference localized strings from your main add-on code, you do this: var _ = require("sdk/l10n").get; console.log(_(...
...And 8 more matches
Promises - Archive of obsolete content
a task example like the following: components.utils.im
port("resource://gre/modules/task.jsm"); task.spawn(function* () { var response = yield request("login", { username: user, password: password }); if (response.messages) { try { yield publish({ username: user, messages: response.messages }); } catch (e) { self.re
porterror("publication failed", e); } } }); can be converted to a pure p...
...romise-based equivalent as such: request("login", { username: user, password: password }) .then(response => { if (response.messages) return publish({ username: user, messages: response.messages }); }) .then(null, (e) => { self.re
porterror("publication failed", e); }); file io file io in add-ons should be done via the os.file api, which provides a simple, but powerful, interface for reading, writing, and manipulating both text and binary files.
... representative example usage components.utils.im
port("resource://gre/modules/osfile.jsm"); task.spawn(function* () { // retrieve file metadata to check modification time.
...And 8 more matches
Inner-browsing extending the browser navigation paradigm - Archive of obsolete content
an implementation can also use other trans
port technologies such as soap-based remote procedure calls, xmlhttprequest interfaces, or dom 3 load.
...html and web standards have evolved and now offer flexible and fine-grained control to layout as well sup
porting dhtml, powerful programming languages like javascript, and additional media through embeddable third-party resources like flash, java, vrml, etc.
... additionally, server-side technologies have also evolved, sup
porting and connecting different resources to different browsers.
...And 8 more matches
Layout System Overview - Archive of obsolete content
additionally, layout must sup
port a paginated presentation, where the width of the presentation is constrained by the dimensions of the printed output (paper) and the height of each page is fixed.
...the original design of the layout system allowed for multiple, possibly different, presentations to be sup
ported simultaneously from the same content model.
...the idea of sup
porting a non-visual presentation is interesting.
...And 8 more matches
Repackaging Firefox - Archive of obsolete content
im
portant legal considerations before you get started, it is very im
portant to know and abide by the legal requirements for distributing firefox.
...currently that page mentions only firefox 1.5.x, but it sup
ports firefox 2.
...at the very least, don't skip the "im
portant extension preferences" section below.
...And 8 more matches
XUL Questions and Answers - Archive of obsolete content
loading remote dtds for xml documents is currenty not sup
ported in xul.
... the following bugs were re
ported on this issue: bug 22942, bug 133698.
... is there an editor widget in xul that sup
ports syntax highlighting?
...And 8 more matches
Mozilla release FAQ - Archive of obsolete content
here are a few that are specific to the mozilla newsgroups: fe = front end -- the part of mozilla that handles the interface be = back end -- the part of mozilla that does all the behind-the-scenes stuff nspr = netscape
portable runtime -- an abstraction layer over the local os gtk = a free gui toolkit native to unix qt = another gui toolkit xp = cross platform xpfe = cross-platform frontend based on nglayout m[number] = milestone release [number] (no longer used) i'm wondering how to do xxx with navigator 3.x...
...go dig through the makefiles in config and remove the offending
portions, and see if that fixes things.
...mozilla also runs on mac os x, os/2, and beos, and
ports exist for some other platforms.
...And 8 more matches
Using the Right Markup to Invoke Plugins - Archive of obsolete content
with the release of netscape 7.1, this kind of activex use of the object element is sup
ported for use with the microsoft® windows media player.
... only the windows media player is sup
ported as an activex control in netscape 7.1.
... browsers such as netscape 7 will not render the flash plugin if the above kind of markup is used, because netscape 7 does not sup
port activex or activex-based component invocations, with the exception of windows media player in netscape 7.1.
...And 8 more matches
Sizing items in CSS - Learn web development
understanding how big the different features in your design will be is im
portant, and in this lesson we will summarize the various ways elements get a size via css and define a few terms around sizing that will help you in the future.
... view
port units the view
port — which is the visible area of your page in the browser you are using to view a site — also has a size.
... in css we have units which relate to the size of the view
port — the vw unit for view
port width, and vh for view
port height.
...And 8 more matches
What text editors are available? - Learn web development
do i need sup
port/help while using my text editor?
... here are some popular editors: editor licence price os sup
port doc.
... change syntax highlighting settings and colors play with indentation width, setting it to an appropriate setting for your needs check autosave and session saving settings configure any available plugins and investigate how to get new ones change color schemes adjust view settings and see how you can change the layout of the views check what programming languages/technologies your editor sup
ports while you're learning the default settings of most text editors should be fine to use, but it is im
portant to become familiar with your chosen tools, so you can select the best one for your usage.
...And 8 more matches
Other form controls - Learn web development
note: all browsers that sup
port the <select> element also sup
port the multiple attribute.
... <label for="myfruit">what's your favorite fruit?</label> <input type="text" name="myfruit" id="myfruit" list="mysuggestion"> <datalist id="mysuggestion"> <option>apple</option> <option>banana</option> <option>blackberry</option> <option>blueberry</option> <option>lemon</option> <option>lychee</option> <option>peach</option> <option>pear</option> </datalist> datalist sup
port and fallbacks almost all browsers sup
port datalist, but if you are still sup
porting older browsers such as ie versions below 10, there is a trick to provide a fallback: <label for="myfruit">what is your favorite fruit?
...st"> <datalist id="fruitlist"> <label for="suggestion">or pick a fruit</label> <select id="suggestion" name="altfruit"> <option>apple</option> <option>banana</option> <option>blackberry</option> <option>blueberry</option> <option>lemon</option> <option>lychee</option> <option>peach</option> <option>pear</option> </select> </datalist> browsers that sup
port the <datalist> element will ignore all the elements that are not <option> elements, with the datalist working as expected.
...And 8 more matches
UI pseudo-classes - Learn web development
some of the others are aimed at solving very specific niche problems, or simply not very well sup
ported in browsers yet.
... the ones listed above all have pretty good browser sup
port, but of course, you should test your form implementations carefully to make sure they work for your target audience.
... since form inputs don't directly sup
port having generated content put on them (this is because generated content is placed relative to an element's formatting box, but form inputs work more like replaced elements and therefore don't have one), we will add an empty <span> to hang the generated content on: <div> <label for="fname">first name: </label> <input id="fname" name="fname" type="text" required> <span></span> </div> the im...
...And 8 more matches
Making asynchronous programming easier with async and await - Learn web development
previous overview: asynchronous next more recent additions to the javascript language are async functions and the await keyword, part of the so-called ecmascript 2017 javascript edition (see ecmascript next sup
port in mozilla).
...in addition, this lets synchronous functions avoid any potential overhead that comes with running with sup
port for using await.
... note: it is also possible to use a sync finally block within an async function, in place of a .finally() async block, to show a final re
port on how the operation went — you can see this in action in our live example (see also the source code).
...And 8 more matches
Deployment and next steps - Learn web development
previous overview: client-side javascript frameworks in the previous article we learning about svelte's typescript sup
port, and how to use it to make your application more robust.
... note that our application is fully functional and
porting it to typescript is completely optional.
... if we have a look at the rollup.config.js file, we can see that the svelte compiler is just a rollup plugin: im
port svelte from 'rollup-plugin-svelte'; [...] im
port { terser } from 'rollup-plugin-terser'; const production = !process.env.rollup_watch; ex
port default { input: 'src/main.js', output: { sourcemap: true, format: 'iife', name: 'app', file: 'public/build/bundle.js' }, plugins: [ svelte({ // enable run-time checks when not in production dev: !production, ...
...And 8 more matches
Introduction to cross browser testing - Learn web development
you need to think about: different browsers other than the one or two that you use regularly on your devices, including slightly older browsers that some people might still be using, which don't sup
port all the latest, shiniest css and javascript features.
... some browsers may have different levels of sup
port for technology features than others.
... this is inevitable when you are dealing with bleeding edge features that browsers are just getting round to implementing, or if you have to sup
port really old browsers that are no longer being developed, which may have been frozen (i.e.
...And 8 more matches
Accessibility API cross-reference
banner a
portion of quoted content which is 'too long' to appear 'inline' n/a blockquote <blockquote> entire window border as 1 object border n/a n/a n/a specific kind of button that drops down a list of items, msaa only buttondropdown n/a n/a expressed with aria-haspopup on an element with a button role ...
... specific kind of button that drops down a grid, msaa only buttondropdowngrid n/a n/a specific kind of button that drops down a menu, msaa only buttonmenu n/a n/a expressed with aria-haspopup on an element with a button role represents the system's caret caret n/a n/a n/a a brief
portion of text describing a table or figure.
... command a sup
porting section of the document, designed to be complementary to the main content at a similar level in the dom hierarchy, but remains meaningful when separated from the main content.
...And 8 more matches
A bird's-eye view of the Mozilla framework
the article focuses on the architecture of the overall framework sup
porting the mozilla application suite, not the architecture of the individual applications themselves.
... organization this article first covers some conceptual groundwork, then walks through a user scenario to illustrate how key mozilla architectural components work together to sup
port a simplehelp viewer ui action.
... the client would like to ask the nsirdfnode whether its sup
ports nsirdfliteral.
...And 8 more matches
Implementing QueryInterface
if ( !ainstanceptr ) return ns_error_null_pointer; nsisup
ports* foundinterface; if ( aiid.equals(nscomtypeinfo<nsix>::getiid()) ) foundinterface = ns_static_cast(nsix*, this); else if ( aiid.equals(nscomtypeinfo<nsiy>::getiid()) ) foundinterface = ns_static_cast(nsiy*, this); // ...as many cases as needed...
... else if ( aiid.equals(nscomtypeinfo<nsisup
ports>::getiid()) ) foundinterface = ns_static_cast(nsisup
ports*, ns_static_cast(nsix*, this)); // i (may) have multiple |nsisup
ports| in me, // so first i cast to a specific base to avoid ambiguity else foundinterface = 0; nsresult status; if ( !foundinterface ) status = ns_nointerface; else { ns_addref(foundinterface); status = ns_ok; } *ainstanceptr = foundinterface; return status; } what's so good about it?
... it addrefs the resulting interface, not this, thus following the com-correct way (particularly im
portant in aggregation) it uses nscomtypeinfo<t>::getiid() instead of ktiid thus saving a global declaration and global space it uses c 's static_cast, via ns_static_cast, which detects errors when you can't really get to the desired interface.
...And 8 more matches
PromiseWorker.jsm
javascript files im
ported into the worker scope and main thread scope which allows posting to the worker and receiving in the form of a promise.
...the require.js file must be im
ported with workerglobalscope/im
portscripts().
...the code below is what should be copied and pasted: im
portscripts('resource://gre/modules/workers/require.js'); let promiseworker = require('resource://gre/modules/workers/promiseworker.js'); // instantiate abstractworker (see below).
...And 8 more matches
XPCOMUtils.jsm
to use this, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/xpcomutils.jsm"); using xpcomutils exposing a javascript class as a component using these utility methods requires four key steps: im
port xpcomutils.jsm, as explained previously.
...rview function definelazygetter(aobject, aname, alambda); function definelazymodulegetter(aobject, aname, aresource, [optional] asymbol); function definelazyservicegetter(aobject, aname, acontract, ainterfacename); function generatensgetfactory(componentsarray); function generateci(classinfo); function generateqi(interfaces); void im
portrelative(that, path, scope); generator itersimpleenumerator(enumerator, interface); generator iterstringenumerator(enumerator); attributes attribute type description categorymanager nsicategorymanager returns a reference to nsicategorymanager.
...the module will not be im
ported until first use.
...And 8 more matches
About NSPR
netscape
portable runtime (nspr) provides platform independence for non-gui operating system facilities.
... history a good
portion of the library's purpose, and perhaps the primary purpose in the gromit environment, was to provide the underpinnings of the java vm, more or less mapping the sys layer that sun defined for the
porting of the java vm to various platforms.
...it is not a goal to provide a platform for the
porting into netscape of externally developed code.
...And 8 more matches
NSS_3.12.3_release_notes.html
nss_hash_alg_sup
port string specifies algorithms allowed to be used in certain applications, such as in signatures on certificates and crls.
... if set to to "1" or unset, softoken will trigger an assertion failure in debug builds, and will re
port an error in non-debug builds.
... if set to any other non-empty value, softoken will re
port an error in both debug and non-debug builds.
...And 8 more matches
NSS Tools pk12util
using the pkcs #12 tool (pk12util) newsgroup: mozilla.dev.tech.crypto the pkcs #12 utility makes sharing of certificates among enterprise server 3.x and any server (netscape products or non-netscape products) that sup
ports pkcs#12 possible.
... the tool allows you to im
port certificates and keys from pkcs #12 files into nss or ex
port them and also list certificates and keys in such files.
...the options and arguments for the pk12util command are defined as follows: options -i p12file im
port a certificate and private key from from the p12file into the database.
...And 8 more matches
Proxies in Necko
this means that callers can just create an nsichannel, not needing to worry about whether the channel will use a proxy or not the basic interfaces for proxies are: nsiproxyinfo, nsiprotocolproxyservice, and nsiproxiedprotocolhandler nsiproxyinfo is a simple helper which stores information about the type of the proxy, its host and its
port.
...depending on the type of the proxy info, it either asks the http protocol handler or the protocol handler for the requested uri for a new channel with the nsiproxyinfo - if the channel sup
ports nsiproxiedprotocolhandler.
...nsiprotocolproxyservice the most im
portant function on nsiprotocolproxyservice is resolve.
...And 8 more matches
Shell global objects
throwerror() throw an error from js_re
porterror.
... setmoduleresolvehook(function(module, specifier) {}) set the hostresolveim
portedmodule hook to function.
... getmaxargs() return the maximum number of sup
ported args for a call.
...And 8 more matches
XPCOM changes in Gecko 2.0
all existing xpcom components will need to be updated to sup
port this.
... however, it's very easy to do, and you can actually sup
port both types of registration for backward compatibility.
...chrome.manifest: # the {classid} here must match the classid in mycomponent.js component {e6b866e3-41b2-4f05-a4d2-3d4bde0f7ef8} components/mycomponent.js contract @foobar/mycomponent;1 {e6b866e3-41b2-4f05-a4d2-3d4bde0f7ef8} category profile-after-change mycomponent @foobar/mycomponent;1 the javascript code no longer ex
ports a nsgetmodule() function.
...And 8 more matches
Finishing the Component
but unfrozen interfaces are not sup
ported in any formal way, and relying upon a different iid for any change in the interface is not a good idea either.
...they may be able to suggest a sup
ported alternative, or they may be able to notify you about pending changes.
...the weblock class will then sup
port four interfaces: nsisup
ports, nsiobserver, nsicontentpolicy, and iweblock.
...And 8 more matches
Mozilla internal string guide
in order to avoid unnecessary copying of string data (which can have significant performance cost), the string classes sup
port different ownership models.
... all string classes sup
port the following three ownership models dynamically: reference counted, copy-on-write, buffers (the default) adopted buffers (a buffer that the string class owns, but is not reference counted, because it came from somewhere else) dependent buffers, that is, an underlying buffer that the string class does not own, but that the caller that constructed the string guarantees will outlive the string instance in addition, there is a special string class, ns[c]autostring, that additionally contains an internal 64-unit buffer (intended primarily for use on the stack), leading to a fourth ownership model: storage within an auto string's stack buffer auto strings will prefer reference counting an existing reference-counted buffer over their stack buffer, but will oth...
...we only sup
port utf-8-encoded file paths on *nix, non-path gtk strings are always utf-8 and cocoa and java strings are always utf-16.
...And 8 more matches
nsIComponentRegistrar
inherits from: nsisup
ports last changed in gecko 1.0 method overview void autoregister(in nsifile aspec); void autounregister(in nsifile aspec); string cidtocontractid(in nscidref aclass); nscidptr contractidtocid(in string acontractid); nsisimpleenumerator enumeratecids(); nsisimpleenumerator enumeratecontractids(); boolean iscidregistered(in nscidref aclass); boolean iscontractidregistered(in string acontractid); void registerfactory(in nscidref aclass, in string aclassname, in string acontractid, in nsifactory afactory); void registerfactorylocation(in nscidref aclass, in string aclassname, in string acontractid, in nsif...
...this is no longer sup
ported.
... component files must have an associated loader and ex
port the required symbols which this loader defines.
...And 8 more matches
nsIProtocolHandler
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview boolean allow
port(in long
port, in string scheme); nsichannel newchannel(in nsiuri auri); nsiuri newuri(in autf8string aspec, in string aorigincharset, in nsiuri abaseuri); attributes attribute type description default
port long the default
port is the
port the protocol uses by default.
... if the protocol doesn't need a
port (for example, the "about" protocol), this attribute is -1.
... uri_norelative 1<<0 the protocol doesn't sup
port relative uris (for example, about and javascript).
...And 8 more matches
nsIScriptableIO
file and stream guide: [ nsiscriptableio | accessing files | getting file information | reading from files | writing to files | moving, copying and deleting files | uploading and downloading files | working with directories ] im
portant note: the pages from the file and stream guide use the io object (nsiscriptableio), which was not available in any released version of the platform (pending some fixes).
... there are alternative xpcom apis you can use, your help in updating this pages to use the sup
ported api is very much welcome!
... last changed in gecko 1.9 (firefox 3) inherits from: nsisup
ports a scriptable io object can be used in an extension or chrome code by referring to the global io object.
...And 8 more matches
Add to iPhoto
choose it, and iphoto will start up (if it's not already running) and im
port the image.
... the core foundation api is implemented by the corefoundation object, which consists of two methods to initialize and shut down the library, a reference to the library, and all the types and methods declared to sup
port core foundation.
...we use a few of these routines because the launch services routine we'll be using to launch iphoto and pass it the image to im
port uses cfurl for the file references.
...And 8 more matches
Document.execCommand() - Web APIs
syntax document.execcommand(acommandname, ashowdefaultui, avalueargument) return value a boolean that is false if the command is unsup
ported or disabled.
...don't try using the return value to verify browser sup
port before calling a command.
...(not sup
ported by internet explorer.) copy copies the current selection to the clipboard.
...And 8 more matches
Element.msZoomTo() - Web APIs
view
portx[in]: the alignment point of the view
port.
...aligns the horizontal center of the view
port to the element's contentx value.
... left: aligns the left-most point of the view
port to the element's contentx value.
...And 8 more matches
FileSystemDirectoryEntry - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemdirectoryentry experimentalchrome full sup
port 8alternate name full sup
port 8alternate name alternate name uses the non-standard name: directoryentryedge full sup
port 79prefixed full sup
port 79prefixed prefixed implemented with the vendor prefix: webkitfirefox ful...
...l sup
port 50ie no sup
port noopera full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitsafari full sup
port 11.1webview android full sup
port ≤37alternate name full sup
port ≤37alternate name alternate name uses the non-standard name: directoryentrychrome android full sup
port 18alternate name full sup
port 18alternate name alternate name uses the non-standard na...
...me: directoryentryfirefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitcreatereader experimentalchrome full sup
port 13edge full sup
port 79firefox full sup
port 50ie no sup
port noopera no sup
port ...
...And 8 more matches
FontFaceSetLoadEvent - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfontfacesetloadevent experimentalchrome full sup
port 35edge full sup
port ≤79firefox full sup
port yesie ?
... opera full sup
port 22safari ?
... webview android no sup
port nochrome android full sup
port 35firefox android full sup
port yesopera android full sup
port 22safari ios ?
...And 8 more matches
Using Touch Events - Web APIs
however, devices with touch screens (especially
portable devices) are mainstream and web applications can either directly process touch-based input by using touch events or the application can use interpreted mouse events for the application input.
... a disadvantage to using mouse events is that they do not sup
port concurrent user input, whereas touch events sup
port multiple simultaneous inputs (possibly at different locations on the touch surface), thus enhancing user experiences.
... the touch events interfaces sup
port application specific single and multi-touch interactions such as a two-finger gesture.
...And 8 more matches
Using DTMF with WebRTC - Web APIs
in order to more fully sup
port audio/video conferencing, webrtc sup
ports sending dtmf to the remote peer on an rtcpeerconnection.
...webrtc currently ignores these payloads; this is because webrtc's dtmf sup
port is primarily intended for use with legacy telephone services that rely on dtmf tones to perform tasks such as: teleconferencing systems menu systems voicemail systems entry of credit card or other payment information passcode entry note: while the dtmf is not sent to the remote peer as audio, browsers may choose to play the corresponding tone to the local user as part of their user expe...
... each time a tone is sent, the rtcpeerconnection receives a tonechange event with a tone property specifying which tone finished playing, which is an op
portunity to update interface elements, for example.
...And 8 more matches
Using bounded reference spaces - Web APIs
xr hardware that does not have an inherent boundary defined may or may not sup
port the bounded reference space.
...however, it's entirely possible that the device will simply decline to sup
port bounded spaces at all, so you should be prepared to fall back to some other type of reference space.
... <<<--- example --->>> creating a bounded reference space before creating a project that relies on bounded reference spaces, it's im
portant to keep in mind that not all xr devices are capable of creating them.
...And 8 more matches
Using the Web Speech API - Web APIs
to run the demo, you can clone (or directly download) the github repo it is part of, open the html index file in a sup
porting desktop browser, or navigate to the live demo url in a sup
porting mobile browser like chrome.
... browser sup
port sup
port for web speech api speech recognition is curently limited to chrome for desktop and android — chrome has sup
ported it since around version 33 but with prefixed interfaces, so you need to include prefixed versions of them, e.g.
... chrome sup
port as mentioned earlier, chrome currently sup
ports speech recognition with prefixed properties, therefore at the start of our code we include these lines to feed the right objects to chrome, and any future implementations that might sup
port the features without a prefix: var speechrecognition = speechrecognition || webkitspeechrecognition var speechgrammarlist = speechgrammarlist || webkitspeechgr...
...And 8 more matches
HTML in XMLHttpRequest - Web APIs
the w3c xmlhttprequest specification adds html parsing sup
port to xmlhttprequest, which originally sup
ported only xml parsing.
... limitations to discourage the synchronous use of xmlhttprequest, html sup
port is not available in the synchronous mode.
... also, html sup
port is only available if the responsetype property has been set to "document".
...And 8 more matches
ARIA live regions - Accessibility
this attribute is by far the most im
portant.
...any region which receives updates that are im
portant for the user to receive, but not so rapid as to be annoying, should receive this attribute.
... for regions which are not im
portant, or would be annoying because of rapid updates or other reasons, silence them with aria-live="off".
...And 8 more matches
Accessibility Information for Web Authors - Accessibility
web content accessibility guidelines (wcag) 1.0 another im
portant set of guidelines from the w3c web accessibility initiative (wai).
...the output data re
port is displayed in a clear and well structured table where each and all checkpoints are identified and described (along with an helpful clickable link to the related reference guideline) into logical groups and according to measurable results: passed, warning, failed for automated verification, warning for manual verification, not selected, not available, not related, etc.
... wave 4.0 beta (web accessibility versatile evaluator) from webaim and sponsored by temple university institute on disabilities wave 4.0 beta is another powerful, free online webpage accessibility validation service that identifies accessibility errors and re
ports accessibility warnings about webpage related to section 508 standards and/or the wcag guidelines.
...And 8 more matches
WebKit CSS extensions - CSS: Cascading Style Sheets
applications based on webkit or blink, such as safari and chrome, sup
port a number of special webkit extensions to css.
...old prefixed syntax is still sup
ported in some browsers.
...sis-style -webkit-text-justify -webkit-text-orientation -webkit-text-size-adjust -webkit-text-underline-position -webkit-transform -webkit-transform-origin -webkit-transform-style -webkit-transition -webkit-transition-delay -webkit-transition-duration -webkit-transition-property -webkit-transition-timing-function u-w -webkit-user-select -epub-word-break -epub-writing-mode sup
ported in non-webkit browsers without a prefix, but not standard the following properties are sup
ported in at least one browser without a prefix, but are not on the standards track.
...And 8 more matches
break-inside - CSS: Cascading Style Sheets
cras suscipit
porta leo sit amet rutrum.
...morbi metus libero, pharetra non
porttitor a, molestie nec nisi.</p> <p>in finibus viverra enim vel suscipit.
...nam risus justo, faucibus non
porta a, congue vel massa.
...And 8 more matches
<link>: The External Resource Link element - HTML: Hypertext Markup Language
webtv sup
ports the use of the value next for rel to preload the next page in a document series.
... font css @font-face image <img> and <picture> elements with srcset or imageset attributes, svg <image> elements, css *-image rules object <object> elements script <script> elements, worker im
portscripts style <link rel=stylesheet> elements, css @im
port track <track> elements video <video> elements worker worker, sharedworker crossorigin this enumerated attribute indicates whether cors must be used when fetching the resource.
... im
portance indicates the relative im
portance of the resource.
...And 8 more matches
An overview of HTTP - HTTP
it is an application layer protocol that is sent over tcp, or over a tls-encrypted tcp connection, though any reliable trans
port protocol could theoretically be used.
...thanks to the layered design of the web, these are hidden in the network and trans
port layers.
...although im
portant to diagnose network problems, the underlying layers are mostly irrelevant to the description of http.
...And 8 more matches
A re-introduction to JavaScript (JS tutorial) - JavaScript
javascript is now used by an incredible number of high-profile applications, showing that deeper knowledge of this technology is an im
portant skill for any web or mobile developer.
...javascript sup
ports object-oriented programming with object prototypes, instead of classes (see more about prototypical inheritance and es2015 classes).
... javascript also sup
ports functional programming — because they are objects, functions may be stored in variables and passed around like any other object.
...And 8 more matches
WebAssembly.Memory - JavaScript
var memory = new webassembly.memory({initial:10, maximum:100}); the second way to get a webassembly.memory object is to have it ex
ported by a webassembly module.
... the following example (see memory.html on github, and view it live also) fetches and instantiates the loaded memory.wasm byte code using the webassembly.instantiatestreaming() method, while im
porting the memory created in the line above.
... it then stores some values in that memory, then ex
ports a function and uses it to sum some values.
...And 8 more matches
Mobile first - Progressive web apps (PWAs)
for example: if you are serving different styling and layout information for different view
port sizes, etc., it makes more sense to include the narrow screen/mobile styling as the default styling before any media queries are encountered, rather than having desktop/wider screen styling first.
... if you are using mechanisms like feature detection and matchmedia to conditionally load scripting functionality depending on view
port size, feature sup
port, etc., you should just load the very basics that pretty much all browsers will need first, then progressively enhance browsers higher up the food chain.
... mobile constraints we have already mentioned the fact that mobiles generally have less memory, processing power and bandwidth than other devices (although bear in mind that smart tvs are also generally pretty low powered.) they also have less view
port size available.
...And 8 more matches
remote/parent - Archive of obsolete content
instead, the two sides communicate using
port objects like those used for communication with content scripts.
... the sdk/remote/parent module provides
port objects for the parent's end of the conversation, and the sdk/remote/child module provides
port objects for the child's end.
... // remote.js const { process } = require("sdk/remote/child"); process.
port.emit("message-from-remote", "hello from remote"); process.
port.on("message-from-main", function(process, message) { console.log("main says: " + message); }); // main.js const { processes, remoterequire } = require("sdk/remote/parent"); remoterequire("./remote.js", module); processes.
port.emit("message-from-main", "hello from main"); processes.
port.on("message-from-remote", function(process, message) { console.log("remote says: " + message); }); child process privileges a module loaded into a child process can't do everything that the same module loaded into the parent process can.
...And 7 more matches
Creating Event Targets - Archive of obsolete content
service(ci.nsinavbookmarksservice); var bookmarkobserver = { onitemadded: function(aitemid, afolder, aindex) { console.log("added ", bookmarkservice.getbookmarkuri(aitemid).spec); }, onitemvisited: function(aitemid, avisitid, time) { console.log("visited ", bookmarkservice.getbookmarkuri(aitemid).spec); }, queryinterface: xpcomutils.generateqi([ci.nsinavbookmarkobserver]) }; ex
ports.main = function() { bookmarkservice.addobserver(bookmarkobserver, false); }; ex
ports.onunload = function() { bookmarkservice.removeobserver(bookmarkobserver); } try running this add-on, adding and visiting bookmarks, and observing the output in the console.
...ng 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(ex
ports, "added", bookmarkservice.getbookmarkuri(aitemid).spec); }, onitemvisited: function(aitemid, avisitid, time) { emit(ex
ports, "visited", bookmarkservice.getbookmarkuri(aitemid).spec); }, queryinterface: xpcomutils.generateqi([ci.nsinavbookmarkobserver]) }; bookmarkservice.addobserver(bookmarkobserver, false); ex
ports.on = on.bind(null, ex
ports); ex
ports.once = once.bind(null, ex
port...
...s); ex
ports.removelistener = function removelistener(type, listener) { off(ex
ports, type, listener); }; this code implements a module which can emit added and visited events.
...And 7 more matches
Modifying Web Pages Based on URL - Archive of obsolete content
a simple code snippet where content script is supplied as contentscript option and url pattern is given as include option is as follows: // im
port the page-mod api var pagemod = require("sdk/page-mod"); // create a page-mod // it will run a script whenever a ".org" url is loaded // the script replaces the page contents with a message pagemod.pagemod({ include: "*.org", contentscript: 'document.body.innerhtml = ' + ' "<h1>page matches ruleset</h1>";' }); do as follows: create a new directory and navigate to it.
... for example, if we save the script above under the add-on's data directory in a file called my-script.js: // im
port the page-mod api var pagemod = require("sdk/page-mod"); // im
port the self api var self = require("sdk/self"); // create a page-mod // it will run a script whenever a ".org" url is loaded // the script replaces the page contents with a message pagemod.pagemod({ include: "*.org", contentscriptfile: self.data.url("my-script.js") }); or from firefox 34 onwards: // im
port the page-mod api var ...
... // im
port the page-mod api var pagemod = require("sdk/page-mod"); // im
port the self api var self = require("sdk/self"); // create a page mod // it will run a script whenever a ".org" url is loaded // the script replaces the page contents with a message pagemod.pagemod({ include: "*.org", contentscriptfile: [self.data.url("jquery-1.7.min.js"), self.data.url("my-script.js")] }); you can use both cont...
...And 7 more matches
File I/O - Archive of obsolete content
creating an nsifile object components.utils.im
port("resource://gre/modules/fileutils.jsm"); var file = new fileutils.file("/home"); or the same without using fileutils.jsm: var file = components.classes["@mozilla.org/file/local;1"].
... getting files in special directories components.utils.im
port("resource://gre/modules/fileutils.jsm"); // get the "data.txt" file in the profile directory var file = fileutils.getfile("profd", ["data.txt"]); or the same without using fileutils.jsm: // get profile directory.
... here are some of the special locations the directory service sup
ports: (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).
...And 7 more matches
Creating custom Firefox extensions with the Mozilla build system - Archive of obsolete content
you should see a bunch of other directories (inspector/, re
porter/ and so forth) at the same level in the build tree.
...topsrcdir = @top_srcdir@ srcdir = @srcdir@ vpath = @srcdir@ include $(depth)/config/autoconf.mk module = myextension xpidl_module = myextension xpi_name = myextension ex
ports = \ myheader.h \ $(null) xpidlsrcs = \ myifirstcomponent.idl \ myisecondcomponent.idl \ $(null) include $(topsrcdir)/config/rules.mk xpidl_module is the name of the generated xpt file that contains type information about your idl interfaces.
...the files under ex
ports are copied directly to the /mozilla/$(moz_objdir)/dist/include/ directory and are thus accessible from other modules (the value of moz_objdir is defined in /mozilla/.mozconfig).
...And 7 more matches
Chapter 5: Let's build a Firefox extension - Archive of obsolete content
to make an extension’s gui sup
port multiple languages, you can include multiple locale packages, one for each language.
... the chrome manifest plays two im
portant roles: it registers the contents of the chrome packages, and invokes the cross-package overlay.
...at this point, it’s im
portant that you disabled the xul cache as discussed in the earlier section, “setting up your development environment”.
...And 7 more matches
Source code directories overview - Archive of obsolete content
public contains source code that will be ex
ported to the dist/include directory.
... accessible contains code to sup
port microsoft active accessibility and sun's atk accessibility api for linux.
...it has not been updated to sup
port xpcom yet.
...And 7 more matches
Code snippets - Archive of obsolete content
components.utils.im
port("resource://services-sync/main.js"); // obtain a reference to the main firefox window.
... mainwindow.gbrowser.addtab(url); } } partially corrupt a server components.utils.im
port("resource://services-sync/main.js"); components.utils.im
port("resource://services-sync/resource.js"); function deletepath(path) { let resource = new resource(weave.service.storageurl + path); resource.setheader("x-confirm-delete", "1"); return resource.delete(); } // delete meta/global: deletepath("meta/global"); // delete keys: deletepath("crypto/keys"); // delete server: deletepath(""...
...); corrupt a single engine on the server let engine = "bookmarks"; components.utils.im
port("resource://services-sync/main.js"); components.utils.im
port("resource://services-sync/resource.js"); components.utils.im
port("resource://services-sync/util.js"); let r = new resource(weave.service.storageurl + "meta/global"); let g = r.get(); let envelope = json.parse(g); let payload = json.parse(envelope.payload); payload.engines[engine].syncid = weave.utils.makeguid(); // or any other guid you like.
...And 7 more matches
Using XPInstall to Install Plugins - Archive of obsolete content
this article is about how you can use xpinstall to install plugins to the browsers that sup
port xpinstall.
... which browsers sup
port xpinstall?
... currently, all mozilla browsers released by mozilla.org sup
port xpinstall, and a family of browsers based on mozilla code sup
port xpinstall.
...And 7 more matches
Plug-in Development Overview - Gecko Plugin API Reference
registering plug-ins gecko identifies a plug-in by the mime type it sup
ports.
... when it needs to display data of a particular mime type, the browser finds and invokes the plug-in object that sup
ports that type.
...it determines which plug-ins are installed and which types they sup
port through a combination of user preferences that are private to the browser, the contents of the plug-ins directory, or the registry on windows.
...And 7 more matches
From object to iframe — other embedding technologies - Learn web development
they have since fallen out of fashion due to many problems, including accessibility, security, file size, and more; these days most mobile devices don't sup
port such plugins anymore, and desktop sup
port is on the way out.
...say you wanted to include the mdn glossary on one of your web pages — you could try something like this: <iframe src="https://udn.realityripple.com/docs/glossary" width="100%" height="500" frameborder="0" allowfullscreen sandbox> <p> <a href="https://udn.realityripple.com/docs/glossary"> fallback link for browsers that don't sup
port iframes </a> </p> </iframe> this example includes the basic essentials needed to use an <iframe>: allowfullscreen if set, the <iframe> is able to be placed in fullscreen mode using the full screen api (somewhat beyond scope for this article.) frameborder if set to 1, this tells the browser to draw a border between this frame and other frames, which is the default behaviour.
... fallback content in the same way as other similar elements like <video>, you can include fallback content between the opening and closing <iframe></iframe> tags that will appear if the browser doesn't sup
port the <iframe>.
...And 7 more matches
Introduction to events - Learn web development
in this article, we discuss some im
portant concepts surrounding events, and look at how they work in browsers.
...for example, in an air
port, when the runway is clear for take off, a signal is communicated to the pilot.
... the other two are relatively interchangeable, at least for simple uses: event handler properties have less power and options, but better cross-browser compatibility (being sup
ported as far back as internet explorer 8).
...And 7 more matches
React interactivity: Events and state - Learn web development
there are a couple of other things to note: the camel-cased nature of onclick is im
portant — jsx will not recognize onclick (again, it is already used in javascript for a specific purpose, which is related but different — standard onclick handler properties).
... to use a react hook, we need to im
port it from the react module.
... in form.js, change your very first line so that it reads like this: im
port react, { usestate } from "react"; this allows us to im
port the usestate() function by itself, and utilize it anywhere in this file.
...And 7 more matches
Componentizing our Svelte app - Learn web development
add the following content into the file: <script> ex
port let filter = 'all' </script> <div class="filters btn-group stack-exception"> <button class="btn toggle-btn" class:btn__primary={filter === 'all'} aria-pressed={filter === 'all'} on:click={()=> filter = 'all'} > <span class="visually-hidden">show</span> <span>all</span> <span class="visually-hidden">tasks</span> </button> <button class="btn toggle-btn" class:btn__primary={filter...
...first of all, we need to im
port it — add the following line at the top of the todos.svelte <script> section: im
port filterbutton from './filterbutton.svelte' now, replace the filters <div> with a call to the filterbutton component, which takes the current filter as a prop — the below line is all you need: <filterbutton {filter} /> note: remember that when the html attribute name and variable matches, they c...
... we will just declare the onclick prop assigning a dummy handler to prevent errors, like this: ex
port let onclick = (clicked) => {} and we'll declare the following reactive statement — $: onclick(filter) — to call the onclick handler whenever the filter variable is updated.
...And 7 more matches
Package management basics - Learn web development
in addition, package managers handle duplicate dependencies (something that becomes im
portant and common in front-end development).
...although there tend to be more pros for installing globally, the pros for installing locally are more im
portant — such as code
portability and version locking.
... to see local dependencies really shine, all you need to do is try to download and run an existing project — if it works and all the dependencies work right out of the box, then you have local dependencies to thank for the fact that the code is
portable.
...And 7 more matches
mach
$ mozconfig=/path/to/mozconfig ./mach build # alternatively (for persistent mozconfig usage): $ ex
port mozconfig=/path/to/mozconfig $ ./mach build # let's pretend the mozconfig environment variable isn't set.
... how do i re
port bugs?
... mach will colorize terminal output (on terminals that sup
port it - typically most terminals except on windows) mach will scan build output for compiler warnings and will automatically record them to a database which can be queried with mach warnings-list and mach warnings-summary.
...And 7 more matches
Error codes returned by Mozilla APIs
this could occur because the implementation has not yet been written, or because the component intentionally does not sup
port the desired feature.
... ns_error_no_interface (0x80004002) an attempt was made to call queryinterface to retrieve an interface which an object does not sup
port.
... ns_error_factory_not_loaded (0x800401f8) ns_error_factory_exists (0xc1f30100) ns_error_factory_no_signature_sup
port (0xc1f30101) ns_error_proxy_invalid_in_parameter (0x80010010) ns_error_proxy_invalid_out_parameter (0x80010011) ns_error_cannot_convert_data (0x80460001) ns_error_object_is_immutable (0x80460002) ns_error_loss_of_significant_data (0x80460003) ns_error_illegal_during_shutdown (0x8046001e) many operations cannot be performed once the application is being shutdown.
...And 7 more matches
Overview of Mozilla embedding APIs
mozilla's xpcom layer consists of a component model (called xpcom) and the infrastructure necessary to sup
port dynamic registration, instantiation and manipulation of xpcom components.
... nsstring there are a collection of string classes which sup
port both unicode and ascii strings.
... nsweakptr this is an nscomptr which encapsulates xpcom weak reference sup
port.
...And 7 more matches
IME handling guide
one of the other im
portant jobs of this is, when a focused editor handles a dispatched ecompositionchange event, this modifies the stored composition string and its clause information.
... e10s sup
port even when a remote process has focus, native ime handler in chrome process does its job.
...sup
ported event messages of them are: equeryselectedtext (only with selectiontype::enormal) equerytextcontent equerytextrect equerycaretrect equeryeditorrect additionally, this does not sup
port query content events with xp line breakers but this must not be any problem since native ime handlers query contents with native line breakers.
...And 7 more matches
Assert.jsm
the assert.jsm javascript code module implements the commonjs unit testing specification version 1.1, which provides a basic, standardized interface for performing in-code logical assertions with optional, customizable error re
porting.
... to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://testing-common/assert.jsm"); the assert class offers methods for performing common logical assertions.
... message); undefined notstrictequal(actual, expected, message); undefined throws(block, expected, message); promise rejects(promise, expected, message); undefined greater(lhs, rhs, message); undefined greaterorequal(lhs, rhs, message); undefined less(lhs, rhs, message); undefined lessorequal(lhs, rhs, message); undefined setre
porter(re
porterfunc); undefined re
port(failed, actual, expected, message, operator); constructor creates a new assert object.
...And 7 more matches
Localization content best practices
it's im
portant to consider this when adding strings, and especially localization comments for strings that contain references, or obscure technical details.
... add localization notes localizers usually work on the localizable files without the context of the source files including the localized strings; it is im
portant to add comments to the localizable files themselves, too.
...for example accessibility (a11y) strings: in this case space is less im
portant than clarity, since these strings are not displayed in the ui but used by tools like screen readers.
...And 7 more matches
Localizing with Mozilla Translator
since it is written in java, any platform that sup
ports java 1.7 or above sup
ports mozillatranslator also.
...after that, you ex
port either the whole product or indvididual files.
... you will always do better if you can ex
port a partial glossary and reim
port it as needed.
...And 7 more matches
Mozilla DOM Hacking Guide
mozilla gives you the op
portunity not only to use very powerful and complete dom sup
port, but also to work on a world-class implementation of one of the greatest internet technologies ever created.
...we will talk a lot about xpconnect in this document, since it is so im
portant for the dom.
... interface flattening one of the nicest -- and most im
portant -- features of the xpconnect'ed dom is the interface flattening.
...And 7 more matches
NSPR Poll Method
the poll method operates on a single netscape
portable runtime (nspr) file descriptor, whereas pr_poll operates on a collection of nspr file descriptors.
...we consider a stack of nspr i/o layers on top of the network trans
port.
...the bottom layer is a wrapper for the underlying network trans
port.
...And 7 more matches
NSS Developer Tutorial
global, but unex
ported functions, are usually named foo_dooneaction.
... nss c abi backward compatibility functions ex
ported functions cannot be removed.
... the function prototype of an ex
ported function, cannot be changed, with these exceptions: a foo * parameter can be changed to const foo *.
...And 7 more matches
NSS Sample Code Utilities_1
*/ /* * newline */ static void newline(prfiledesc* out) { pr_fprintf(out, "\n"); } /* * printasascii */ void printasascii(prfiledesc* out, const unsigned char *data, unsigned int len) { char *b64data = null; b64data = btoa_datatoascii(data, len); pr_fprintf(out, "%s", b64data); pr_fprintf(out, "\n"); if (b64data) {
port_free(b64data); } } /* * printashex */ void printashex(prfiledesc* out, const unsigned char *data, unsigned int len) { unsigned i; int column; unsigned int limit = 15; unsigned int level = 1; column = level; if (!len) { pr_fprintf(out, "(empty)\n"); return; } for (i = 0; i < len; i++) { if (i != len - 1) { pr_fprintf(out...
...
port_alloc(outlen) :
port_alloc(len); if (!outbuf->data) { return -1; } if (ishexdata) { while (*instring) { if ((*instring == '\n') || (*instring == ':')) { instring++; continue; } digit1 = getdigit(*instring++); digit2 = getdigit(*instring++); if ((digit1 == -1) || (...
...digit2 == -1)) {
port_free(outbuf->data); outbuf->data = null; return -1; } outbuf->data[truelen++] = digit1 << 4 | digit2; } } else { while (*instring) { if (*instring == '\n') { instring++; continue; } outbuf->data[truelen++] = *instring++; } outbuf->data[truelen] = '\0'; truelen = truelen-1; } outbuf->len = truelen; return 0; } /* * filetoitem */ secstatus filetoitem(secitem *dst, prfiledesc *src) { prfileinfo info; print32 numbytes; prstatus prstatus; prstatus = pr_getopenfileinfo(src, &info); if (prstatus != pr_success) { return secfailure; } dst->da...
...And 7 more matches
nss tech note7
nss sup
ports pkcs #1 v1.5.
... nss doesn't yet sup
port pkcs #1 v2.0 and v2.1, in particular oaep, but oaep sup
port is on our to-do list.
... key pairs may be generated elsewhere, ex
ported in encrypted form, and im
ported into a crypto module.
...And 7 more matches
Accessing the Windows Registry Using XPCOM
sup
port in firefox 1.5 or newer in firefox 1.5, a new api was added, nsiwindowsregkey, which provides extensive registry functionality.
...if you are writing an extension that only needs to sup
port firefox 1.5 or newer, then you only need to read this section.
...o read your windows productid: var wrk = components.classes["@mozilla.org/windows-registry-key;1"] .createinstance(components.interfaces.nsiwindowsregkey); wrk.open(wrk.root_key_local_machine, "software\\microsoft\\windows\\currentversion", wrk.access_read); var id = wrk.readstringvalue("productid"); wrk.close(); this example, while simple, shows several im
portant things about using the interface.
...And 7 more matches
nsIAccessibleRole
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) constants constant value description role_nothing 0 used when accessible has no strong defined role.
...it is used by msaa only, sup
ported automatically by ms windows.
...the role is sup
ported for caret.
...And 7 more matches
nsIWebNavigationInfo
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) implemented by: @mozilla.org/webnavigation-info;1 as a service: var webnavigationinfo = components.classes["@mozilla.org/webnavigation-info;1"] .getservice(components.interfaces.nsiwebnavigationinfo); method overview unsigned long istypesup
ported(in acstring atype, in nsiwebnavigation awebnav); constants sup
port type constants constant value description unsup
ported 0 returned by istypesup
ported() to indicate lack of sup
port for...
... note: this is guaranteed not to change, so that boolean tests can be done on the return value if istypesup
ported to detect whether a type is sup
ported at all.
... image 1 returned by istypesup
ported() to indicate that a type is sup
ported as an image.
...And 7 more matches
nsIXULTemplateQueryProcessor
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) a query processor takes a template query and generates results for it given a datasource and a reference point.
...the reference point is im
portant when generating output recursively, as the query will be the same for each iteration, however, the reference point will differ.
...method overview void addbinding(in nsidomnode arulenode, in nsiatom avar, in nsiatom aref, in astring aexpr); print32 compareresults(in nsixultemplateresult aleft, in nsixultemplateresult aright, in nsiatom avar, in unsigned long asorthints); nsisup
ports compilequery(in nsixultemplatebuilder abuilder, in nsidomnode aquery, in nsiatom arefvariable, in nsiatom amembervariable); void done(); nsisimpleenumerator generateresults(in nsisup
ports adatasource, in nsixultemplateresult aref, in nsisup
ports aquery); nsisup
ports getdatasource(in nsiarray adatasources, in nsidomnode arootnode, in boolean aistrusted, in nsixultemplatebuilder abuilder, ou...
...And 7 more matches
Reference Manual
nscomptr<nsifoo> foo = bar; // ns_assertion: "queryinterface needed" // ...even assuming you can get the line to compile // (either by casting, or because the types are related by c ) this invariant is relaxed for nscomptr<nsisup
ports>.
... like nsisup
ports* (or even void*), people generally use nscomptr<nsisup
ports> to mean "any xpcom interface." it would be annoying if nscomptr forced you to queryinterface to the xpcom-correct nsisup
ports within an object in places where you don't care to know the exact type.
... nscomptr<nsifoo> foo = ...; foo->addref(); // error: |addref| is private delete foo.get(); // error: |operator delete| is private ns_release(foo); // error: |release| is private of course, the most im
portant safety feature provided by nscomptr is that it addrefs and releases automatically at the appropriate times.
...And 7 more matches
Plug-in Development Overview - Plugins
registering plug-ins gecko identifies a plug-in by the mime type it sup
ports.
... when it needs to display data of a particular mime type, the browser finds and invokes the plug-in object that sup
ports that type.
...it determines which plug-ins are installed and which types they sup
port through a combination of user preferences that are private to the browser, the contents of the plug-ins directory, or the registry on windows.
...And 7 more matches
The HTML DOM API - Web APIs
the html dom api is made up of the interfaces that define the functionality of each of the elements in html, as well as any sup
porting types and interfaces they rely upon.
... access to the browser navigation history sup
porting and connective interfaces for other apis such as web components, web storage, web workers, websocket, and server-sent events.
... among the things added to document by the html standard are: sup
port for accessing various information provided by the http headers when loading the page, such as the location from which the document was loaded, cookies, modification date, referring site, and so forth.
...And 7 more matches
Recommended Drag Types - Web APIs
the html drag and drop api sup
ports dragging various types of data, including plain text, urls, html code, files, etc.
... it is recommended to always add data of the text/plain type as a fallback for applications or drop targets that do not sup
port other types, unless there is no logical text alternative.
...note that the instanceof operator is used here as the mozgetdataat() method will return an nsisup
ports that needs to be checked and converted into an nsifile.
...And 7 more matches
Using IndexedDB - Web APIs
// moreover, you may need references to some window.idb* objects: window.idbtransaction = window.idbtransaction || window.webkitidbtransaction || window.msidbtransaction || {read_write: "readwrite"}; // this line should only be needed if it is needed to sup
port the object's constants for older browsers window.idbkeyrange = window.idbkeyrange || window.webkitidbkeyrange || window.msidbkeyrange; // (mozilla has never prefixed these objects, so we don't need window.mozidb*) beware that implementations that use a prefix may be buggy, or incomplete, or following an old version of the specification.
...it may be preferable to not sup
port a browser than to claim to sup
port it and fail: if (!window.indexeddb) { console.log("your browser doesn't sup
port a stable version of indexeddb.
... im
portant: the version number is an unsigned long long number, which means that it can be a very big integer.
...And 7 more matches
Pointer events - Web APIs
however, since many devices sup
port other types of pointing input devices, such as pen/stylus and touch surfaces, extensions to the existing pointing device event models are needed.
... pointerenter onpointerenter fired when a pointer is moved into the hit test boundaries of an element or one of its descendants, including as a result of a pointerdown event from a device that does not sup
port hover (see pointerdown).
...this event is also used if the change in pointer state can not be re
ported by other events.
...And 7 more matches
RTCConfiguration.bundlePolicy - Web APIs
this string, which must be a member of the rtcbundlepolicy enumeration, has the following possible values: balanced the ice agent begins by creating one rtcdtlstrans
port to handle each type of content added: one for audio, one for video, and one for the rtc data channel, if applicable.
... if the remote peer isn't bundle-aware, the ice agent chooses one audio track and one video track and those two tracks are each assigned to the corresponding rtcdtlstrans
port.
... max-compat the ice agent intially creates one rtcdtlstrans
port for each media track and a separate one for the rtcdatachannel, if one is created.
...And 7 more matches
Using the Screen Capture API - Web APIs
note: it may be useful to note that recent versions of the webrtc adapter.js shim include implementations of getdisplaymedia() to enable screen sharing on browsers that sup
port it but do not implement the current standard api.
...generally, the browser will provide an image which obscures the hidden
portion of the logical display surface in some way, such as by blurring or replacing with a color or pattern.
...in this case, the user agent may include the obscured content, either by getting the current contents of the hidden
portion of the window or by presenting the most-recently-visible contents if the current contents are not available.
...And 7 more matches
Slottable - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetslottable experimentalchrome full sup
port 53edge full sup
port 79firefox full sup
port 63 full sup
port 63 no sup
port 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled ...
... no sup
port ?
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 40safari full sup
port 10.1webview android full sup
port 53chrome android full sup
port 53firefox android full sup
port 63 full sup
port 63 no sup
port 59...
...And 7 more matches
SubtleCrypto - Web APIs
subtlecrypto.im
portkey() returns a promise that fulfills with a cryptokey corresponding to the format, the algorithm, raw key data, usages, and extractability given as parameters.
... subtlecrypto.ex
portkey() returns a promise that fulfills with a buffer containing the key in the requested format.
... im
porting and ex
porting keys to make keys available outside your app, you need to ex
port the key, and that's what ex
portkey() is for.
...And 7 more matches
WebRTC connectivity - Web APIs
the description includes information about the kind of media being sent, its format, the transfer protocol being used, the endpoint's ip address and
port, and other information needed to describe a media transfer endpoint.
... see the individual articles on these properties and methods for more specifics, and codecs used by webrtc for information about codecs sup
ported by webrtc and which are compatible with which browsers.
...not all browsers sup
port ice over tcp, however.
...And 7 more matches
Inputs and input sources - Web APIs
to that end, webxr provides sup
port for a variety of kinds of input devices.
... input device types webxr sup
ports a variety of different types of devices to handle targeting and action inputs.
...this gaze input method is fairly simple, and doesn't need any special controls, as it will be based on the facing direction re
ported by the headset or whatever device is used to determine what direction the viewer's face is pointing in.
...And 7 more matches
WebXR Device API - Web APIs
webxr is a group of standards which are used together to sup
port rendering 3d scenes to hardware designed for presenting virtual worlds (virtual reality, or vr), or for adding graphical imagery to the real world, (augmented reality, or ar).
... webxr device api concepts and usage example webxr hardware setup while the older webvr api was designed solely to sup
port virtual reality (vr), webxr provides sup
port for both vr and augmented reality (ar) on the web.
... sup
port for ar functionality is added by the webxr augmented reality module.
...And 7 more matches
Window - Web APIs
window.mozinnerscreenx read only returns the horizontal (x) coordinate of the top-left corner of the window's view
port, in screen coordinates.
... this value is re
ported in css pixels.
... window.mozinnerscreeny read only returns the vertical (y) coordinate of the top-left corner of the window's view
port, in screen coordinates.
...And 7 more matches
Accessibility documentation index - Accessibility
the intention is to strike a balance between providing useful guidance on how to use the markup's intended meaning while sup
porting live regions as an area for screen readers to innovate and compete.
... 4 aria test cases aria, accessibility for each example we test the "expected" results with assistive technologies, for each browser that at sup
ports wai-aria in.
... 10 basic form hints aria, accessibility, forms when implementing forms using traditional html form-related elements, it is im
portant to provide labels for controls, and explicitly associate a label with its control.
...And 7 more matches
Web Accessibility: Understanding Colors and Luminance - Accessibility
understaning color, luminance, and saturation is im
portant in meeting wcag 2 accessibility guidelines in terms of ensuring enough color contrast for sighted users with color blindness or reduced vision and preventing seizures and other physical reactions in people with vestibular disorders.
... luminance is of particular im
portance, however, because at the end of the day, understanding of what it is and how it is employed enables accessibility for those who are color-blind, as well as those who can perceive color.
..."luminance" and "saturation" are particularly im
portant to get right.
...And 7 more matches
HTML5 - Developer guides
offline & storage offline resources: the application cache firefox fully sup
ports the html5 offline resource specification.
... most others have offline resource sup
port at some level.
... online and offline events firefox 3 sup
ports whatwg online and offline events, which let applications and extensions detect whether or not there's an active internet connection, as well as to detect when the connection goes up and down.
...And 7 more matches
<audio>: The Embed Audio element - HTML: Hypertext Markup Language
the content inside the opening and closing <audio></audio> tags is shown as a fallback in browsers that don't sup
port the element.
... waiting playback has stopped because of a temporary lack of data usage notes browsers don't all sup
port the same file types and audio codecs; you can provide multiple sources inside nested <source> elements, and the browser will then use the first one it understands: <audio controls> <source src="myaudio.mp3" type="audio/mpeg"> <source src="myaudio.ogg" type="audio/ogg"> <p>your browser doesn't sup
port html5 audio.
...also available is a guide to the codecs sup
ported for video.
...And 7 more matches
Expect-CT - HTTP
the expect-ct header lets sites opt in to re
porting and/or enforcement of certificate transparency requirements, to prevent the use of misissued certificates for that site from going unnoticed.
... ct requirements can be satisfied via any one of the following mechanisms: x.509v3 certificate extension to allow embedding of signed certificate timestamps issued by individual logs a tls extension of type signed_certificate_timestamp sent during the handshake sup
porting ocsp stapling (that is, the status_request tls extension) and providing a signedcertificatetimestamplist when a site enables the expect-ct header, they are requesting that the browser check that any certificate for that site appears in public ct logs.
...since may 2018 new certificates are expected to sup
port scts by default.
...And 7 more matches
WebAssembly.Instance - JavaScript
instance objects contain all the ex
ported webassembly functions that allow calling into webassembly code from javascript.
... instance properties instance.prototype.ex
ports returns an object containing as its members all the functions ex
ported from the webassembly module instance, to allow them to be accessed and used by javascript.
... examples synchronously instantiating a webassembly module the webassembly.instance() constructor function can be called to synchronously instantiate a given webassembly.module object, for example: const im
portobject = { im
ports: { im
ported_func: function(arg) { console.log(arg); } } }; fetch('simple.wasm').then(response => response.arraybuffer() ).then(bytes => { let mod = new webassembly.module(bytes); let instance = new webassembly.instance(mod, im
portobject); instance.ex
ports.ex
ported_func(); }) the preferred way to get an instance is asynchronously, for example using the webassembly.instantiatestreaming() function like this: const im
portobject = { im
ports: { im
ported_func: function(arg) { console.log(arg); } } }; webassembly.
...And 7 more matches
Strict mode - JavaScript
browsers not sup
porting strict mode will run strict mode code with different behavior from browsers that do, so don't rely on strict mode without feature-testing for sup
port for the relevant aspects of strict mode.
...this eliminates the concatenation problem and it means that you have to explicitly ex
port any shared variables out of the function scope.
... function strict() { // because this is a module, i'm strict by default } ex
port default strict; changes in strict mode strict mode changes both syntax and runtime behavior.
...And 7 more matches
Digital audio concepts - Web media technologies
for details about the most im
portant and useful ones for web developers to be familiar with, see the article guide to audio codecs used on the web.
...this is the science that studies how humans percieve sound, and what parts of the audio frequencies we hear are most im
portant to how we respond to those sounds, given the context and content of the sound.
...voids compressing previously compressed data, resulting in additional quality loss factors that may recommend the use of lossy compression include: very large source audio constrained storage (either because the storage space is small, or because there's a large amount of sound to store into it) a need to constrain the network bandwidth required to broadcast the audio; this is especially im
portant for live streams and teleconferencing psychoacoustics 101 diving into the details of psychoacoustics and how audio compression works is far beyond the scope of this article, but it is useful to have a general idea of how audio gets compressed by common algorithms can help understand and make better decisions about audio codec selection.
...And 7 more matches
Media type and format guide: image, audio, and video content - Web media technologies
since nearly its beginning, the web has included sup
port for some form of visual media presentation.
...the modern web has powerful features to sup
port the presentation and manipulation of media, with several media-related apis sup
porting various types of content.
... generally, the media formats sup
ported by a browser are entirely up to the browser's creators, which can complicate the work of a web developer.
...And 7 more matches
Modules - Archive of obsolete content
unfortunately, javascript does not yet have native sup
port for modules: it has to rely on the host application to provide it with functionality such as loading subscripts, and ex
porting/ im
porting names.
...any property defined on the global object will be accessible from both scripts: // index.js: loadscript("www.foo.com/a.js"); foo; // => 3 // a.js: foo = 3; ex
porting names the script loader we obtained from the components object allows us load scripts from other locations, but its api is rather limited.
...in effect, any properties defined by the script being loaded on its global object are ex
ported to the loading script.
...And 6 more matches
cfx - Archive of obsolete content
cfx is no longer sup
ported as of firefox 44 and no longer accepted for add-on submission.
...cfx is is no longer sup
ported as of firefox 44 and no longer accepted for add-on submission, jpm should now be used instead.
...cfx sup
ports the following global options: -h, --help - show a help message and exit -v, --verbose - enable lots of output "command-specific options" are documented alongside the commands.
...And 6 more matches
jpm - Archive of obsolete content
jpm usage is: jpm [command] [options] jpm sup
ports the following global options: -h, --help - show a help message and exit -v, --version - print the jpm version number --addon-dir - directory for your source code, defaulting to the current directory installation jpm is distributed with the node package manager npm.
...add the following line to the end of the file $home/.profile to add it to your path permanently (as the file .profile is executed every time a new terminal is opened): ex
port path="$home/node_modules/.bin/:$path" installing jpm from git alternatively, you can also get the latest version of jpm using git: git clone https://github.com/mozilla-jetpack/jpm.git cd jpm npm install npm link after installing jpm after installation, at the command prompt, type: jpm you should see a screen summarizing the available jpm commands.
... command reference jpm sup
ports the following commands: jpm init create a skeleton add-on as a starting point for your add-on.
...And 6 more matches
Listening for Load and Unload - Archive of obsolete content
if your add-on ex
ports a function called main(), then that function will be called whenever the add-on is loaded, and it will be passed an object containing a string describing the reason it was loaded as well as any arguments passed to it.
... if your add-on ex
ports a function called onunload(), then that function will be called when the add-on is unloaded, and it will be passed a string describing the reason it was unloaded.
... you don't have to use ex
ports.main() or ex
ports.onunload().
...And 6 more matches
Finding window handles - Archive of obsolete content
recall that nsibasewindow -> nativehandle returns the following in the different operating systems: windows - hwnd mac os x - nswindow* linux - gdkwindow* (it will be gdkwindow* no matter what desktop/window manager) is in use, for explanation why see the article: standard os libraries - unix section) windows components.utils.im
port('resource://gre/modules/services.jsm'); var browserwindow = services.wm.getmostrecentwindow('navigator:browser'); if (!browserwindow) { throw new error('no browser window found'); } var basewindow = browserwindow.queryinterface(ci.nsiinterfacerequestor) .getinterface(ci.nsiwebnavigation) .queryinterface(ci.nsidocshelltreeitem) ...
... .treeowner .queryinterface(ci.nsiinterfacerequestor) .getinterface(ci.nsibasewindow); var hwndstring = basewindow.nativehandle; components.utils.im
port('resource://gre/modules/ctypes.jsm'); var user32 = ctypes.open('user32.dll'); /* http://msdn.microsoft.com/en-us/library/ms633539%28v=vs.85%29.aspx * bool winapi setforegroundwindow( * __in_ hwnd hwnd * ); */ var setforegroundwindow = user32.declare('setforegroundwindow', ctypes.winapi_abi, ctypes.bool, // return bool ctypes.voidptr_t // hwnd ); var hwnd = ctypes.voidptr_t(ctypes.uint64(hwndstring)); var rez_setforegroundwindow = setforegroundwindow(hwnd); console.log('rez_setforegroundwindow:', rez_setforegroundwindow, rez_setforegroundwind...
...ow.tostring()); user32.close(); mac os x objective-c components.utils.im
port('resource://gre/modules/services.jsm'); var browserwindow = services.wm.getmostrecentwindow('navigator:browser'); if (!browserwindow) { throw new error('no browser window found'); } var basewindow = browserwindow.queryinterface(ci.nsiinterfacerequestor) .getinterface(ci.nsiwebnavigation) .queryinterface(ci.nsidocshelltreeitem) .treeowner .queryinterface(ci.nsiinterfacerequestor) .getinterface(ci.nsibasewindow); var nswindowstring = basewindow.nativehandle; components.utils.im
port('resource://gre/modules/ctypes.jsm'); var objc = ctypes.open(ctypes.libraryname(...
...And 6 more matches
Preferences - Archive of obsolete content
however, there is a concept of complex types, which makes it easier for developers to save and load nsilocalfile and nsisup
portsstring objects in preferences (as strings — note that from the preferences system's point of view, complex values have a nsiprefbranch.pref_string type.) there are two nsiprefbranch methods implementing the concept — setcomplexvalue() and getcomplexvalue().
...here are the idl definitions: void getcomplexvalue(in string aprefname, in nsiidref atype, [iid_is(atype), retval] out nsqiresult avalue); void setcomplexvalue(in string aprefname, in nsiidref atype, in nsisup
ports avalue); as you can see, both of them take a parameter, atype, which can have one of the following values (to be precise, you should pass components.interfaces.nsiwhatever instead of just nsiwhatever, which is undefined).
... nsisup
portsstring used to handle unicode strings in preferences.
...And 6 more matches
Extension Versioning, Update and Compatibility - Archive of obsolete content
the toolkit version format sup
ports the firefox version format but allows greater flexibility.
... for the maxversion it is generally permissible to use a * in place of the minor version of the application you sup
port, for example 2.0.0.* would mean that you sup
port any minor update to version 2 of the application.
... note: starting in gecko 2.0, the automatic add-on update process properly sup
ports cases in which the add-on's guid changes by uninstalling the old version and then installing the new one.
...And 6 more matches
XPCOM Objects - Archive of obsolete content
it is particularly im
portant to note that, for every member in the component, you'll see in what interface this member is defined.
... at mdc, you'll see stuff like this: void setcharpref(in string aprefname, in string avalue); one of the most im
portant details to notice is that both paratemers have the in keyword.
...(your build will probably break, we'll cover this later on.) in the components directory, the file xsihellocounter.idl has the following contents: #include "nsisup
ports.idl" /** * counter for the hello world extension.
...And 6 more matches
In-Depth - Archive of obsolete content
possible are (this is probably an incomplete list): none - (!im
portant may be needed) will override the operating system default.
...using this, we can figure out what objects are where, what classes/id's they have applied to them, and most im
portantly, which file the style is located in.
...this is the
portion of the icon with only the image.
...And 6 more matches
Drag and Drop JavaScript Wrapper - Archive of obsolete content
« previousnext » gecko 1.9.1 (firefox 3.5) and later sup
ports a newer and simpler api.
...getsup
portedflavours() this function should return a list of flavors that the object being dragged over can accept.
...for elements that can have objects dropped on them, you should define ondragover, ondrop and getsup
portedflavours (and, if desired, ondragexit).
...And 6 more matches
Exception logging in JavaScript - Archive of obsolete content
javascript code is sometimes designed to throw exceptions to re
port a result condition back to the c++ caller.
...exception re
porting in firefox 3 firefox 3 improves re
porting of unhandled exceptions by establishing a set of rules that determines whether or not an exception is worth re
porting: any methods on interfaces annotated with the [function] attribute in idl (see, for example, nsidomeventlistener) that throw exceptions always re
port those exceptions into the error console.
... the ns_nointerface error is never re
ported when returned by a javascript object's queryinterface() method on the nsisup
ports interface.
...And 6 more matches
Actionscript Acceptance Tests - Archive of obsolete content
sup
port files: there are a variety of sup
port files available for non-standard actionscript tests.
...(see bug 587093 for details.) specifying multiple .abcs: if you desire to run a test with multiple .abc files (e.g: avmshell a.abc b.abc testname.abc) there is a special avm_args directive called multiabc that is specified surrounded by two pipe (|) symbols: |multiabc| $dir/testname_sup
port/a.abc $dir/testname_sup
port/b.abc the extra abc files will usually be placed in a _sup
port dir (see additional files below).
... here is a more complicated example that passes both avm args, multiple abcs and test args: -ojit |multiabc| $dir/testname_sup
port/a.abc -- test_args a dir.avm_args file can also be created with the same contents that will apply to the entire directory.
...And 6 more matches
SSL and TLS - Archive of obsolete content
the secure sockets layer (ssl) and trans
port layer security (tls) protocols are universally accepted standards for authenticated and encrypted communication between clients and servers.
... both of these protocols sup
port using a variety of different cryptographic algorithms, or ciphers, for operations such as authenticating the server and client, transmitting certificates, and establishing session keys.
... clients and servers may sup
port different cipher suites, or sets of ciphers.
...And 6 more matches
Developing cross-browser and cross-platform pages - Archive of obsolete content
an im
portant practice when doing cross-browser, cross-platform pages and dhtml development involves the ability to determine the capabilities of the browser which loads your web page.
...there are 2 known approaches for such goals: the browser identification approach (also known as useragent string detection and often referred as "browser sniffing") and the object/feature sup
port detection approach.
... using object/feature sup
port detection approach: best and overall most reliable when you use object/feature sup
port detection, you only implement those features whose sup
port you have first tested and verified on the visiting browser.
...And 6 more matches
Using the W3C DOM - Archive of obsolete content
w3c dom standards are well sup
ported by modern browsers, however the standards are moving target so sup
port for newer features should be tested before use.
... using w3c standards means that code will run in compliant browsers with minimal need for cross-browser sup
port, whereas code based on proprietary standards requires much more effort to be compatible with multiple user agents.
... unsup
ported dom-related properties the following ie proprietary document object properties are not sup
ported in the w3c document object model: document.layers[] id_attribute_value document.all document.all.id_attribute_value document.all[id_attribute_value] the following form related properties (originally from internet explorer) are not sup
ported in the w3c document object model: formname.inputname.value inputname.value formctrlname document.forms(0) (note: document.forms[0] (using square brackets) uses the dom standard forms collection) scripts that use these properties will throw errors in most standards-compliant browsers.
...And 6 more matches
Back to the Server: Server-Side JavaScript On The Rise - Archive of obsolete content
let’s take a closer look at rhino and its im
portance to the javascript developer.
... rhino offers a unique op
portunity for the javascript developer to tap into the power of java classes using javascript.
... listing 1 - querying a mysql database from rhino // im
port the java sql packages im
portpackage( java.sql ); // load the mysql driver java.lang.class.forname( "com.mysql.jdbc.driver" ); // create connection to the database var conn = drivermanager.getconnection( "jdbc:mysql://localhost/rhino", "urhino", "prhino" ); // create a statement handle var stmt = conn.createstatement(); // get a resultset var rs = stmt.executequery( "select * from employee" );...
...And 6 more matches
The Business Benefits of Web Standards - Archive of obsolete content
according to various re
ports, case studies, and andy king, author of speed up your web site: web site optimization, css has made it possible to transform table-based layouts into css-based layouts.
...while some browsers have quirks that cause different behavior by platform, mozilla-based browsers are designed to behave identically on all sup
ported platforms (mac, linux, unix, windows...) web content is increasingly being accessed by a growing number of user agents other than browsers, or by browsers on different platforms - for example mobile telephones.
... eliminate unwelcome future costs a very significant
portion of electronically-stored information is produced for the web and written in html format.
...And 6 more matches
Visual typescript game engine - Game development
webrtc can be used for any pro
portion.
... */ private masterserverkey: string = "multi-platformer-sever1.maximum"; /** * rtcserver
port port used to connect multimedia server.
... * default value is 12034 */ private rtcserver
port: number = 12034; /** * connector
port is access
port used to connect * session web socket.
...And 6 more matches
Handling different text directions - Learn web development
these physical dimensions map very neatly to content that is viewed horizontally, and by default the web tends to sup
port left-to-right languages (e.g.
... in recent years however, css has evolved in order to better sup
port different directionality of content, including right-to-left but also top-to-bottom content (such as japanese) — these different directionalities are called writing modes.
... prerequisites: basic computer literacy, basic software installed, basic knowledge of working with files, html basics (study introduction to html), and an idea of how css works (study css first steps.) objective: to understand the im
portance of writing modes to modern css.
...And 6 more matches
Grids - Learn web development
the fr unit distributes space in pro
portion, therefore you can give different positive values to your tracks, for example if you change the definition like so: .container { display: grid; grid-template-columns: 2fr 1fr 1fr; } the first track now gets 2fr of the available space and the other two tracks get 1fr, making the first track larger.
...cras
porttitor imperdiet nunc, at ultricies tellus laoreet sit amet.
... sed auctor cursus massa at
porta.
...And 6 more matches
Looping code - Learn web development
let's say he needs 10
portions of food to feed his family.
...we haven't explicitly illustrated this above, but we could think about the farmer being able to collect say 2
portions of food per hour.
...if he has reached 10
portions (the point where the condition is no longer true, so the loop exits), he can stop collecting and go home.
...And 6 more matches
Perceived performance - Learn web development
how a user perceives your performance is as im
portant, or perhaps more im
portant, than any objective statistic, but it's subjective, and not as readily measurable.
... perceived performance the perception of how fast your site loads and how responsive feels to user interaction is vitally im
portant; even more im
portant that actual download time but difficult to quantify.
... first paint is re
ported by the browser and provides the time, in ms, of when the page starts changing; but this change can be a simple background color update or something even less noticable.
...And 6 more matches
Properly configuring server MIME types - Learn web development
background by default, many web servers are configured to re
port a mime type of text/plain or application/octet-stream for unknown content types.
...this is a major source of problems for users of gecko-based browsers, which respect the mime types as re
ported by web servers and web applications.
... why are correct mime types im
portant?
...And 6 more matches
Ember interactivity: Events, classes and state - Learn web development
to create a header class to go with your header component, type this in to your terminal: ember generate component-class header this will create the following empty class file — todomvc/app/components/header.js: im
port component from '@glimmer/component'; ex
port default class headercomponent extends component { } inside this file we will implement the event handler code.
... update the content to the following: im
port component from '@glimmer/component'; im
port { action } from '@ember/object'; ex
port default class headercomponent extends component { @action onkeydown({ target, key }) { let text = target.value.trim(); let hasvalue = boolean(text); if (key === 'enter' && hasvalue) { alert(text); target.value = '' } } } the @action decorator is the only ember-specific code here (aside from extending from the component superclass, and the ember-specific items we are im
porting using javascript module syntax) — the rest of the file is vanilla javascript, and would work in any application.
...to generate a service for us to store our todo-list data in: ember generate service todo-data this should give you a terminal output like so: installing service create app/services/todo-data.js installing service-test create tests/unit/services/todo-data-test.js this creates a todo-data.js file inside the todomvc/app/services directory to contain our service, which initially contains an im
port statement and an empty class: im
port service from '@ember/service'; ex
port default class tododataservice extends service { } first of all, we want to define what a todo is.
...And 6 more matches
Framework main features - Learn web development
this component needs to display a
portrait of the author and a short byline about them.
...to render this component, we would write code like this in the place where we want it rendered (which will probably be inside another component): <authorcredit src="./assets/zelda.png" alt="
portrait of zelda schiff" byline="zelda schiff is editor-in-chief of the library times." /> this will ultimately render the following <figure> element in the browser, with its structure as defined in the authorcredit component, and its content as defined in the props included on the authorcredit component call: <figure> <img src="assets/zelda.png" alt="
portrait of zelda schiff" > <fi...
...components tend to im
port components into other components using the standard javascript module syntax, or at least something similar.
...And 6 more matches
Introduction to automated testing - Learn web development
a reasonable set of basic functionalities to run on our project is as follows: html-tidy, css-lint, and js-hint to lint and re
port/fix common html/css/js errors (see gulp-htmltidy, gulp-csslint, gulp-jshint).
...e-dev gulp-babel @babel/preset-env npm install --save-dev @babel/core npm install jshint gulp-jshint --save-dev add the following dependencies to gulpfile.js: const babel = require('gulp-babel'); const jshint = require('gulp-jshint'); add the following test to the bottom of gulpfile.js: function js(cb) { return gulp.src('src/main.js') .pipe(jshint()) .pipe(jshint.re
porter('default')) .pipe(babel({ presets: ['@babel/env'] })) .pipe(gulp.dest('build')); cb(); } here we grab our main.js file, run jshint on it and output the results to the terminal using jshint.re
porter; we then pass the file to babel, which converts it to old style syntax and outputs the result into the build directory.
... var build = gulp.parallel(html,css,js); ex
ports.html = html; ex
ports.css = css; ex
ports.js = js; ex
ports.build = build; /* * define default task that can be called by just running `gulp` from cli */ ex
ports.default = build; further ideas once this is all set up, you can run the gulp command inside your project directory, and you should get an output like this: you can then try out the files output by your automated tasks by looking at them inside the build directory, and loading build/index.html in your web browser.
...And 6 more matches
Setting up your own test automation environment - Learn web development
see platforms sup
ported by selenium for more information on where to get browser drivers from, etc.
... note: if you want to find out how to use webdriver with other server-side environments, also check out platforms sup
ported by selenium for some useful links.
... paste the following into the bottom of your file (updating the path as it actually is on your machine): #add webdriver browser drivers to path ex
port path=$path:/users/bob save and close this file, then restart your terminal/command prompt to reapply your bash configuration.
...And 6 more matches
Chrome Worker Modules
start by im
porting the module loader.
... you only need to do it once for each worker, from within the chrome worker itself: im
portscripts("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.
... this defines a global value require(), that you may now use as follows: // im
port the module // (here, we im
port the core of os.file) let core = require("resource://gre/modules/osfile/osfile_shared_allthreads.jsm"); // we may now use module core.
...And 6 more matches
Mozilla's Section 508 Compliance
incomplete, we show focus but need to expose it programmatically by sup
porting carbon/cocoa accessibility.
...mozilla sup
ports of <blink> and text-decoration: blink in web pages.
... functional performance criteria requirement windows linux/unix mac os requirement windows linux/unix mac os a) at least one mode of operation and information retrieval that does not require user vision shall be provided, or sup
port for assistive technology used by people who are blind or visually impaired shall be provided.
...And 6 more matches
Configuring Build Options
the default options are the most well-sup
ported, so it is preferable to add as few options as possible.
...note that in the ex
port example below the filename was not mozconfig.
... setting the mozconfig path: ex
port mozconfig=$home/mozilla/mozconfig-firefox calling the file .mozconfig (with a leading dot) is also sup
ported, but this is not recommended because it may make the file harder to find.
...And 6 more matches
IPDL Tutorial
implementor in the plugin process: class pluginchild : public ppluginchild { protected: void recvinit(const nscstring& pluginpath) { mpluginlibrary = pr_loadlibrary(pluginpath.get()); sendready(); } void recvshutdown() { pr_unloadlibrary(mpluginlibrary); } private: prlibrary* mpluginlibrary; }; launching the subprocess and hooking these protocol actors into our ipc "trans
port layer" is beyond the scope of this document.
...ipdl sup
ports built-in and custom primitive types, as well as unions and arrays.
...ipdl im
ports these automatically because they are common, and because the base ipc library knows how to serialize and deserialize these types.
...And 6 more matches
NSPR Contributor Guide
abstract: nspr accepts contributions in the form of bugfixes, new features, libraries, platform
ports, documentation, test cases and other items from many sources.
...document the bug or use an existing re
port.
...include your changes as diffs in an attachment to the bugzilla re
port.
...And 6 more matches
Optimizing Applications For NSPR
netscape
portable runtime (nspr) tries to provide a consistent level of service across the platforms it sup
ports.
...on nt, this problem is especially obvious because the idle thread, which is in charge of driving the asynch io completion
port, is also blocked.
...if all the software linked into the application is not
ported to the nspr api, the application may fail because of threads being preempted during critical sections.
...And 6 more matches
NSS 3.14 release notes
introduction the nss team has released network security services (nss) 3.14, which is a minor release with the following new features: sup
port for tls 1.1 (rfc 4346) experimental sup
port for dtls 1.0 (rfc 4347) and dtls-srtp (rfc 5764) sup
port for aes-ctr, aes-cts, and aes-gcm sup
port for keying material ex
porters for tls (rfc 5705) in addition to the above new features, the following major changes have been introduced: sup
port for certificate signatures using the md5 hash algorithm is now disabled by default.
... ex
port and des cipher suites are disabled by default.
... sup
port for tls 1.1 (rfc 4346) has been added (https://bugzilla.mozilla.org/show_bug.cgi?id=565047).
...And 6 more matches
NSS 3.20 release notes
nss 3.20 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_20_rtm/src/ new in nss 3.20 new functionality the tls library has been extended to sup
port dhe ciphersuites in server applications.
... new types in sslt.h ssldhegrouptype - enumerates the set of dhe parameters embedded in nss that can be used with function ssl_dhegroupprefset new macros in ssl.h ssl_enable_server_dhe - a socket option user to enable or disable dhe ciphersuites for a server socket notable changes in nss 3.20 the tls library has been extended to sup
port dhe ciphersuites in server applications.
... the server side implementation of the tls does not sup
port session tickets while using a dhe ciphersuite (see bug 1174677).
...And 6 more matches
NSS tools : modutil
modutil sup
ports two types of databases: the legacy security databases (cert8.db, key3.db, and secmod.db) and new sqlite databases (cert9.db, key4.db, and pkcs11.txt).
... modutil sup
ports several mechanisms: rsa, dsa, rc2, rc4, rc5, aes, des, dh, sha1, sha256, sha512, ssl, tls, md5, md2, random (for random number generation), and friendly (meaning certificates are publicly readable).
... modutil -create -dbdir [sql:]directory adding a cryptographic module adding a pkcs #11 module means submitting a sup
porting library file, enabling its ciphers, and setting default provider status for various security mechanisms.
...And 6 more matches
TLS Cipher Suite Discovery
each new release of a tls implementation may contain sup
port for new cipher suites not sup
ported in previous versions.
... when a new version of a tls implementation is made available for use by applications, those applications may wish to immediately use the newly sup
ported cipher suites found in the new version, without the application needing to be modified and re-released to know about these new cipher suites.
... to that end, nss's libssl offers a way for applications to discover at run time the set of cipher suites sup
ported by that version of libssl.
...And 6 more matches
NSS tools : modutil
modutil sup
ports two types of databases: the legacy security databases (cert8.db, key3.db, and secmod.db) and new sqlite databases (cert9.db, key4.db, and pkcs11.txt).
... modutil sup
ports several mechanisms: rsa, dsa, rc2, rc4, rc5, aes, des, dh, sha1, sha256, sha512, ssl, tls, md5, md2, random (for random number generation), and friendly (meaning certificates are publicly readable).
... modutil -create -dbdir [sql:]directory adding a cryptographic module adding a pkcs #11 module means submitting a sup
porting library file, enabling its ciphers, and setting default provider status for various security mechanisms.
...And 6 more matches
Network Security Services
network security services (nss) is a set of libraries designed to sup
port cross-platform development of security-enabled client and server applications.
... applications built with nss can sup
port ssl v3, tls, pkcs #5, pkcs #7, pkcs #11, pkcs #12, s/mime, x.509 v3 certificates, and other security standards.
... for detailed information on standards sup
ported, see overview of nss.
...And 6 more matches
Creating JavaScript jstest reftests
directory overview in the js/src/tests directory, there are a few im
portant subdirectories.
...mozilla manually im
ports these tests into the js/src/tests/test262 directory.
... at the time of this writing, mozilla im
ports test262 tests in to the directory js/src/tests/test262.
...And 6 more matches
Bytecode Descriptions
(per spec, unary - sup
ports bigints, but unary + does not.) format: jof_ic neg stack: val ⇒ (-val) the unary - operator.
... dynamicim
port stack: moduleid ⇒ promise dynamic im
port of the module specified by the string value on the top of the stack.
... implements: im
port calls.
...And 6 more matches
JS_SetOptions
mxr id search for jsoption_varobjfix jsoption_private_is_nsisup
ports mozilla extension.
... the context's private data points to an xpcom object (see nsisup
ports).
... mxr id search for jsoption_private_is_nsisup
ports jsoption_compile_n_go caller of js_compilescript et al promises to execute the compiled script once only, in the same scope object used for compilation.
...And 6 more matches
Web Replay
the following executions are unlikely to be sup
ported by the initial release, but should be able to be handled at some point in the future: on x64, asm.js code relies on mprotect to handle out of bounds heap accesses; mprotect works differently while replaying, so some cooperation will be needed between the asm.js exception handler and the dirty memory exception handler.
... dom workers are not sup
ported yet.
... webgl is not sup
ported yet, as it uses a pretty different rendering path from normal web content.
...And 6 more matches
Mozilla Projects
crash re
porting firefox ships with an open-source crash re
porting system.
...it's im
portant that the update information retrieved has not been tampered with since being written by the add-on author.
...scripting for midas is based on the dhtml commands sup
ported by internet explorer.
...And 6 more matches
nsICollection
xpcom/ds/nsicollection.idlscriptable this interface represents a list of nsisup
ports items.
... inherits from: nsiserializable last changed in gecko 1.7 method overview void appendelement(in nsisup
ports item); void clear(); pruint32 count(); nsienumerator enumerate(); nsisup
ports getelementat(in pruint32 index); void queryelementat(in pruint32 index, in nsiidref uuid, [iid_is(uuid),retval] out nsqiresult result); void removeelement(in nsisup
ports item); void setelementat(in pruint32 index, in nsisup
ports item); methods appendelement() appends a new item to the collection.
... void appendelement( in nsisup
ports item ) parameters item nsisup
ports item to be appended to the list.
...And 6 more matches
nsIDOMNSHTMLDocument
dom/interfaces/html/nsidomnshtmldocument.idlscriptable this interface defines methods and properties sup
ported by gecko on the document object that are not part of dom level 2.
... inherits from: nsisup
ports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) method overview void captureevents(in long eventflags); void clear(); boolean execcommand(in domstring commandid, in boolean doshowui, in domstring value); boolean execcommandshowhelp(in domstring commandid); obsolete since gecko 14.0 domstring getselection(); nsidomdocument open(in acstring acontenttype, in boolean areplace); boolean querycommandenabled(in domstring commandid); boolean querycommandindeterm(in domstring commandid); boolean querycommandstate(in domstring commandid); boolean querycommandsup
ported(in domstring commandid); domstring querycommandtext(in domstring commandid); obsol...
...see rich-text editing in mozilla for a list of sup
ported commands.
...And 6 more matches
nsIUserInfo
inherits from: nsisup
ports last changed in gecko 1.7 implemented by: @mozilla.org/userinfo;1.
... the domain
portion of the email address, if available.
... not sup
ported.
...And 6 more matches
Setting HTTP request headers
in addition to the actual content, some im
portant information is passed with http headers for both http requests and responses.
... please also note that the code itself usually is wrapped inside a ex
ports.main = function() { ...
...note that the number of parameter that the observe method takes is im
portant.
...And 6 more matches
Using the clipboard
we will use the interface nsisup
portsstring which can be used to represent strings (specifically, unicode strings).
... // im
port the services module for future use, if we're not in // a browser window where it's already loaded.
... components.utils.im
port('resource://gre/modules/services.jsm'); // create a constructor for the built-in sup
ports-string class.
...And 6 more matches
xptcall FAQ
porting this code is required in order to make mozilla run on any given platform.
... xptcall exists for two reasons: to sup
port invoking arbitrary methods on xpcom interfaces.
... to sup
port dynamically impersonating any xpcom interface.
...And 6 more matches
Library
its methods let you declare symbols ex
ported by the library, and to manage the library.
...this can be used both for ex
ported data symbols and for functions.
... cdata declare( name[, abi, returntype argtype1, ...] ); parameters name the name of the symbol ex
ported by the native library that is to be declared as usable from javascript abi the abi used by the ex
ported function; this will be ctypes.default_abi for most libraries, except for windows libraries, which will be ctypes.winapi_abi or ctypes.stdcall_abi.
...And 6 more matches
Version, UI, and Status Information - Plugins
int plugin_major, plugin_minor, netscape_major, netscape_minor; // declare variables to hold version numbers void npn_version( &plugin_major, &plugin_minor, &netscape_major, &netscape_minor ); // find version numbers finding out if a feature exists a plug-in can figure out whether it is running in a version of the browser that sup
ports a particular feature by using version or npvers constants (see version feature constants).
...if the version sup
ports the feature, the plug-in can operate according to plan.
... detecting windowless sup
port on ms windows and mac os x in this example, the has_windowless method finds out whether the current version of the api sup
ports windowless plug-ins.
...And 6 more matches
Tutorial: Set a breakpoint - Firefox Developer Tools
save the following text to an html file: <div onclick="re
port('the best div');">click me!</div> <div onclick="re
port('another great div');">or me!</div> <script> function re
port(what) { console.log('clicked: ' + what); } </script> visit the html file in your browser, and open the browser content toolbox by opening the firefox menu, choosing “web developer”, and then “browser content toolbox”.
... click on the scratchpad panel and enter the following code: components.utils.im
port("resource://gre/modules/jsdebugger.jsm"); components.utils.im
port("resource://gre/modules/console.jsm"); // this simply defines 'debugger' in this scratchpad; // it doesn't actually start debugging anything.
...var windowdo = dbg.adddebuggee(tabs[0].content); // get a debugger.object referring to the window's `re
port` // function.
...And 6 more matches
Console messages - Firefox Developer Tools
ex
port visible messages to clipboard copies all messages available in the display pane to the clipboard.
... file opens a file dialog box so you can save an ex
port of all messages available in the display pane.
... this site specified both an x-content-security-policy/re
port-only header and a content-security-policy/re
port-only header.
...And 6 more matches
FileSystemDirectoryReader - Web APIs
because this is a non-standard api, whose specification is not currently on a standards track, it's im
portant to keep in mind that not all browsers implement it, and those that do may implement only small
portions of it.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemdirectoryreader deprecatednon-standardchrome full sup
port 8alternate name full sup
port 8alternate name alternate name uses the non-standard name: directoryreaderedge full sup
port ≤18alternate name full sup
port ≤18alternate name alternate name uses the non-standard name: webkitdirectoryr...
...eaderfirefox full sup
port 50ie no sup
port noopera full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitsafari full sup
port 11.1webview android full sup
port ≤37alternate name full sup
port ≤37alternate name alternate name uses the non-standard name: directoryreaderchrome android full sup
port 18alternate name full sup
port 18alternate name altern...
...And 6 more matches
FileSystemFlags - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemflags experimentalchrome full sup
port 13prefixed full sup
port 13prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port ≤79prefixed full sup
port ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox full sup
port ...
... 50ie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 50opera android no sup
port nosafari ios ...
... no sup
port nosamsung internet android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitcreate experimentalchrome full sup
port 13prefixed full sup
port 13prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port ≤79prefixed full sup
port ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox partial sup
port 50notes partial sup
port 50notes notes for se...
...And 6 more matches
IDBEnvironment - Web APIs
im
portant: the indexeddb property that was previously defined in this mixin is instead now windoworworkerglobalscope.indexeddb (that is, defined as a member of the windoworworkerglobalscope mixin).
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbenvironment deprecatednon-standardchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5available in workers deprecatednon-standardchrome ful...
...And 6 more matches
IDBObjectStore.name - Web APIs
() function to add the data to the database adddata(); }; function adddata() { // create a new object ready to insert into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); console.log(objectstore.name); // make a request to add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of our request note.innerhtml += '<li>request successful.</li>'; }; }; specification specification status comment indexed database api 2.0the definition of 'name' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnamechrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
...And 6 more matches
IDBTransaction.error - Web APIs
note also the functions attached to transaction event handlers to re
port on the outcome of the transaction opening in the event of success or failure.
... note the transaction.onerror = function(event) { }; block, making use of transaction.error to help in re
porting what went wrong when the transaction was unsuccessful.
...on to add the data to the database adddata(); }; function adddata() { // create a new object ready for being inserted into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed: database modification finished.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error: ' + transaction.error + '</li>'; }; // create an object store on the transaction var objectstore = tran...
...And 6 more matches
MediaCapabilitiesInfo - Web APIs
the mediacapabilitiesinfo interface of the media capabilities api is made available when the promise returned by the mediacapabilities.encodinginfo() or mediacapabilities.decodinginfo() methods of the mediacapabilities interface fulfills, providing information as to whether the media type is sup
ported, and whether encoding or decoding such media would be smooth and power efficient.
... properties the mediacapabilitiesinfo interface contains three boolean attribues: sup
ported: given the properties defined in the mediaconfiguration, can the specified piece of media content be encoded (if mediaencodingconfiguration is set) or decode (if mediadecodingconfiguration is set) at all?
... if yes, sup
ported is true.
...And 6 more matches
Using the Media Capabilities API - Web APIs
with the media capabilities api, you can determine not just if the browser can sup
port a given format, but whether or not it can do so efficiently and smoothly.
... in short, this api replaces—and improves upon—the mediasource method istypesup
ported() or the htmlmediaelement method canplaytype().
... sup
port for getting real-time feedback about the playback of media, so your code can make informed decisions about adapting the stream's quality or other settings to manage the user's perceived media performance and quality.
...And 6 more matches
RTCPeerConnection.getStats() - Web APIs
return value a promise which resolves with an rtcstatsre
port object providing connection statistics.
... the contents of the re
port depend on the selector as well as other details of the connection.
... obsolete syntax previously, getstats() used success and failure callbacks to re
port the results to you, instead of using a promise.
...And 6 more matches
RTCRtpTransceiver.setCodecPreferences() - Web APIs
a guide to codecs sup
ported by webrtc—and each codec's positive and negative characteristics—can be found in codecs used by webrtc.
... syntax rtcrtptransceiver.setcodecpreferences(codecs) parameters codecs an array of rtcrtpcodeccapability objects, in order of preference, each providing the parameters for one of the transceiver's sup
ported codecs.
... return value undefined exceptions invalidaccesserror the codecs list includes one or more codecs which are not sup
ported by the transceiver.
...And 6 more matches
Screen.lockOrientation() - Web APIs
the following strings represent the possible orientation requirements you may specify:
portrait-primary it represents the orientation of the screen when it is in its primary
portrait mode.
... a screen is considered in its primary
portrait mode if the device is held in its normal position and that position is in
portrait, or if the normal position of the device is in landscape and the device held turned by 90° clockwise.
...
portrait-secondary it represents the orientation of the screen when it is in its secondary
portrait mode.
...And 6 more matches
ScreenOrientation - Web APIs
properties screenorientation.typeread only returns the document's current orientation type, one of "
portrait-primary", "
portrait-secondary", "landscape-primary", or "landscape-secondary".
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetscreenorientationchrome full sup
port 38edge full sup
port 79firefox full sup
port 43ie no sup
port noopera full sup
port 25safari no sup
port nowebview android full suppor...
...t 38chrome android full sup
port 38firefox android full sup
port 43opera android full sup
port 25safari ios no sup
port nosamsung internet android full sup
port 3.0anglechrome full sup
port 38edge full sup
port 79firefox full sup
port 43ie no sup
port noopera full sup
port 25safari no sup
port ...
...And 6 more matches
Using Service Workers - Web APIs
note: as of firefox 44, when appcache is used to provide offline sup
port for a page a warning message is now displayed in the console advising developers to use service workers instead (bug 1204581.) service workers should finally fix these issues.
... setting up to play with service workers many service workers features are now enabled by default in newer versions of sup
porting browsers.
... 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 sup
port for serviceworker; restart browser.
...And 6 more matches
Writing WebSocket servers - Web APIs
a websocket server is nothing more than an application listening on any
port of a tcp server that follows a specific protocol.
...depending on language sup
port, knowledge of tcp sockets may be required.
...for example, let's assume that your server is listening on example.com,
port 8000, and your socket server responds to get requests at example.com/chat.
...And 6 more matches
Migrating from webkitAudioContext - Web APIs
this article attempts to summarize the areas where developers are likely to encounter these problems and provide examples on how to
port such code to standards based audiocontext, which will work across different browser engines.
... in order to
port your code, you can just rename the method that you're using.
... for example, if you have code like the below: var osc = context.createoscillator(); osc.noteon(1); osc.noteoff(1.5); var src = context.createbuffersource(); src.notegrainon(1, 0.25); src.noteoff(2); you can simply change it like this in order to
port it to the standard audiocontext api: var osc = context.createoscillator(); osc.start(1); osc.stop(1.5); var src = context.createbuffersource(); src.start(1, 0.25); src.stop(2); remove synchronous buffer creation in the old webkit implementation of web audio, there were two versions of createbuffer(), one which created an initially empty buffer, and one which took an existing arraybuffer containing encoded audio, decoded it and returned the result in the form of an audiobuffer.
...And 6 more matches
XRSystem: requestSession() - Web APIs
the sup
ported modes are: immersive-ar the session's output will be given exclusive access to the immersive device, but the rendered content will be blended with the real-world environment.
... im
portant: the immersive-ar mode is defined by the webxr augmented reality module, which is not yet stable and should not be used other than for testing and experimentation.
...inline sessions don't require special hardware and should be avalable on any user agent offering webxr api sup
port.
...And 6 more matches
Cognitive accessibility - Accessibility
time management letters and language numbers symbols and math understanding and making choices a solid approach to providing accessible solutions for people with cognitive impairments includes: delivering content in more than one way, such as by text-to-speech or by video; providing easily-understood content, such as text written using plain-language standards; focusing attention on im
portant content; minimizing distractions, such as unnecessary content or advertisements; providing consistent web page layout and navigation; incorporating familiar elements, such as underlined links that are blue when not visited and purple when visited; dividing processes into logical, essential steps with progress indicators; making website authentication as easy as possible without compromisi...
... time it is im
portant to allow users the time they require to complete tasks.
... moving, blinking, scrolling it is im
portant not to distract users, especially ones with cognitive disabilities.
...And 6 more matches
Controlling Ratios of Flex Items Along the Main Axis - CSS: Cascading Style Sheets
im
portant concepts when working on the main axis there are a few concepts worth digging into before looking at how the flex properties work to control ratios along the main axis.
...in a browser that sup
ports this keyword you should be able to see that the text has taken all of the soft wrapping op
portunities available to it, becoming as small as it can be without overflowing.
...it gets as big as it possibly can be, taking no soft-wrapping op
portunities.
...And 6 more matches
animation-direction - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetanimation-directionchrome full sup
port 43 full sup
port 43 full sup
port 3prefixed prefixed implemented with the vendor prefix: -webkit-edge full sup
port 12 full sup
port 12 full sup
port ...
...12prefixed prefixed implemented with the vendor prefix: -webkit-firefox full sup
port 16 full sup
port 16 full sup
port 49prefixed prefixed implemented with the vendor prefix: -webkit- full sup
port 44prefixed disabled prefixed implemented with the vendor prefix: -webkit-disabled from version 44: this feature is behind the layout.css.prefixes.webkit preference (needs to be set to true).
... full sup
port 5prefixed prefixed implemented with the vendor prefix: -moz-ie full sup
port 10opera full sup
port 30 full sup
port 30 full sup
port 15prefixed prefixed implemented with the vendor prefix: -webkit- no sup
port 12.1 — 15 no sup
port 12 — 15prefixed prefixed implemented with the vendor prefix: -o-safari full sup
port 9 full sup
port 9 full sup
port ...
...And 6 more matches
<input type="number"> - HTML: Hypertext Markup Language
on browsers that don't sup
port inputs of type number, a number input falls back to type text.
... events change and input sup
ported common attributes autocomplete, list, placeholder, readonly idl attributes list, value, valueasnumber methods select(), stepup(), stepdown() value any floating-point number, or empty.
... you can set a default value for the input by including a number inside the value attribute, like so: <input id="number" type="number" value="42"> additional attributes in addition to the attributes commonly sup
ported by all <input> types, inputs of type number sup
port these attributes: attribute description list the id of the <datalist> element that contains the optional pre-defined autocomplete options max the maximum value to accept for this input min the minimum value to accept for this input placeholder an example value to display inside the field when it's empty readonly a boolean attribute indicating whether the value is read-only step a stepping interval to use when using up and down arrows to...
...And 6 more matches
<input type="url"> - HTML: Hypertext Markup Language
on browsers that don't sup
port inputs of type url, a url input falls back to being a standard text input.
... value a domstring representing a url, or empty events change and input sup
ported common attributes autocomplete, list, maxlength, minlength, pattern, placeholder, readonly, required and size idl attributes list, value, selectionend, selectiondirection methods select(), setrangetext() and setselectionrange().
... additional attributes in addition to the attributes that operate on all <input> elements regardless of their type, url inputs sup
port the following attributes: attribute description list the id of the <datalist> element that contains the optional pre-defined autocomplete options maxlength the maximum number of characters the input should accept minlength the minimum number of characters long the input can be and still be considered valid pattern a regular expressi...
...And 6 more matches
<script>: The Script element - HTML: Hypertext Markup Language
see browser compatibility for notes on browser sup
port.
... nomodule this boolean attribute is set to indicate that the script should not be executed in browsers that sup
port es2015 modules — in effect, this can be used to serve fallback scripts to older browsers that do not sup
port modular javascript code.
... origin: the sent referrer will be limited to the origin of the referring page: its scheme, host, and
port.
...And 6 more matches
Global attributes - HTML: Hypertext Markup Language
ex
portparts used to transitively ex
port shadow parts from a nested shadow tree into a containing light tree.
... living standard shadow parts working draft added the part and ex
portparts global attributes.
... class and style are sup
ported on all elements but <base>, <basefont>, <head>, <html>, <meta>, <param>, <script>, <style>, and <title>.
...And 6 more matches
Preloading content with rel="preload" - HTML: Hypertext Markup Language
resources that javascript can request, like json, im
ported scripts, or web workers.
...this is especially useful when preloading resources — the browser will use the type attribute value to work out if it sup
ports that resource, and will only download it if so, ignoring it if not.
...: <head> <meta charset="utf-8"> <title>video preload example</title> <link rel="preload" href="sintel-short.mp4" as="video" type="video/mp4"> <link rel="preload" href="sintel-short.webm" as="video" type="video/webm"> </head> <body> <video controls> <source src="sintel-short.mp4" type="video/mp4"> <source src="sintel-short.webm" type="video/webm"> <p>your browser doesn't sup
port html5 video.
...And 6 more matches
CSP: script-src - HTTP
syntax one or more sources can be allowed for the script-src policy: content-security-policy: script-src <source>; content-security-policy: script-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 6 more matches
HTTP Public Key Pinning (HPKP) - HTTP
it has been removed in modern browsers and is no longer sup
ported.
...this means that for users who im
ported custom root certificates all pinning violations are ignored.
... enabling hpkp to enable this feature for your site, you need to return the public-key-pins http header when your site is accessed over https: public-key-pins: pin-sha256="base64=="; max-age=expiretime [; includesubdomains][; re
port-uri="re
porturi"] pin-sha256 the quoted string is the base64 encoded subject public key information (spki) fingerprint.
...And 6 more matches
Meta programming - JavaScript
« previousnext » starting with ecmascript 2015, javascript gains sup
port for the proxy and reflect objects allowing you to intercept and define custom behavior for fundamental language operations (e.g.
... a property cannot be re
ported as non-existent if it exists as a non-configurable own property of target.
... a property cannot be re
ported as non-existent if it exists as an own property of target and target is not extensible.
...And 6 more matches
Inheritance and the prototype chain - JavaScript
the only good reason for extending a built-in prototype is to back
port the features of newer javascript engines, like array.foreach.
... name example(s) pro(s) con(s) new-initialization function foo(){} foo.prototype = { foo_prop: "foo val" }; function bar(){} var proto = new foo; proto.bar_prop = "bar val"; bar.prototype = proto; var inst = new bar; console.log(inst.foo_prop); console.log(inst.bar_prop); sup
ported in every browser imaginable (sup
port goes all the way back to ie 5.5!).
...bar val"; bar.prototype = proto; var inst = new bar; console.log(inst.foo_prop); console.log(inst.bar_prop); function foo(){} foo.prototype = { foo_prop: "foo val" }; function bar(){} var proto = object.create( foo.prototype, { bar_prop: { value: "bar val" } } ); bar.prototype = proto; var inst = new bar; console.log(inst.foo_prop); console.log(inst.bar_prop) sup
port in all in-use-today browsers which are all non-microsoft browsers plus ie9 and up.
...And 6 more matches
WebAssembly.Global - JavaScript
a webassembly.global object represents a global variable instance, accessible from both javascript and im
portable/ex
portable across one or more webassembly.module instances.
... the value of the global is then changed, first to 42 using the global.value property, and then to 43 using the incglobal() function ex
ported out of the global.wasm module (this adds 1 to whatever value is given to it and then returns the new value).
...got: ${got}<br>`; } asserteq("webassembly.global exists", typeof webassembly.global, "function"); const global = new webassembly.global({value:'i32', mutable:true}, 0); webassembly.instantiatestreaming(fetch('global.wasm'), { js: { global } }) .then(({instance}) => { asserteq("getting initial value from wasm", instance.ex
ports.getglobal(), 0); global.value = 42; asserteq("getting js-updated value from wasm", instance.ex
ports.getglobal(), 42); instance.ex
ports.incglobal(); asserteq("getting wasm-updated value from js", global.value, 43); }); note: you can see the example running live on github; see also the source code.
...And 6 more matches
WebAssembly.Instance() constructor - JavaScript
syntax im
portant: since instantiation for large modules can be expensive, developers should only use the instance() constructor when synchronous instantiation is absolutely required; the asynchronous webassembly.instantiatestreaming() method should be used at all other times.
... new webassembly.instance(module, im
portobject); parameters module the webassembly.module object to be instantiated.
... im
portobject optional an object containing the values to be im
ported into the newly-created instance, such as functions or webassembly.memory objects.
...And 6 more matches
Navigation and resource timings - Web Performance
while deprecated, they are sup
ported in all browsers.
... performance timings the performancetiming api, a javascript api for measuring the loading performance of the requested page, is deprecated but sup
ported in all browsers.
... with the metrics above, and a little bit of math, we can calculate many im
portant metrics like time to first byte, page load time, dns lookup, and whether the connection is secure.
...And 6 more matches
Same-origin policy - Web security
definition of an origin two urls have the same origin if the protocol,
port (if specified), and host are the same for both.
... you may see this referenced as the "scheme/host/
port tuple", or just "tuple".
...mpany.com/dir/page.html: url outcome reason http://store.company.com/dir2/other.html same origin only the path differs http://store.company.com/dir/inner/another.html same origin only the path differs https://store.company.com/page.html failure different protocol http://store.company.com:81/dir/page.html failure different
port (http:// is
port 80 by default) http://news.company.com/dir/page.html failure different host inherited origins scripts executed from pages with an about:blank or javascript: url inherit the origin of the document containing that url, since these types of urls do not contain information about an origin server.
...And 6 more matches
Transforming XML with XSLT - XSLT: Extensible Stylesheet Language Transformations
the structure of an xml document is designed to reflect and clarify im
portant relationships among the individual aspects of the content itself, unhindered by a need to provide any indication about how this data should eventually be presented.
... this intelligent structuring is particularly im
portant as more and more data transfers are automated and take place between highly heterogeneous machines linked by a network.
... at present, gecko (the layout engine behind firefox) sup
ports two forms of xml stylesheets.
...And 6 more matches
Caching compiled WebAssembly modules - WebAssembly
warning: experimental webassembly.module indexeddb serialization sup
port is being removed from browsers; see bug 1469395 and this spec issue.
... in our wasm-utils.js library script, you'll find instantiatecachedurl() — this function fetches the wasm module at url with a version of dbversion, instantiates it with the given im
portobject, and returns a promise resolving to the finished wasm instance.
... the function starts off by defining some necessary constants: function instantiatecachedurl(dbversion, url, im
portobject) { const dbname = 'wasm-cache'; const storename = 'wasm-cache'; setting up the database the first helper function contained inside instantiatecachedurl() — opendatabase() — creates an object store for storing wasm modules, and also handles clearing out the database if the dbversion is updated; it returns a promise resolving to the new database.
...And 6 more matches
/loader - Archive of obsolete content
it can be loaded as a javascript code module: let { loader, require, unload } = components.utils.im
port('resource://gre/modules/commonjs/toolkit/loader.js'); it can be required as a commonjs module from a module loaded in the loader itself: let { loader, require, unload } = require('toolkit/loader'); what is it good for ?
... secure each module in an isolated js sandbox and makes any capability im
ports explicit via calls to the require() function.
... modules: provides a set of module ex
ports.
...And 5 more matches
ui/sidebar - Archive of obsolete content
on the sidebar end of the conversation, sidebar scripts get a global variable addon that contains a
port for sending and receiving messages.
... that shows how to set up communication between main.js and a script in a sidebar, in the case where the sidebar script initiates communication: the html file includes just a script, "sidebar.js": <!doctype html> <html> <body> content for my sidebar <script type="text/javascript" src="sidebar.js"></script> </body> </html> the "sidebar.js" file sends a ping message to main.js using
port.emit() as soon as it loads, and adds a listener to the pong message.
... addon.
port.emit("ping"); addon.
port.on("pong", function() { console.log("sidebar script got the reply"); }); the "main.js" file creates a sidebar object and adds a listener to its attach event.
...And 5 more matches
package.json - Archive of obsolete content
note: jpm sup
ports nodejs people fields.
... engines object with sup
ported applications (key) and required version numbers (value).
... private-browsing: a boolean indicating whether or not the add-on sup
ports private browsing.
...And 5 more matches
Developing for Firefox Mobile - Archive of obsolete content
right now not all modules are fully functional, but we're working on adding sup
port for more modules.
... the tables at the end of this guide list the modules that are currently sup
ported on firefox mobile.
... running add-ons on android you can develop your add-on as normal, as long as you restrict yourself to the sup
ported modules.
...And 5 more matches
Migrating from Internal Linkage to Frozen Linkage - Archive of obsolete content
use .setlength() instead: nsstring mystring = somestring; - mystring.truncate(4); + mystring.setlength(4); the frozen string api doesn't sup
port the iterator or const_iterator classes, but you can use pointers the same way: nsstring mystring = somestring; - nsstring::const_iterator begin, end;- mystring.beginreading(begin); mystring.endreading(end); + const prunichar *begin, *end;+ mystring.beginreading(&begin, &end); the frozen string api uses comparator functions instead of a virtual comparator class.
...these classes must now be created using xpcom: // nsisup
portsarray is bad!
...(see xpcom:arrays.) nscomptr<nsisup
portsarray> array; - rv = ns_newisup
portsarray(getter_addrefs(array)); + array = do_createinstance(ns_sup
portsarray_contractid); - nscomptr<nsiinputstream> rawstream;- rv = ns_newbyteinputstream(getter_addrefs(rawstream),- (const char*)data, length); + nscomptr<nsistringinputstream> rawstream =+ do_createinstance(ns_stringinputstream_contractid, &rv);+ ns_ensure_success(rv, rv);++ rv = rawstream->setdata((const char*)data, length); ns_ensure_success(rv, rv); nsistringinputstream is not frozen (and thus, not available in the gecko sdk as currently published).
...And 5 more matches
Setting Up a Development Environment - Archive of obsolete content
it's based on the mozilla xulrunner platform, so it has sup
port for some of the particularities in firefox extension development.
... komodo edit has automatic completion for xul tags and attributes, and it sup
ports mozilla's css extensions (css values and properties beginning with "-moz").
...in order to set the profile location to the right value, you should read the sup
port article on profiles, at the mozilla sup
port site.
...And 5 more matches
Search Extension Tutorial (Draft) - Archive of obsolete content
while the technical details below are im
portant to understand, a library which encapsulates the appropriate logic is provided along with the example add-on at the end, and should be used where possible.
...the following example bootstrap.js file illustrates the method: const { classes: cc, interfaces: ci, utils: cu, results: cr } = components; // im
port the services module.
... cu.im
port("resource://gre/modules/services.jsm"); // keep track of whether this is the first run.
...And 5 more matches
An Interview With Douglas Bowman of Wired News - Archive of obsolete content
the breakdown: 1 master screen media file which im
ports 4 files: a base file (bulk of formatting) a file for finance/table formatting color file (override colors and background images for specific color scheme) temp file (used for styles associated with temporary features and ad-related pages) 1 print media file 1 aural media file 3 master alternate style sheets which im
port 1 file each the 3 im
ported files set alternate ...
...for wired news, the center (or main) column usually contains the most im
portant content for each page.
...first of all, since wired news is a heavily ad-sup
ported site, our advertising units were the cause of several im
portant decisions.
...And 5 more matches
MMgc - Archive of obsolete content
gcfinalizedobject base class: gcobject a garbage collected object with finalization sup
port.
... finalizers if your c++ class is a subclass of gcfinalizedobject or rcfinalizedobject, it has finalizer sup
port.
...the re
port can be output to the console or to a file, and can be configured to be displayed pre/post sweep or via api call.
...And 5 more matches
JavaScript Client API - Archive of obsolete content
this document is somewhat outdated, and the api isn't well-sup
ported for use from add-ons; tread carefully.
...first off we're going to im
port the files mentioned above at the top the file.
... we're also going to im
port ''util.js'' as it contains many useful helpers.
...And 5 more matches
Clipboard - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
... jetpack's clipboard sup
port api provides a standardized way for features to access the clipboard.
...the api lives in the future and must be im
ported for use.
...And 5 more matches
Mozilla Application Framework - Archive of obsolete content
framework xul a comprehensive, cross-platform ui toolkit with an easy-to-learn xml language for defining ui structure, a schema for localization, and sup
port for both native and cross-platform (using css) look and feel to make writing uis quick and painless.
... gecko a performant web content rendering/editing engine with world-leading sup
port for standards that you can drop into your application with a single line of xul.
... necko a wicked-fast, extensible networking library with built-in sup
port for many common protocols and a well-defined plug-in interface for custom protocol handling so you can add the protocols you need.
...And 5 more matches
Writing textual data - Archive of obsolete content
writing to a stream in gecko 1.8 (seamonkey 1.0, firefox 1.5), you can use nsiconverteroutputstream: var charset = "utf-8"; // can be any character encoding name that mozilla sup
ports var os = components.classes["@mozilla.org/intl/converter-output-stream;1"] .createinstance(components.interfaces.nsiconverteroutputstream); // this assumes that fos is the nsioutputstream you want to write to os.init(fos, charset, 0, 0x0000); os.writestring("umlaute: \u00fc \u00e4\n"); os.writestring("hebrew: \u05d0 \u05d1\n"); // etc.
... the example above passes 0 as the third argument, which disables buffering (note: the implementation of the converter stream might not sup
port buffering).
... unsup
ported characters you can specify what should happen with characters that are not sup
ported by the selected character encoding.
...And 5 more matches
Adding Style Sheets - Archive of obsolete content
<spacer class="titlespace"/> <hbox> <progressmeter id="progmeter" value="50%" style="display:none;"/> the new xml-stylesheet line is used to im
port the style sheet.
... im
porting style sheets we've already seen how to im
port style sheets for use.
...it im
ports the bookmarks style sheet, which is bookmarks.css.
...And 5 more matches
XEmbed Extension for Mozilla Plugins - Archive of obsolete content
in your plugin instance npp_getvalue call you need to make sure that you sup
port the new nppvpluginneedsxembed value.
...telling mozilla you sup
port xembed as mentioned above, you will need to tell mozilla that you sup
port the xembed protocol for hosting plugins.
... for backwards compatibility reasons if you don't tell mozilla that you sup
port it it will try to hand you an xt widget as a parent.
...And 5 more matches
Game distribution - Game development
you can put your html5 games into the same arena (see native desktop, later on) and you should because it's good to diversify the platforms you sup
port, but you have to remember that developers creating desktop games have years of experience, great tools and stable distribution channels.
... publishers and
portals as the name may suggest, publishers can handle the publishing of your game for you.
... there are also independent
portals collecting interesting games like html5games.com, gamearter.com, marketjs.com, gameflare, gamedistribution.com or poki where you can send your game in and it will get some natural promotion because of the big traffic those sites attract.
...And 5 more matches
Mobile accessibility - Learn web development
previous overview: accessibility next with web access on mobile devices being so popular and renowned platforms such as ios and android having full-fledged accessibility tools, it is im
portant to consider the accessibility of your web content on these platforms.
... accessibility on mobile devices the state of accessibility — and sup
port for web standards in general — is good in modern mobile devices.
...modern mobile browsers tend to have good sup
port for wai-aria, too.
...And 5 more matches
Client-side storage - Learn web development
previous overview: client-side web apis modern web browsers sup
port a number of ways for web sites to store data on the user's computer — with the user's permission — then retrieve it when necessary.
... the future: cache api some modern browsers sup
port the new cache api.
... note: the version number is im
portant.
...And 5 more matches
Accessibility in React - Learn web development
change the im
port statement at the top of todo.js so that it includes useref: im
port react, { useref, usestate } from "react"; then, create two new constants beneath the hooks in your todo() function.
... value={newname} onchange={handlechange} ref={editfieldref} /> the "edit" button in your view template should read like this: <button type="button" classname="btn" onclick={() => setediting(true)} ref={editbuttonref} > edit <span classname="visually-hidden">{props.name}</span> </button> focusing on our refs with useeffect to use our refs for their intended purpose, we need to im
port another react hook: useeffect().
... change the im
port statement of todo.js again to add useeffect: im
port react, { useeffect, useref, usestate } from "react"; useeffect() takes a function as an argument; this function is executed after the component renders.
...And 5 more matches
Makefile - variables
defines additional preprocessor defines for c++ expand_mozlibname ex
ports a list of ex
ported header files and sources to install for external use.
... ex
ports_namespaces ex
ported package include directory: dist/include/${namespace} ex
ports_${namespace} a list of ex
ports/headers that should be copied into the ex
ported namespace directory.
... module module_name no_dist_install inhibit generating and copying ex
ports/install targets into $(moz_objdir)/dist/install.
...And 5 more matches
Application Translation with Mercurial
paste the following content into the file: [ui] username = firstname lastname <mynick@example.com> merge = internal:merge [alias] qex
port = ex
port -g -r qtip qex
portall = diff -r qparent [defaults] commit = -v diff = -p -u 8 qdiff = -p -u 8 qnew = -u [diff] git = 1 showfunc = 1 unified = 8 [extensions] hgext.mq = progress = [hooks] put in your name and email address which later will be public on the internet after your translation patch got accepted and uploaded.
... opening english files and the target locale side-by-side the localization re
port shows the ids of added or removed texts, but the english text itself is still unknown.
... ex
porting the changes as patch a patch is a file containing recorded changes to a repository.
...And 5 more matches
Localization and Plurals
, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, … plural rule #1 (2 forms) families: germanic (danish, dutch, english, faroese, frisian, german, norwegian, swedish), finno-ugric (estonian, finnish, hungarian), language isolate (basque), latin/greek (greek), semitic (hebrew), romanic (italian,
portuguese, spanish, catalan), vietnamese is 1: 1 everything else: 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, … plural rule #2 (2 forms) families: romanic (french, brazilian
portuguese), lingala is 0 or 1: 0, 1 everything else: 2, 3, 4, 5, 6, 7, 8,...
... 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 sup
port future rules - requires build from 2007/01/27 or later 0.3: generate a list of what numbers fall into which plural form to minimize the sample output to at most 3 of each form developing with pluralform the functionality for getting the correct plural forms is provided by a javascript module, pluralform.jsm.
... loading pluralform.jsm loading the pluralform module from javascript is simple with components.utils.im
port.
...And 5 more matches
Creating localizable web applications
an im
portant step of developing a web application or creating web content is making sure that it can be localized.
...the language_config class expects arrays of valid languages & sup
ported languages.
...the server's php has been built with gettext sup
port).
...And 5 more matches
Nonblocking IO In NSPR
introduction previously, all i/o in the netscape
portable runtime (nspr) was blocking (or synchronous).
...(note: <tt>pr_poll()</tt> also works with blocking file descriptors, although it is less useful in the blocking io model.) when <tt>pr_poll()</tt> re
ports that a file descriptor is ready for some io operation, the central thread invokes that io function on the file descriptor.
...in nspr, blocking sockets on nt are associated with an i/o completion
port.
...And 5 more matches
NSS 3.22 release notes
nss 3.22 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_22_rtm/src/ new in nss 3.22 new functionality rsa-pss signatures are now sup
ported (bug 1215295) new functions pk11_signwithmechanism() and pk11_signwithmechanism() are provided to allow rsa keys to be used with pss.
... pseudorandom functions based on hashes other than sha-1 are now sup
ported with pbkdf (bug 554827).
... pk11_createpbev2algorithmid() now sup
ports sec_oid_pkcs5_pbkdf2 with cipheralgtag and prfalgtag set to sec_oid_hmac_sha256, sec_oid_hmac_sha224, sec_oid_hmac_sha384, or sec_oid_hmac_sha512.
...And 5 more matches
NSS 3.52 release notes
notable changes in nss 3.52 bug 1603628 - update nss to sup
port pkcs #11 v3.0.
... bug 1623374 - sup
port new pkcs #11 v3.0 message interface for aes-gcm and chachapoly.
... bug 1629655 - sup
port temporary session objects in ckfw.
...And 5 more matches
nss tech note1
rather, the goal here is to explain what type of tags the decoder sup
ports and which macros should be used when defining tags in decoder templates.
... it should be noted that we only sup
port an older specification of asn.1; multibyte tags are not currently sup
ported.
... the 8-bit asn.1 tags that we sup
port are made of three parts : the asn.1 component class type.
...And 5 more matches
NSS Tools sslstrength
sslstrength summary a simple command-line client which connects to an ssl-server, and re
ports back the encryption cipher and strength used.
... synopsis 1) sslstrength ciphers 2) sslstrength hostname[:
port] [ciphers=xyz] [debug] [verbose] [policy=ex
port|domestic] description the first form simple lists out the possible ciphers.
...however, the
port number is an optional argument, and if not given, will default to the https
port (443).
...And 5 more matches
NSS Tools sslstrength
sslstrength summary a simple command-line client which connects to an ssl-server, and re
ports back the encryption cipher and strength used.
... synopsis 1) sslstrength ciphers 2) sslstrength hostname[:
port] [ciphers=xyz] [debug] [verbose] [policy=ex
port|domestic] description the first form simple lists out the possible ciphers.
...however, the
port number is an optional argument, and if not given, will default to the https
port (443).
...And 5 more matches
SpiderMonkey 1.8.7
—22 march 2011 platform sup
port spidermonkey 1.8.7 is sup
ported on all the platforms where firefox 10 runs.
...the jit is sup
ported only on x86, x86_64 and arm architectures.
...new javascript language features xxx needs updating javascript 1.8.5 adds sup
port for ecmascript edition 5, including es5 strict mode.
...And 5 more matches
Gecko Roles
« at apis sup
port page this page offers a list of accessible roles used in gecko.
...used by msaa only, this is sup
ported automatically by microsoft windows.
...the role is sup
ported automatically by microsoft windows.
...And 5 more matches
Places Developer Guide
}, queryinterface: function(iid) { if (iid.equals(ci.nsinavbookmarkobserver) || iid.equals(ci.nsisup
ports)) { return this; } throw cr.ns_error_no_interface; }, }; // register the observer with the bookmarks service var bmsvc = cc["@mozilla.org/browser/nav-bookmarks-service;1"] .getservice(ci.nsinavbookmarksservice); bmsvc.addobserver(observer, false); // un-register the observer when done.
... bmsvc.removeobserver(observer); html im
port/ex
port the nsiplacesim
portex
portservice service is used for im
port and ex
port of bookmarks in the netscape bookmarks html format.
...im
porting: im
porthtmlfromfile (nsilocalfile afile, boolean aisinitialim
port) - this im
ports all the bookmarks in the specified file into the current bookmarks collection.
...And 5 more matches
Aggregating the In-Memory Datasource
also, instead of keeping an nscomptr<nsirdfdatasource>, you'll just want an nscomptr<nsisup
ports>: class myclass : public nsimyinterface { ...
... private: nscomptr<nsisup
ports> minner; }; construct the datasource delegate when your object is constructed (or, at worst, when somebody qi's for it): rv = nscomponentmanager::createinstance( krdfinmemorydatasourcecid, this, /* the "outer" */ nscomtypeinfo<nsisup
ports>::getiid(), getter_addrefs(minner)); note passing this as the "outer" parameter.
... now, if the in-memory datasource's implementation of queryinterface() fails because it doesn't sup
port the requested interface, it willforward the query interface to its "outer" (which is "us").
...And 5 more matches
XPCOM array guide
nsisup
portsarray xpcom object yes no yes* no reference counted, strong (*) note: concrete c++ arrays can be made read-only by declaring them const.
... nsisup
portsarray - obsoleted by nsiarray and nsimutablearray, use those instead.
... do not use nsisup
portsarray; it is deprecated.
...And 5 more matches
Detailed XPCOM hashtable guide
hashtables may seem like arrays, but there are im
portant differences: array hashtable keys: integer: arrays are always keyed on integers, and must be contiguous.
... key type: integer string/cstring nsid nsisup
ports* complex data type: none (hash set) nsthashtable<...> simple (pruint32) nsdatahashtable nsthashtable<...> <nsuint32hashkey, pruint32> <ns(c)stringhashkey, pruint32> <nsidhashkey, pruint32> <nsisup
portshashkey, pruint32> interface (nsisup
ports) nsinterfacehashtable <nsuint32hashkey, nsisup
ports> <ns(c)s...
...tringhashkey, nsisup
ports> <nsidhashkey, nsisup
ports> <nsisup
portshashkey, nsisup
ports> class (nsstring*) nsclasshashtable <nsuint32hashkey, nsstring> <ns(c)stringhashkey, nsstring> <nsidhashkey, nsstring> <nsisup
portshashkey, nsstring> complex (structures, etc.) nsthashtable<...> pldhash the pldhash implementation is a fairly low-level implementation, written in c.
...And 5 more matches
Interfacing with the XPCOM cycle collector
the collector does not know how to find temporary owning pointers that exist on the stack, so it is im
portant that it only run from near the top-loop of the program.
... add a line declaring that your class nsfoo participates in the cycle collection in nsfoo.cpp: ns_impl_cycle_collection_class(nsfoo) change the line ns_decl_isup
ports to ns_decl_cycle_collecting_isup
ports in the definition of nsfoo.
... add a line ns_decl_cycle_collection_class(nsfoo) within the public
portion of definition of nsfoo.
...And 5 more matches
inIDOMUtils
inherits from: nsisup
ports last changed in gecko 22.0 (firefox 22.0 / thunderbird 22.0 / seamonkey 2.19) implemented by: @mozilla.org/inspector/dom-utils;1 as a service: var inidomutils = components.classes["@mozilla.org/inspector/dom-utils;1"] .getservice(components.interfaces.inidomutils); method overview void addpseudoclasslock(in nsidomelement aelement, in domstring apseudoclass); void clearpseudoclasslocks(in nsidomelement aelement); [implicit_jscontext] jsval colornametorgb(in domstring acolorname); nsiarray getbindingurls(in nsidomelement aelement); nsidomnodelist getchildrenfornode(in nsidomnode anode, in boolean ashowinganonymouscontent);...
... unsigned long long getcontentstate(in nsidomelement aelement); void getcsspropertynames([optional] in unsigned long aflags, [optional] out unsigned long acount, [retval, array, size_is(acount)] out wstring aprops); nsisup
portsarray getcssstylerules(in nsidomelement aelement, [optional] in domstring apseudo); nsidomnode getparentfornode(in nsidomnode anode, in boolean ashowinganonymouscontent); unsigned long getruleline(in nsidomcssstylerule arule); unsigned long getrulecolumn(in nsidomcssstylerule arule); unsigned long getselectorcount(in nsidomcssstylerule arule); astring getselectortext(in nsidomcssstylerule arule, in unsigned long aselectorindex); unsigned long long getspecificity(in nsidomcssstylerule arule...
... getcontentstate() a bit mask of the sup
ported content state flags, which are listed in content state flags.
...And 5 more matches
nsICategoryManager
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by: @mozilla.org/categorymanager;1.
...("moz.httprulez.1") apersist no longer sup
ported.
... return value a simple enumerator, each result qis to nsisup
portscstring.
...And 5 more matches
nsIClipboard
widget/nsiclipboard.idlscriptable this interface sup
ports basic clipboard operations such as: setting, retrieving, emptying, matching and sup
porting clipboard data.
... inherits from: nsisup
ports last changed in gecko 30.0 (firefox 30.0 / thunderbird 30.0 / seamonkey 2.27) method overview void emptyclipboard(in long awhichclipboard); void forcedatatoclipboard(in long awhichclipboard); obsolete since gecko 1.8 void getdata(in nsitransferable atransferable, in long awhichclipboard); boolean hasdatamatchingflavors([array, size_is(alength)] in string aflavorlist, in unsigned long alength, in long awhichclipboard); void setdata(in nsitransferable atransferable, in nsiclipboardowner anowner, in long awhichclipboard); boolean sup
portsselectionclipboard(); boolean sup
portsfindclipboard(); constants most clipboard operations in firefox use kglobalclipboard, which is the one also used by the ...
... forcedatatoclipboard() obsolete since gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) some platforms sup
port deferred notification for putting data on the clipboard this method forces the data onto the clipboard in its various formats this may be used if the application going away.
...And 5 more matches
nsICookieManager2
to create an object implementing this interface: components.utils.im
port("resource://gre/modules/services.jsm"); var cookieservice = services.cookies; method overview void add(in autf8string ahost, in autf8string apath, in acstring aname, in acstring avalue, in boolean aissecure, in boolean aishttponly, in boolean aissession, in print64 aexpiry); boolean cookieexists(in nsicookie2 acookie); unsigned long countcookiesfromhost(in autf8st...
...ring ahost); boolean findmatchingcookie(in nsicookie2 acookie, out unsigned long acountfromhost); obsolete since gecko 1.9 nsisimpleenumerator getcookiesfromhost(in autf8string ahost); void im
portcookies(in nsifile acookiefile); methods add() adds a cookie.
...this should consist only of the host
portion of the uri and should not contain a leading dot,
port number, or other information.
...And 5 more matches
nsIHttpActivityObserver
netwerk/protocol/http/nsihttpactivityobserver.idlscriptable this interface provides a way for http trans
port activities to be re
ported to observers.
... 1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void observeactivity(in nsisup
ports ahttpchannel, in pruint32 aactivitytype, in pruint32 aactivitysubtype, in prtime atimestamp, in pruint64 aextrasizedata, in acstring aextrastringdata); attributes attribute type description isactive boolean true when the interface is active and should observe http activity, otherwise false.
... constants activity type constants constant value description activity_type_socket_trans
port 0x0001 socket trans
port activity has occurred.
...And 5 more matches
nsINavHistoryQueryOptions
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 13.0 (firefox 13.0 / thunderbird 13.0 / seamonkey 2.10) method overview nsinavhistoryqueryoptions clone(); attributes attribute type description applyoptionstocontainers boolean if true, the query options are only applied to the containers.
... asyncenabled boolean when true, the root container node generated by these options and all of its descendant containers are opened asynchronously if they sup
port doing so.
... note: currently, only bookmark folder containers sup
port being opened asynchronously.
...And 5 more matches
Component; nsIPrefBranch
inherits from: nsisup
ports last changed in gecko 58 (firefox 58 / thunderbird 58 / seamonkey 2.55) this object is created with a "root" value which describes the base point in the preferences "tree" from which this "branch" stems.
... preferences are accessed off of this root by using just the final
portion of the preference.
...ver(in string adomain, in nsiobserver aobserver); void resetbranch(in string astartingat); void setboolpref(in string aprefname, in long avalue); void setcharpref(in string aprefname, in string avalue); requires gecko 58 void setstringpref(in string aprefname, in utf8string avalue); void setcomplexvalue(in string aprefname, in nsiidref atype, in nsisup
ports avalue); void setintpref(in string aprefname, in long avalue); void unlockpref(in string aprefname); attributes attribute type description root string called to get the root on which this branch is based, such as "browser.startup." read only.
...And 5 more matches
nsIProtocolProxyService
inherits from: nsisup
ports last changed in gecko 1.7 implemented by: @mozilla.org/network/protocol-proxy-service;1.
...vice;1"] .getservice(components.interfaces.nsiprotocolproxyservice); method overview deprecated since gecko 18 nsiproxyinfo resolve(in nsiuri auri, in unsigned long aflags); nsicancelable asyncresolve(in nsiuri auri, in unsigned long aflags,in nsiprotocolproxycallback acallback); nsiproxyinfo newproxyinfo(in acstring atype, in autf8string ahost,in long a
port, in unsigned long aflags, in unsigned long afailovertimeout, in nsiproxyinfo afailoverproxy); nsiproxyinfo getfailoverforproxy(in nsiproxyinfo aproxyinfo, in nsiuri auri, in nsresult areason); void registerfilter(in nsiprotocolproxyfilter afilter, in unsigned long aposition); void unregisterfilter(in nsiprotocolproxyfilter afilter); constants constant ...
... if the protocol handler for the given uri sup
ports nsiproxiedprotocolhandler, then the nsiproxyinfo instance returned from resolve may be passed to the nsiproxiedprotocolhandler.newproxiedchannel() method to create a nsichannel to the given uri that uses the specified proxy.
...And 5 more matches
nsIXmlRpcClient
last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits from: nsisup
ports method overview void init(in string serverurl); void setauthentication(in string username, in string password); void clearauthentication(in string username, in string password); void setencoding(in string encoding); void setencoding(in unsigned long type, out nsiidref uuid, out nsqiresult result); void asynccall (in nsixmlrpcclientlistener listener, in nsisup
ports ctxt, in string methodname, in nsisup
ports arguments, in pruint32 count); attributes attribute type description serverurl readonly nsi...
... result readonly nsisup
ports the most recent xml-rpc call result returned from this server.
... constants constant type description int unsigned long nsisup
portsprint32 boolean unsigned long nsisup
portsprbool string unsigned long nsisup
portscstring double unsigned long nsisup
portsdouble datetime unsigned long nsisup
portsprtime array readonly unsigned long nsisup
portsarray struct readonly unsigned long nsisup
portsdictionary methods init() set server url.
...And 5 more matches
XPCOM Interface Reference
contentprefobservernsicontentprefservicensicontentprefservice2nsicontentsecuritypolicynsicontentsniffernsicontentviewnsicontentviewmanagernsicontentviewernsicontrollernsicontrollersnsiconverterinputstreamnsiconverteroutputstreamnsicookiensicookie2nsicookieacceptdialognsicookieconsentnsicookiemanagernsicookiemanager2nsicookiepermissionnsicookiepromptservicensicookieservicensicookiestoragensicrashre
porternsicryptohmacnsicryptohashnsicurrentcharsetlistenernsicyclecollectorlistenernsidbchangelistenernsidbfolderinfonsidnslistenernsidnsrecordnsidnsrequestnsidnsservicensidomcanvasrenderingcontext2dnsidomchromewindownsidomclientrectnsidomdesktopnotificationnsidomdesktopnotificationcenternsidomelementnsidomeventnsidomeventgroupnsidomeventlistenernsidomeventtargetnsidomfilensidomfileerrornsidomfileexcep...
...lectcontrolelementnsidomxulselectcontrolitemelementnsidatasignatureverifiernsidebugnsidebug2nsidevicemotionnsidevicemotiondatansidevicemotionlistenernsidialogcreatornsidialogparamblocknsidictionarynsidirindexnsidirindexlistenernsidirindexparsernsidirectoryenumeratornsidirectoryiteratornsidirectoryservicensidirectoryserviceprovidernsidirectoryserviceprovider2nsidiskcachestreaminternalnsidispatchsup
portnsidocshellnsidocumentloadernsidownloadnsidownloadhistorynsidownloadmanagernsidownloadmanageruinsidownloadobservernsidownloadprogresslistenernsidownloadernsidragdrophandlernsidragservicensidragsessionnsidroppedlinkhandlernsidroppedlinkitemnsidynamiccontainernsieditornsieditorboxobjectnsieditordocshellnsieditorimesup
portnsieditorloggingnsieditormailsup
portnsieditorobservernsieditorspellchecknsieffe...
...putstreamcallbacknsiinstalllocationnsiinterfacerequestornsijscidnsijsidnsijsiidnsijsonnsijetpacknsijetpackservicensijumplistbuildernsijumplistitemnsilivemarkservicensiloadgroupnsilocalfilensilocalfilemacnsilocalensilocaleservicensilogininfonsiloginmanagernsiloginmanagercryptonsiloginmanageriemigrationhelpernsiloginmanagerprompternsiloginmanagerstoragensiloginmetainfonsimimeinputstreamnsimacdocksup
portnsimarkupdocumentviewernsimemorynsimemorymultire
porternsimemorymultire
portercallbacknsimemoryre
porternsimemoryre
portermanagernsimenuboxobjectnsimessagebroadcasternsimessagelistenernsimessagelistenermanagernsimessagesendernsimessagewakeupservicensimessengernsimicrosummarynsimicrosummarygeneratornsimicrosummaryobservernsimicrosummaryservicensimicrosummarysetnsimimeconverternsimimeheadersnsimodulensi...
...And 5 more matches
Storage
to re
port bugs, use bugzilla.
... opening a connection javascript example of opening my_db_file_name.sqlite in the profile directory: components.utils.im
port("resource://gre/modules/services.jsm"); components.utils.im
port("resource://gre/modules/fileutils.jsm"); let file = fileutils.getfile("profd", ["my_db_file_name.sqlite"]); let dbconn = services.storage.opendatabase(file); // will also create the file if it does not exist likewise, the c++ would look like this: nscomptr<nsifile> dbfile; rv = ns_getspecialdirectory(ns_app_user_profile_50_dir, ...
... executing a statement you may execute statements either synchronously (which is sup
ported in firefox gecko 1.8 and 1.9) or asynchronously (starting in gecko 1.9.1).
...And 5 more matches
nsCOMPtr versus RefPtr
this basic rule derives from the fact that some of the nscomptr<t> code is factored into the nscomptr_base base class, which stores the underlying mrawptr as an nsisup
ports*.
...since nscomptr stores the pointer as an nsisup
ports*, it must be possible to unambiguously cast from t* to nsisup
ports*.
... many concrete classes inherit from nsisup
ports in more than one way, so they cannot be unambiguously cast to nsisup
ports*.
...And 5 more matches
View Source - Firefox Developer Tools
error re
porter ≠ validator view source only re
ports parsing errors, not html validity errors.
... not all parse errors are re
ported even though all the re
ported errors are parse errors according to the html specification, not all parse errors are re
ported by view source.
... among the errors that don't get re
ported: bytes that are illegal according to the document's encoding aren't marked as errors.
...And 5 more matches
BasicCardRequest - Web APIs
properties basiccardrequest.sup
portednetworks optional secure context an optional array of domstrings representing the card networks that the retailer sup
ports (e.g.
...if the property is missing, it implies that all networks are sup
ported.
... basiccardrequest.sup
portedtypes optional secure context this obsolete property was used to provide an optional array of domstrings representing the card types that the retailer sup
ports (e.g.
...And 5 more matches
readValue() - Web APIs
the bluetoothremotegattdescriptor.readvalue() method returns a promise that resolves to an arraybuffer holding a duplicate of the value property if it is available and sup
ported.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadvalue experimentalchrome full sup
port 57notes full sup
port 57notes notes macos only.
... full sup
port 57notes disabled notes linux and versions of windows earlier than 10.disabled from version 57: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
...And 5 more matches
Basic usage of canvas - Web APIs
fallback content the <canvas> element differs from an <img> tag in that, like for <video>, <audio>, or <picture> elements, it is easy to define some fallback content, to be displayed in older browsers not sup
porting it, like versions of internet explorer earlier than version 9 or textual browsers.
...browsers that don't sup
port <canvas> will ignore the container and render the fallback content inside it.
... browsers that do sup
port <canvas> will ignore the content inside the container, and just render the canvas normally.
...And 5 more matches
Channel Messaging API - Web APIs
the channel messaging api allows two separate scripts running in different browsing contexts attached to the same document (e.g., two iframes, or the main document and an iframe, two documents via a sharedworker, or two workers) to communicate directly, passing messages between one another through two-way channels (or pipes) with a
port at each end.
...once created, the two
ports of the channel can be accessed through the messagechannel.
port1 and messagechannel.
port2 properties (which both return message
port objects.) the app that created the channel uses
port1, and the app at the other end of the
port uses
port2 — you send a message to
port2, and transfer the
port over to the other browsing context using window.postmessage along with two arguments (the message to send, and the object to transfer ownership of, in this case the
port itself.) when these transferable objects are transferred, they are 'neutered' on the previous context — the one they previously belonged to.
... for instance a
port, when is sent, cannot be used anymore by the original context.
...And 5 more matches
FileSystemFileEntry - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemfileentrychrome full sup
port 8alternate name full sup
port 8alternate name alternate name uses the non-standard name: fileentryedge full sup
port 79prefixed full sup
port 79prefixed prefixed implemented with the vendor prefix: webkitfirefox full sup...
...
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full sup
port ≤37alternate name full sup
port ≤37alternate name alternate name uses the non-standard name: fileentrychrome android full sup
port 18alternate name full sup
port 18alternate name alternate name uses the non-standard name: fileentryfirefox android full sup
port 50opera android no sup
port ...
... nosafari ios full sup
port 11.3samsung internet android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitcreatewriter deprecatednon-standardchrome full sup
port 8edge full sup
port 79firefox no sup
port 50 — 52notes no sup
port 50 — 52notes notes while the createwriter() method existed, it immediately called errorcallback with the ns_error_dom_security_err error.ie no sup
port noopera no sup
port ...
...And 5 more matches
FileSystemSync - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemsync non-standardchrome full sup
port 13prefixed full sup
port 13prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port ≤79prefixed full sup
port ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox no sup
port ...
... noie no sup
port noopera full sup
port 15prefixed full sup
port 15prefixed prefixed implemented with the vendor prefix: webkitsafari full sup
port 6prefixed full sup
port 6prefixed prefixed implemented with the vendor prefix: webkitwebview android full sup
port ≤37prefixed full sup
port ≤37prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 18prefixed full suppo...
...rt 18prefixed prefixed implemented with the vendor prefix: webkitfirefox android no sup
port noopera android full sup
port 14prefixed full sup
port 14prefixed prefixed implemented with the vendor prefix: webkitsafari ios full sup
port 6prefixed full sup
port 6prefixed prefixed implemented with the vendor prefix: webkitsamsung internet android full sup
port 1.0prefixed full sup
port 1.0prefixed prefixed implemented with the vendor prefix: webkitname non-standar...
...And 5 more matches
GamepadEvent - Web APIs
working draft initial definition browser compatibility desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgamepadeventchrome full sup
port 35 full sup
port 35 no sup
port 21 — 34prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port ≤18firefox full sup
port 29 full sup
port 29 ...
... no sup
port 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).
... to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 22 full sup
port 22 no sup
port 15 — 21prefixed prefixed implemented with the vendor prefix: webkitsafari full sup
port 10.1webview android no sup
port nochrome android full sup
port yesfirefox android full sup
port 32opera android full sup
port 22 full sup
port 22 no sup
port...
...And 5 more matches
GestureEvent - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgestureevent non-standardchrome no sup
port noedge no sup
port nofirefox no sup
port noie no sup
port noopera no sup
port nosafari full sup
port 9webview android no sup
port ...
... nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios full sup
port 2samsung internet android no sup
port nogestureevent() constructor non-standardchrome no sup
port noedge no sup
port nofirefox no sup
port noie no sup
port noopera no sup
port nosafari full sup
port ...
... 9webview android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios full sup
port 2samsung internet android no sup
port noinitgestureevent non-standardchrome no sup
port noedge no sup
port nofirefox no sup
port noie no sup
port noopera no sup
port ...
...And 5 more matches
IDBCursorWithValue - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbcursorwithvaluechrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitvaluechrome ...
...And 5 more matches
IDBTransaction.oncomplete - Web APIs
as of firefox 40, indexeddb transactions have relaxed durability guarantees to increase performance (see bug 1112702), which is the same behaviour as other indexeddb-sup
porting browsers.
...note also the functions attached to transaction event handlers to re
port on the outcome of the transaction opening in the event of success or failure.
... note the transaction.oncomplete = function(event) { }; block, which re
ports back when the transaction was successful.
...And 5 more matches
Basic concepts - Web APIs
so keep the following im
portant concepts in mind: indexeddb databases store key-value pairs.
...this is quite im
portant, as error events abort whatever transactions they're running in, unless they are cancelled.
...this im
portant and fundamental difference affects the way you design and build your applications.
...And 5 more matches
PaymentRequest.canMakePayment() - Web APIs
the paymentrequest method canmakepayment() determines whether or not the request is configured in a way that is compatible with at least one payment method sup
ported by the user agent.
...}) canpay = await paymentrequest.canmakepayment(); returns a promise to a boolean that resolves to true if the user agent sup
ports any of the payment methods supplied when instantiating the request using the paymentrequest constructor.
... async function initpaymentrquest() { const details = { total: { label: "total", amount: { currency: "usd", value: "0.00", }, }, }; const sup
portsapplepay = new paymentrequest( [{ sup
portedmethods: "https://apple.com/apple-pay" }], details ).canmakepayment(); // sup
ports apple pay?
...And 5 more matches
Payment processing concepts - Web APIs
currently, apple pay is only sup
ported by safari.
...this is currently sup
ported only by chrome and chromium-based browsers.
... functions of a payment handler a user agent may provide built-in sup
port for certain types of payments.
...And 5 more matches
PerformanceLongTaskTiming - Web APIs
the performancelongtasktiming interface of the the long tasks api re
ports instances of long tasks.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetperformancelongtasktiming experimentalchrome full sup
port 58edge full sup
port ≤79firefox no sup
port nonotes no sup
port nonotes notes see bug 1348405.ie ?
... opera full sup
port yessafari ?
...And 5 more matches
RTCRtpSender - Web APIs
if null, the track and/or the connection doesn't sup
port dtmf.
... only audio tracks can sup
port dtmf.
... rtcrtpsender.trans
port read only the rtcdtlstrans
port over which the sender is exchanging the rtp and rtcp packets used to manage transmission of media and control data.
...And 5 more matches
Screen Orientation API - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetscreenorientationchrome full sup
port 38edge full sup
port 79firefox full sup
port 43ie no sup
port noopera full sup
port 25safari no sup
port nowebview android full suppor...
...t 38chrome android full sup
port 38firefox android full sup
port 43opera android full sup
port 25safari ios no sup
port nosamsung internet android full sup
port 3.0anglechrome full sup
port 38edge full sup
port 79firefox full sup
port 43ie no sup
port noopera full sup
port 25safari no sup
port ...
... nowebview android full sup
port 38chrome android full sup
port 38firefox android full sup
port 43opera android full sup
port 25safari ios no sup
port nosamsung internet android full sup
port 3.0lockchrome full sup
port 38edge full sup
port 79firefox full sup
port 43ie no sup
port noopera full sup
port 25safari ...
...And 5 more matches
Touch events - Web APIs
to provide quality sup
port for touch-based user interfaces, touch events offer the ability to interpret finger (or stylus) activity on touch screens or trackpads.
... the touch events interfaces are relatively low-level apis that can be used to sup
port application-specific multi-touch interactions such as a two-finger gesture.
... touch events are similar to mouse events except they sup
port simultaneous touches and at different locations on the touch surface.
...And 5 more matches
Using the User Timing API - Web APIs
pull requests, enhancement requests and bug re
ports are welcome.
... function create_marks(ev) { if (performance.mark === undefined) { log("create marks: performance.mark not sup
ported", 0); return; } else { log("create marks", 0); // create several performance marks including two with the same name performance.mark("mark-1"); do_work(50000); performance.mark("mark-2"); do_work(50000); performance.mark("mark-2"); var marks = ["mark-1", "mark-2", "mark-2"]; for (var i=0; i < marks.length; i++) log("...
... function display_marks(ev) { if (performance.getentries === undefined) { log("display marks: performance.getentries not sup
ported", 0); return; } log("display marks", 0); // display each mark using getentries() var entries = performance.getentries(); var j=0; for (var i=0; i < entries.length; i++) { if (entries[i].entrytype == "mark") { if (j == 0) { log("= getentries()", 0); j++ } log("...
...And 5 more matches
Compressed texture formats - Web APIs
if sup
ported, textures can be stored in a compressed format in video memory.
... as compressed textures require hardware sup
port, therefore no specific formats are required by webgl; instead, a context can make different formats available, depending on hardware sup
port.
... this site shows which formats are sup
ported in the used browser.
...And 5 more matches
ARIA - Accessibility
sup
port like any other web technology, there are varying degrees of sup
port for aria.
... sup
port is based on the operating system and browser being used, as well as the kind of assistive technology interfacing with it.
...older software versions may not sup
port certain aria roles, have only partial sup
port, or misre
port its functionality.
...And 5 more matches
CSS values and units - CSS: Cascading Style Sheets
a fourth value of revert was added in the cascade level 4 specification, but it does not currently have good browser sup
port.
...for example, em is relative to the font size on the element and vh is relative to the view
port height.
... vw 1% of view
port's width.
...And 5 more matches
animation-delay - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetanimation-delaychrome full sup
port 43 full sup
port 43 full sup
port 3prefixed prefixed implemented with the vendor prefix: -webkit-edge full sup
port 12firefox full sup
port 16notes full sup
port ...
... 16notes notes before firefox 57, firefox does not repaint elements outside the view
port that are animated into the view
port with a delay.
... full sup
port 49prefixed prefixed implemented with the vendor prefix: -webkit- full sup
port 44prefixed disabled prefixed implemented with the vendor prefix: -webkit-disabled from version 44: this feature is behind the layout.css.prefixes.webkit preference (needs to be set to true).
...And 5 more matches
box-direction - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbox-direction deprecatednon-standardchrome full sup
port 1prefixed full sup
port 1prefixed prefixed implemented with the vendor prefix: -webkit-edge full sup
port 12prefixed full sup
port 12prefixed prefixed implemented with the vendor prefix: -webkit-firefox full sup
port ...
... 1prefixed full sup
port 1prefixed prefixed implemented with the vendor prefix: -moz- full sup
port 49prefixed prefixed implemented with the vendor prefix: -webkit- full sup
port 48prefixed disabled prefixed implemented with the vendor prefix: -webkit-disabled from version 48: this feature is behind the layout.css.prefixes.webkit preference (needs to be set to true).
... to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 15prefixed full sup
port 15prefixed prefixed implemented with the vendor prefix: -webkit-safari full sup
port 3prefixed full sup
port 3prefixed prefixed implemented with the vendor prefix: -webkit- no sup
port 1.1 — 3prefixed prefixed implemented with the vendor prefix: -khtml-webview android full sup
port ≤37prefixed full sup
port ≤37prefixed prefixed implemented with...
...And 5 more matches
image() - CSS: Cascading Style Sheets
the image() css function defines an <image> in a similar fashion to the <url> function, but with added functionality including specifying the image's directionality, specifying fallback images for when the preferred image is not sup
ported, displaying just a part of that image defined by a media fragment, and specifying a solid color as a fallback in case none of the specified images are able to be rendered.
... coloroptional a color, specifying a solid background color to use as a fallback if no image-src is found, sup
ported, or declared.
...the syntax looks like so: background-image: image('myimage.webp#xywh=0,20,40,60'); the background image of the element will be the
portion of the image myimage.webp that starts at the coordinate 0px, 20px (the top left hand corner) and is 40px wide and 60px tall.
...And 5 more matches
Index - Developer guides
5 wai aria live regions/api sup
port ajax, accessibility firefox 3 contains im
portant improvements to the way the mozilla engine exposes live changes in a document.
...currently, to sup
port all browsers we need to specify two formats, although with the adoption of mp3 and mp4 formats in firefox and opera, this is changing fast.
...tml5, media, events this article provides: a basic guide to creating a cross-browser html5 audio player with all the associated attributes, properties, and events explained a guide to custom controls created using the media api 10 live streaming web audio and video guide, adaptive streaming live streaming technology is often employed to relay live events such as s
ports, concerts and more generally tv and radio programmes that are output live.
...And 5 more matches
Applying color to HTML elements using CSS - HTML: Hypertext Markup Language
other ways to use color css isn't the only web technology that sup
ports color.
... there are graphics technologies that are available on the web which also sup
port color.
...the value can be specified in any <angle> unit sup
ported by css, including degrees (deg), radians (rad), gradians (grad), or turns (turn).
...And 5 more matches
<iframe>: The Inline Frame element - HTML: Hypertext Markup Language
im
portance the download priority of the resource in the <iframe>'s src attribute.
... loading indicates how the browser should load the iframe: eager: load the iframe immediately, regardless if it is outside the visible view
port (this is the default value).
... lazy: defer loading of the iframe until it reaches a calculated distance from the view
port, as defined by the browser.
...And 5 more matches
<input type="radio"> - HTML: Hypertext Markup Language
note: checkboxes are similar to radio buttons, but with an im
portant distinction: radio buttons are designed for selecting one value out of a set, whereas checkboxes let you turn individual values on and off.
... events change and input sup
ported common attributes checked and value idl attributes checked and value methods select() value the value attribute is a domstring containing the radio button's value.
... note: if no radio button is selected when the form is submitted, the radio group is not included in the submitted form data at all, since there is no value to re
port.
...And 5 more matches
Cross-Origin Resource Sharing (CORS) - HTTP
a web application executes a cross-origin http request when it requests a resource that has a different origin (domain, protocol, or
port) from its own.
... the cors mechanism sup
ports secure cross-origin requests and data transfers between browsers and servers.
...additionally, for http request methods that can cause side-effects on server data (in particular, http methods other than get, or post with certain mime types), the specification mandates that browsers "preflight" the request, soliciting sup
ported methods from the server with the http options request method, and then, upon "approval" from the server, sending the actual request.
...And 5 more matches
Configuring servers for Ogg media - HTTP
handle http 1.1 byte range requests correctly in order to sup
port seeking and playing back regions of the media that aren't yet downloaded, gecko uses http 1.1 byte-range requests to retrieve the media from the seek target position.
...it must return 206: partial content to all byte range requests; otherwise, browsers can't be sure you actually sup
port byte range requests.
... configuration for older firefox versions serve x-content-duration headers note: as of firefox 41, the x-content-duration header is no longer sup
ported.
...And 5 more matches
CSP: style-src - HTTP
syntax one or more sources can be allowed for the style-src policy: content-security-policy: style-src <source>; content-security-policy: style-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 5 more matches
Link prefetching FAQ - HTTP
however, if there is sufficient interest, we may expand link prefetching sup
port to include prefetching <a> tags, which include a relation type of next or prefetch in the future.
...when the user visits a prefetched document for real, the remaining
portion of the document will be fetched using a http byte-range request.
...other protocols (such as ftp) do not provide rich enough sup
port for client side caching.
...And 5 more matches
Details of the object model - JavaScript
for example, assume the employee class includes only the name and dept properties, and manager is a subclass of employee that adds the re
ports property.
... in this case, an instance of the manager class would have all three properties: name, dept, and re
ports.
...next, you define the manager constructor function, calling the employee constructor and specifying the re
ports property.
...And 5 more matches
Date - JavaScript
note: it's im
portant to keep in mind that while the time value at the heart of a date object is utc, the basic methods to fetch the date and time or its components all work in the local (i.e.
... date.prototype.todatestring() returns the "date"
portion of the date as a human-readable string like 'thu apr 12 2018'.
... date.prototype.tolocaledatestring() returns a string with a locality sensitive representation of the date
portion of this date based on system settings.
...And 5 more matches
WebAssembly.Memory() constructor - JavaScript
var memory = new webassembly.memory({initial:10, maximum:100}); the second way to get a webassembly.memory object is to have it ex
ported by a webassembly module.
... the following example (see memory.html on github, and view it live also) fetches and instantiates the loaded memory.wasm byte code using the webassembly.instantiatestreaming() method, while im
porting the memory created in the line above.
... it then stores some values in that memory, then ex
ports a function and uses it to sum some values.
...And 5 more matches
Critical rendering path - Web Performance
understanding and optimizing the critical rendering path is im
portant to ensure reflows and repaints can happen at 60 frames per second, to ensure performant user interactions and avoid jank.
...some requests are blocking, which means the parsing of the rest of the html is halted until the im
ported asset is handled.
...unless otherwise defined, the body has a width of 100%, meaning it will be 100% of the width of the view
port.
...And 5 more matches
Optimizing startup performance - Web Performance
this article offers tips and suggestions to help you achieve that goal, both when writing a new app and when
porting an app from another platform to the web.
...instead, we're going to look at a more im
portant issue when building web apps: starting up as asynchronously as possible.
... why is it im
portant to be asynchronous?
...And 5 more matches
Introduction to progressive web apps - Progressive web apps (PWAs)
progressive enhancement supp
port modern web apps can be developed to provide an excellent experience to fully capable browsers, and an acceptable (although not quite as shiny) experience to less capable browsers.
... responsiveness responsive web apps use technologies like media queries and view
port to make sure that their uis will fit any form factor: desktop, mobile, tablet, or whatever comes next.
... browser sup
port as mentioned before, pwas don't depend on a single api, but rather using various technologies to achieve the goal of delivering the best web experience possible.
...And 5 more matches
Interacting with page scripts - Archive of obsolete content
also, unsafewindow isn't a sup
ported api, so it could be removed or changed in a future version of the sdk.
... to expose a function defined in a content script to a page script so the page script can call it, use ex
portfunction().
..."main.js" opens the local file "page.html" and attaches a content script to it: // main.js var tabs = require("sdk/tabs"); var self = require("sdk/self"); tabs.open({ url: self.data.url("page.html"), onready: attachscript }); function attachscript(tab) { tab.attach({ contentscriptfile: self.data.url("content-script.js") }); } the content script defines a function greetme() and ex
ports it to the page script context.
...And 4 more matches
page-worker - Archive of obsolete content
usage the module ex
ports a constructor function page, which constructs a new page worker.
...in this example we fetch the first paragraph of a page from wikipedia, then the first paragraph of a different page: var getfirstparagraph = "var paras = document.getelementsbytagname('p');" + "console.log(paras[0].textcontent);" + "self.
port.emit('loaded');" pageworker = require("sdk/page-worker").page({ contentscript: getfirstparagraph, contenturl: "http://en.wikipedia.org/wiki/chalk" }); pageworker.
port.on("loaded", function() { pageworker.contenturl = "http://en.wikipedia.org/wiki/cheese" }); scripting page content to access the page's dom you need to attach a script to it.
...you can communicate with the script using either the postmessage() api or (preferably, usually) the
port api.
...And 4 more matches
ui/frame - Archive of obsolete content
usage this module ex
ports the frame constructor, which can be used to create frame components.
...this will send the message to message is all view
port documents (one per browser window) of the frame: var { frame } = require("sdk/ui/frame"); var { toolbar } = require("sdk/ui/toolbar"); var frame = new frame({ url: "./frame.html" }); var toolbar = toolbar({ name: "my-toolbar", title: "my toolbar", items: [frame] }); frame.postmessage("ping", frame.url); frame scripts can receive these messages using window.addeventlistener(): functi...
...frame sup
ports the following events: attach, detach, load, ready, and message.
...And 4 more matches
Creating Reusable Modules - Archive of obsolete content
you then im
port and use these modules from other parts of your add-on using the require() statement, in exactly that same way that you im
port core sdk modules like page-mod or panel.
...this makes the design of the add-on easier to understand and provides some encapsulation as each module will ex
port only what it chooses to, so you can change the internals of the module without breaking its users.
... } return path; } hash function firefox has built-in sup
port for hash functions, exposed via the nsicryptohash xpcom interface the documentation page for that interface includes an example of calculating an md5 hash of a file's contents, given its path.
...And 4 more matches
Install Manifests - Archive of obsolete content
the install manifest must specify at least one of these objects, and may specify more if the add-on targets multiple applications that sup
port the add-on manager (e.g.
... firefox 2 and previous sup
ported a value of 16 to represent plug-ins.
...accepted values are: 1 opens optionsurl in a dialog box 2 options are displayed inside the add-on manager 3 opens optionsurl in a new tab (if the application sup
ports that), or a dialog box optionstype defaults to 1 if there is an optionsurl included in install.rdf or 2 if there is no optionsurl and the file options.xul exists in the root of the add-on.
...And 4 more matches
Appendix: What you should know about open-source software licenses - Archive of obsolete content
what is im
portant to us now is the following three rights: open source rights: a user can create and distribute copies of the source code; a user can obtain a program’s source code; a user can modify the source code.
... points to understand about oss licenses i’ll explain some im
portant aspects of oss licensing that you should be aware of.
...in brief, it goes like this: best not to even try: creating a new license for your own use → sup
port is a nightmare.
...And 4 more matches
Appendix F: Monitoring DOM changes - Archive of obsolete content
their main disadvantage is that, due to their recent advent, sup
port is currently limited to firefox 14+ and chrome 18.
... while they are still viable for add-ons targeting only the latest firefox, those wishing to sup
port older browsers will need to provide fallbacks.
... it is im
portant to note, however, that this method can have severe performance implications for certain events, namely mouseover, mouseout, and friends, which are fired very often while the mouse is moving.
...And 4 more matches
Observer Notifications - Archive of obsolete content
getservice(components.interfaces.nsiobserverservice); let subject = components.classes["@mozilla.org/sup
ports-string;1"].
... createinstance(components.interfaces.nsisup
portsstring); // assign some text to data attribute subject.data = "this is a test."; // notify all registered observers observerservice.notifyobservers( subject, "xulschoolhello-test-topic", "hello"); } in the notifytest method, the notifyobservers call is used to notify all registered observers about the notification topic "xulschoolhello-test-topic".
... the input parameter is an instance of nsisup
portsstring with some text and the last input parameter is a string "hello".
...And 4 more matches
Style System Overview - Archive of obsolete content
s & rules nsistyleruleprocessor and nsistylesheet describe in c++ what a css stylesheet can do nsistylerule describes in c++ what a css style rule can do main implementations are for css, but we have other implementations in c++ that: do what css can't do do things faster than css would css style sheets at basic level, sheet is collection of rules other special things: @im
port, @media, @namespace, etc.
... 1 matching rule: use value 2+ matching rules: cascade decides which wins: sort by origin (ua, user, author) & weight (!im
portant), then specificity of selector, then order example document source <doc> <title>a few quotes</title> <para class="emph"> franklin said that <quote>"a penny saved is a penny earned."</quote> </para> <para> fdr said <quote>"we have nothing to fear but <span class="emph">fear itself.</span>"</quote> </para> </doc> example docu...
...xample stylesheet doc { display: block; text-indent: 1em; } title { display: block; font-size: 3em; } para { display: block; } [class="emph"] { font-style: italic; } css style rule representation each declaration block is represented by an nscssdeclaration an cssstyleruleimpl contains each selector associated with that declaration, and the declaration, and is the most im
portant implementation of nsistylerule.
...And 4 more matches
Enabling Experimental Jetpack Features - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
...in python, you can call from __future__ im
port foo which adds the functionality that foo yields to the script.
... in jetpack, we propse adding a new function to the base namespace called im
portfromfuture.
...And 4 more matches
Clipboard Test - Archive of obsolete content
lay:inline-block; width:100px; vertical-align:top;font-weight:bold;} .method>.params>.param>.type:before{content: "type "; color: #888; font-weight:normal;} .method>.params>.param>.default{display:inline-block; width:100px; vertical-align:top;font-weight:bold;} .method>.params>.param>.default:before{content: "default "; color: #888;font-weight:normal;} ]]></style> clipboard jetpack's clipboard sup
port api provides a standardized way for features to access the clipboard.
...this api currently lives in the future and must be im
ported for use.
... jetpack.future.im
port("clipboard"); methods set(contentstringflavorstring)writes data from jetpack to the clipboard.
...And 4 more matches
Clipboard - Archive of obsolete content
jetpack's clipboard sup
port api provides a standardized way for features to access the clipboard.
...this api currently lives in the future and must be im
ported for use.
... jetpack.future.im
port("clipboard"); methods set(contentstringflavorstring)writes data from jetpack to the clipboard.
...And 4 more matches
Clipboard - Archive of obsolete content
jetpack's clipboard sup
port api provides a standardized way for features to access the clipboard.
...the api currently lives in the future and must be im
ported for use.
... jetpack.future.im
port("clipboard"); methods set(contentstringflavorstring) stringwrites data from jetpack to the clipboard.
...And 4 more matches
Static Analysis for Windows Code under Linux - Archive of obsolete content
this document will describe how to run mozilla static check for windows code under linux platform by creating a cross-compiler with dehydra sup
port for mingw.
... build gcc corss-compiler with plugin sup
port by default gcc does not sup
port plugins.
... now, the gcc source with plugin sup
ports is ready, we should now build a cross compiler from this source.
...And 4 more matches
Elements - Archive of obsolete content
with firefox 3, you can also use a data: url to embed the binding inline: div { -moz-binding: url(data:text/xml;charset=utf-8,%3c%3fxml%20version%3d%221.0%22%3f%3e%0a%3cbindings%20id%3d%22xbltestbindings%22%20xmlns%3d%22http%3a//www.mozilla.org/xbl%22%3e%0a%20%20%3cbinding%20id%3d%22xbltest%22%3e%3ccontent%3epass%3c/content%3e%3c/binding%3e%0a%3c/bindings%3e%0a); } since data: urls don't sup
port fragment identifiers, the first binding found in the embedded xml is used instead.
...in addition, data: urls are only sup
ported from chrome code (in other words, from the application or an extension).
...if sup
ported, in strongly typed languages the bound element can be referenced not only as any of the interfaces that the element might already sup
port (e.g., htmlelement) but also as any of the interfaces described by this attribute.
...And 4 more matches
Introduction to XUL - Archive of obsolete content
xml documents sup
port the basic dom level 1 core apis.
... xul documents sup
port an extended set, much as html documents sup
port dom level 1 html apis.
... mozilla's xul content models also sup
port nifty features like local/remote merging; see the xul and rdf document for details.
...And 4 more matches
Commands - Archive of obsolete content
in addition, text fields and other widgets have a number of commands which they already sup
port that you can invoke.
...a controller is expected to implement four methods, which are listed below: sup
portscommand (command) this method should return true if the controller sup
ports a command.
...a single controller may sup
port multiple commands.
...And 4 more matches
XUL accessibility tool - Archive of obsolete content
it is designed to test (insofar as automated testing is possible) the guidelines and requirement for creating accessible xul as set forth in the xul accessibility guidelines, and to re
port on any problems found in tested documents.
... while not meant to be a comprehensive test suite (meaning that passing all included tests does not guarantee that an application is free of accessibility bugs or issues), many of the most common accessibility mistakes will be found and re
ported.
...once the tool window has loaded, select either a local file, web url, or currently open window from the file menu to generate a xul re
port for that document.
...And 4 more matches
Properly Using CSS and JavaScript in XHTML Documents - Archive of obsolete content
this misunderstanding is compounded by the fact that, prior to version 9, microsoft® internet explorer only sup
ports xhtml if it is served with mime media type text/html rather than the recommended application/xhtml+xml.
...this example is sup
ported by netscape 7.x, mozilla, opera 7 and internet explorer 5.5+ which all apply the css rules as expected.
...this example is sup
ported by netscape 7.x, mozilla, and opera 7 but not internet explorer 5.5+ (see talk:properly_using_css_and_javascript_in_xhtml_documents of this ascertation.
...And 4 more matches
XForms Select1 Element - Archive of obsolete content
note, some representations of the select1 element do not sup
port visual grouping.
...possible values are open and closed, default is closed (see #representations section to refer if the attribute is sup
ported for every representation).
... incremental - sup
ported, default value is true properties selection - see corresponding attribute incremental - see corresponding attribute type restrictions the select1 element can be bound to a node containing simple content.
...And 4 more matches
XUL Parser in Python - Archive of obsolete content
v.00001 to celebrate activestate's recent announcement about sup
port for perl and python in mozilla, i have put together this little python script that parses your local xul and builds a list of all the xul elements and their attributes in an html page.
...python's sup
port for xml (and potential with xul) is extensive, and so it's more a matter of choosing an approach and hooking things up than anything else.
...again, you can easily use <tt>ls</tt> instead, as i should have done, and pick up some extra sup
port.
...And 4 more matches
Archive of obsolete content
syntax highliting sup
port for .htaccess files less.
... localizing an extension this article expands upon the previous samples on extension writing by adding localization sup
port to our stock watcher extension.
... updating an extension to sup
port multiple mozilla applications this article shows how to take an existing extension and update it so that it can be used in additional mozilla applications.
...And 4 more matches
Game monetization - Game development
you have to follow the market and do your own research — learning from your mistakes quickly is im
portant.
...instead of risking of having your account closed and all the money blocked try to use the usual, gamedev targeted
portals like leadbolt.
...there are more and more
portals interested in showing your games on their websites.
...And 4 more matches
MDN Web Docs Glossary: Definitions of Web-related terms
ization developer tools dhtml digest digital certificate distributed denial of service dmz dns doctype document directive document environment dom (document object model) domain domain name domain sharding dominator dos attack dtls (datagram trans
port layer security) dtmf (dual-tone multi-frequency signaling) dynamic programming language dynamic typing e ecma ecmascript effective connection type element empty element encapsulation encryption endianness engine entity entity header event ...
... instance internationalization internet intrinsic size ip address ipv4 ipv6 irc iso isp itu j jank java javascript jpeg jquery json k key keyword l latency layout view
port lazy load lgpl ligature local scope local variable locale localization long task loop lossless compression lossy compression ltr (left to right) m main axis main thread markup mathml media media (audio-visual presentation...
... p p2p pac packet page load time page prediction parameter parent object parse parser pdf perceived performance percent-encoding php pixel placeholder names plaintext png polyfill polymorphism pop3
port prefetch preflight request prerender presto primitive privileged privileged code progressive enhancement progressive web apps promise property property (css) property (javascript) protocol prototype prototype-based programming proxy server ...
...And 4 more matches
CSS and JavaScript accessibility best practices - Learn web development
css and javascript don't have the same immediate im
portance for accessibility as html, but they are still able to help or damage accessibility, depending on how they are used.
... to put it another way, it is im
portant that you consider some best practice advice to make sure that your use of css and javascript doesn't ruin the accessibility of your documents.
...for more on emphasis, see emphasis and im
portance.
...And 4 more matches
Debugging CSS - Learn web development
css validator html validator is the property and value sup
ported by the browser you are testing in?
...if the property or value you are using is not sup
ported by the browser you are testing in then nothing will break, but that css won't be applied.
... devtools will generally highlight unsup
ported properties and values in some way.
...And 4 more matches
How CSS is structured - Learn web development
im
portant: css properties and values are case-sensitive.
...write css rules that apply styling to different html elements: font-size width background-color color border im
portant: if a property is unknown, or if a value is not valid for a given property, the declaration is processed as invalid.
... im
portant: in css (and other web standards), it has been agreed that us spelling is the standard where there is language variation or uncertainty.
...And 4 more matches
What is CSS? - Learn web development
as a newcomer to css, it is likely that you will find the css specs overwhelming — they are intended for engineers to use to implement sup
port for the features in user agents, not for web developers to read to understand css.
...it is however worth knowing that they exist, understanding the relationship between the css you are using, browser sup
port (see below), and the specs.
... browser sup
port once css has been specified then it is only useful for us in developing web pages if one or more browsers have implemented it.
...And 4 more matches
How can we design for all types of users? - Learn web development
this article lists the most im
portant quick-wins for universal design.
... absolute units absolute units are not pro
portionally calculated but refer to a size set in stone, so to speak, and are expressed most of the time in pixels (px).
... relative units also called pro
portional units, relative units are computed relative to a parent element.
...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 sup
port the -webkit- prefixed version (-webkit-appearance).
... if you view these checkboxes in a browser that doesn't sup
port appearance, your custom design will be lost, but they will still look like checkboxes and be usable.
... note: while internet explorer doesn't sup
port any version of appearance, the input[type=checkbox]::-ms-check enables the targeting of checkboxes in ie only.
...And 4 more matches
Your first form - Learn web development
from a user experience (ux) point of view, it's im
portant to remember that the bigger your form, the more you risk frustrating people and losing users.
... designing forms is an im
portant step when you are building a site or application.
...it's a container element like a <section> or <footer> element, but specifically for containing forms; it also sup
ports some specific attributes to configure the way the form behaves.
...And 4 more matches
Manipulating documents - Learn web development
objective: to gain familiarity with the core dom apis, and the other apis commonly associated with dom and document manipulation the im
portant parts of a web browser web browsers are very complicated pieces of software with a lot of moving parts, many of which can't be controlled or manipulated by a web developer using javascript.
...in our current case, we just use node.removechild(), like this: sect.removechild(linkpara); when you want to remove a node based only on a reference to itself, which is fairly common, you can use childnode.remove(): linkpara.remove(); this method is not sup
ported in older browsers.
... first of all, let's grab a reference to the div, and then grab the width and height of the view
port (the inner window, where your document is displayed) and store them in variables — these two values are handily contained in the window.innerwidth and window.innerheight properties.
...And 4 more matches
Starting our Svelte Todo list app - Learn web development
create a file named src/components/todos.svelte with the following content: <h1>svelte to-do list</h1> change the title element in public/index.html to contain the text svelte to-do list: <title>svelte to-do list</title> open src/app.svelte and replace its contents with the following: <script> im
port todos from './components/todos.svelte' </script> <todos /> in development mode, svelte will issue a warning in the browser console when specifying a prop that doesn't exist in the component; in this case we have a name prop being specified when we instantiate the app component inside src/main.js, which isn't used inside app.
...to get rid of this, remove the name prop from src/main.js; it should now look like so: im
port app from './app.svelte' const app = new app({ target: document.body }) ex
port default app now if you check your testing server url you'll see our todos.svelte component being rendered: adding static markup for the moment we will start with a static markup representation of our app, so you can see what it will look like.
... svelte accessibility sup
port svelte has a special emphasis on accessibility.
...And 4 more matches
Getting started with Vue - Learn web development
most im
portantly, your <script> tag needs to have a default ex
ported js object.
... in the case of app.vue, our default ex
port sets the name of the component to app and registers the helloworld component by adding it into the components property.
...locally registered components can only be used inside the components that register them, so you need to im
port and register them in every component file that uses them.
...And 4 more matches
Adding a new todo form: Vue events, methods, and models - Learn web development
add a blank <template> and a <script> tag like before: <template></template> <script> ex
port default {}; </script> let's add in an html form that lets you enter a new todo item and submit it into the app.
...go back to app.vue and add the following im
port statement just below the previous one, inside your <script> element: im
port todoform from './components/todoform'; you also need to register the new component in your app component — update the components property of the component object so that it looks like this: components: { todoitem, todoform } finally for this section, render your todoform component inside your app b...
... add this like so: ex
port default { methods: { onsubmit() { console.log('form submitted') } } } next we need to bind the method to our <form> element's submit event handler.
...And 4 more matches
Browser chrome tests
it currently allows you to run javascript code in the same scope as the main firefox browser window and re
port results using the same functions as the mochitest test framework.
... 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 re
port the results in the ui and to stdout.
... the comparison functions are identical to those sup
ported by mochitests, see how the comparison functions work in the mochitest documentation for more details.
...And 4 more matches
Command line options
-migration start with im
port wizard.
... note: on mac os x specifying a relative path is not sup
ported anymore from firefox 4.0 and up due to a regression, see bug 673955.
... -start-debugger-server
port firefox only.
...And 4 more matches
Message manager overview
its most im
portant functions and attributes are: childcount : contains the number of children (typically, browser windows) getchildat() : get the child at the given index loadframescript() : load a frame script into every tab in the browser broadcastasyncmessage() : send a message to frame scripts addmessagelistener() : start listening to a specific message from all frame scripts re...
... its most im
portant functions and attributes are: childcount : contains the number of children (typically, browser tabs) getchildat() : get the child at the given index loadframescript() : load a frame script into every tab in this window broadcastasyncmessage() : send a message to all frame scripts in this window addmessagelistener() : start listening to a specific message from frame scr...
... its most im
portant functions are: loadframescript() : load a frame script into this browser frame (tab) sendasyncmessage() : send a message to all frame scripts in this browser frame addmessagelistener() : start listening to a specific message from frame scripts removemessagelistener() : stop listening to a specific message interfaces nsiprocesschecker nsiframescript...
...And 4 more matches
How to implement a custom autocomplete search component
the xul textbox element sup
ports an autocomplete mechanism that is used to create a textbox with a popup containing a list of possible completions for what the user has started to type.
... thunderbird 2.x and seamonkey 1.1.x sup
port the toolkit interfaces, although they do not use the same autocomplete widget.
...the toolkit mechanism has built-in sup
port for several autocomplete sources, including: history: search the browser's url history (firefox: 1.0+; seamonkey: 1.1+) form-history: search the values that the user has entered into form fields.
...And 4 more matches
Index
3 bootstrapping a new locale localization, mercurial, translate, bit bucket (see also https://developer.mozilla.org/en/create_a_new_localization) 4 encodings for localization files internationalization, localization when creating a localization for mozilla products, it’s im
portant to be aware of the encoding of the files that you generate.
... 10 localization notes guide, internationalization, localization, mozilla localizers usually work on the localizable files without the context of the source files including the localized strings; it is im
portant to add comments to the localizable files themselves, too.
...most translation tools sup
port the xliff standard, making localizing the xliff files for firefox for ios easy to do using translation tools.
...And 4 more matches
Performance
documentation re
porting a performance problem a user friendly guide to re
porting a performance problem.
... memory profiling and leak detection tools the developer tools "memory" panel the memory panel in the devtools sup
ports taking heap snapshots, diffing them, computing dominator trees to surface "heavy retainers", and recording allocation stacks.
...it also lets you do other memory-related operations like trigger gc and cc, dump gc & cc logs, and dump dmd re
ports.
...And 4 more matches
L20n Javascript API
ctx.registerlocalenegotiator(negotiator: function) register a function which will be used to negotiate the locales sup
ported by the context instance.
... the final list of locales sup
ported by the context instance will be negotiated asynchronously by the negotiator registered by registerlocalenegotiator.
... ctx.sup
portedlocales a read-only property which holds the current fallback chain of locales which was negotiated between all the available locales, the default locale and the user's preferred locales.
...And 4 more matches
Creating a Cookie Log
if you are reading this, you have probably been directed here from a bug re
port.
... type "ex
port nspr_log_file=~/cookie-log.txt" and press enter.
... type "ex
port nspr_log_modules=cookie:4" and press enter.
...And 4 more matches
NSS 3.14.1 release notes
new functions in ocspt.h cert_createocspsingleresponsegood cert_createocspsingleresponseunknown cert_createocspsingleresponserevoked cert_createencodedocspsuccessresponse cert_createencodedocsperrorresponse new types in ocspt.h certocspresponderidtype notable changes in nss 3.14.1 windows ce sup
port has been removed from the code base.
... bug 357025 - nss 3.14 added sup
port for tokens that make use of cka_always_authenticate.
... bug 802429 - in previous versions of nss, the "cipherorder" slot configuration flag was not respected, causing the most recently added slot that sup
ported the requested pkcs#11 mechanism to be used instead.
...And 4 more matches
NSS 3.30 release notes
nss 3.30 requires netscape
portable runtime (nspr); 4.13.1 or newer.
...applications that need to distinguish them from other other root cas, may use the ex
ported function pk11_hasattributeset.
... sup
port for callback functions that can be used to monitor ssl/tls alerts that are sent or received.
...And 4 more matches
NSS sources building testing
the subdirectories dbm, security/dbm, security/coreconf, security/nss were part of the nss sources.) the nss directory contains the following im
portant subdirectories: nss/coreconf contains knowledge for cross platform building.
... it is im
portant to mention the difference between internal nss code and ex
ported interfaces.
... software that would like to use the nss library must use only the ex
ported interfaces.
...And 4 more matches
Notes on TLS - SSL 3.0 Intolerant Servers
problem a number of netscape 6.x/7.x and mozilla users have re
ported that some secure sites -- typically sites featuring online transactions or online banking over the https protocol -- do not display any content at all.
... for up-to-date information, you can read a bugzilla bug re
port which keeps track of this problem with mozilla-based browsers.
... servers currently known to exhibit this intolerant behavior as of this writing, this problem has been re
ported for the following servers: (wherever there is an upgraded version which fixes the problem, it is indicated by an asterisked remark in the parentheses.
...And 4 more matches
NSS environment variables
nss_shared_db 3.12 nss_disable_arena_free_list string (any non-empty value) define this variable to get accurate leak allocation stacks when using leak re
porting software.
...necessary on some platforms to get correct function names when using leak re
porting software.
... 3.12.5 nss_hash_alg_sup
port string specifies agorithms allowed to be used in certain applications, such as in signatures on certificates and crls.
...And 4 more matches
NSS Tools ssltap
description the ssltap command opens a socket on a rendezvous
port and waits for an incoming connection from the client side.
... once this connection arrives, the tool makes another connection to the specified host name and
port on the server side.
... syntax to run the ssl debugging tool, type this command in a command shell: ssltap [-vhfsxl] [-p
port] hostname:
port options the command does not require any options other than hostname:
port, but you normally use them to control the connection interception and output.
...And 4 more matches
Hacking Tips
$ gdb --args js […] (gdb) b js::re
portoverrecursed (gdb) r js> function f(i) { if (i % 2) f(i + 1); else f(i + 3); } js> f(0) breakpoint 1, js::re
portoverrecursed (maybecx=0xfdca70) at /home/nicolas/mozilla/ionmonkey/js/src/jscntxt.cpp:495 495 if (maybecx) (gdb) call js::dumpbacktrace(maybecx) #0 (nil) typein:2 (0x7fffef1231c0 @ 0) #1 (nil) typein:2 (0x7fffef1231c0 @ 24) #2 (nil) typein:3 ...
... there isn't debug info for the jitted code, you will need to tell gdb that you are looking at arm code: (gdb) set arm force-mode arm or you can wrap the x command in your own command: def xi set arm force-mode arm eval "x/%di %d", $arg0, $arg1 set arm force-mode auto end printing asm.js/wasm generated assembly code (from gdb) set a breakpoint on js::wasm::instance::callex
port (defined in wasminstance.cpp as of november 18th 2016).
... do next in gdb until you reach the definition of the funcptr: // call the per-ex
ported-function trampoline created by generateentry.
...And 4 more matches
SpiderMonkey Internals
interpreter like many
portable interpreters, spidermonkey's interpreter is mainly a single, tremendously long function that steps through the bytecode one instruction at a time, using a switch statement (or faster alternative, depending on the compiler) to jump to the appropriate chunk of code for the current instruction.
...(otherwise, spidermonkey converts primitive values to objects before invoking their methods, per ecma 262-3 §11.2.1.) error handling spidermonkey has two interdependent error-handling systems: javascript exceptions (which are not implemented with, or even compatible with, any kind of native c/c++ exception handling) and error re
porting.
... in general, both functions inside spidermonkey and jsapi callback functions signal errors by calling js_re
porterror or one of its variants, or js_setpendingexception, and returning js_false or null.
...And 4 more matches
JSAPI reference
function js::compilefunction added in spidermonkey 17 js_decompilefunction js_decompilefunctionbody js_compilefunction obsolete since jsapi 36 js_compilefunctionforprincipals obsolete since jsapi 28 js_compileucfunction obsolete since jsapi 36 js_compileucfunctionforprincipals obsolete since jsapi 28 error handling struct jserrorformatstring added in spidermonkey 17 class jserrorre
port class js::autosaveexceptionstate added in spidermonkey 31 enum jsexntype added in spidermonkey 17 js_re
porterror js_re
portwarning js_re
porterrornumber js_re
porterrornumberuc js_re
porterrorflagsandnumber js_re
porterrorflagsandnumberuc js_re
porterrornumberucarray added in spidermonkey 24 js_re
portoutofmemory js_re
portallocationoverflow added in spidermonkey 1.8 js_geterrorre
porter js_s...
...eterrorre
porterobsolete since jsapi 52 js_errorfromexception js_geterrorprototype jsre
port_is_exception jsre
port_is_strict jsre
port_is_warning jsre
port_is_strict_mode_error the following functions allow c/c++ functions to throw and catch javascript exceptions: js::createerror added in spidermonkey 38 js_isexceptionpending js_getpendingexception js_setpendingexception js_clearpendingexception js_throwstopiteration added in spidermonkey 1.8 js_isstopiteration added in spidermonkey 31 typedef jsexceptionstate js_saveexceptionstate js_restoreexceptionstate js_dropexceptionstate these functions translate errors into exceptions and vice versa: js_re
portpendingexception js_errorfromexception js_throwre
portederror obsolete since jsapi 29 values and types typedef ...
...nce jsapi 32 jsval_to_gcthing obsolete since jsapi 32 jsval_to_private obsolete since jsapi 32 a function that behaves like typeof: js_gettypename obsolete since jsapi 34 and functions that behave like the equality operators: js_strictlyequal js_looselyequal js_samevalue memory management these functions act like the standard c malloc family of functions, except that errors are re
ported using the spidermonkey error apis rather than errno.
...And 4 more matches
SpiderMonkey 24
get it here mozilla-esr24 if the download url is outdate you will find it in "firefox extended sup
port release 24" package on hg release platform sup
port spidermonkey 24 is sup
ported on all the platforms where firefox 24 runs.
... (this change was motivated by garbage collector improvements, which lean quite heavily on c++'s sup
port for raii through constructors and destructors.) if you are compiling with microsoft's visual studio, note that the minimum sup
ported version is msvc10/2010: msvc8/9 sup
port has been dropped.
...it is sup
ported on x86, x86_64, and arm architectures.
...And 4 more matches
Setting up the Gecko SDK
the idl directory contains the public idl files ex
ported by the module.
... xpcom ex
ports a number of binaries that should be mentioned at this point.
...as described in the section exceptions in xpcom, exception handling isn't sup
ported across interface boundaries, so setting this option may catch problems during development.
...And 4 more matches
XPCOM Stream Guide
the actual data going in to and coming out of an object isn't usually im
portant to a stream.
... .getoutputstream(); var instream = components.classes["@mozilla.org/io/string-input-stream;1"] .createinstance(components.interfaces.nsistringinputstream); var data = "hello world"; instream.setdata(data, data.length); while (instream.available()) { outstream.writefrom(instream, instream.available()); } note this is an inefficient example: the only im
portant part is how to feed the output stream.
...they can also re
port their current position in the file.
...And 4 more matches
nsIDOMMozNetworkStatsManager
inherits from: nsisup
ports last changed in gecko 18.0 (firefox 18.0 / thunderbird 18.0 / seamonkey 2.15) implemented by: @mozilla.org/networkstatsmanager;1.
...you can test for the presence of the service as follows, for example: if ("moznetworkstats" in navigator) { /* networkstats is available */ } else { alert("i'm sorry, but networkstats services are not sup
ported."); } method overview nsidomdomrequest getsamples(in nsisup
ports network, in jsval start, in jsval end, [optional] in jsval options /* networkstatsgetoptions */); nsidomdomrequest addalarm(in nsisup
ports network, in long threshold, ...
... [optional] in jsval options /* networkstatsalarmoptions */); nsidomdomrequest getallalarms([optional] in nsisup
ports network); nsidomdomrequest removealarms([optional] in long alarmid); nsidomdomrequest clearstats(in nsisup
ports network); nsidomdomrequest clearallstats(); nsidomdomrequest getavailablenetworks(); nsidomdomrequest getavailableservicetypes(); attributes attribute type description samplerate long minimum time in milliseconds between samples stored in the database.
...And 4 more matches
nsIDragService
inherits from: nsisup
ports last changed in gecko 43 (firefox 43 / thunderbird 43 / seamonkey 2.40) note: using this interface directly from add-on code is deprecated.
... nsidragsession getcurrentsession( ) ; void invokedragsession( in nsidomnode adomnode, in nsisup
portsarray atransferables, in nsiscriptableregion aregion, in unsigned long aactiontype ); void invokedragsessionwithimage(in nsidomnode adomnode, in nsisup
portsarray atransferablearray, in nsiscriptableregion aregion, in unsigned long aactiontype, in nsidomnode aimage, in long aimagex, in long aimagey, in nsidomdragevent adragevent, in nsidomdatatransfer adatatransfer); void invoke...
...dragsessionwithselection(in nsiselection aselection, in nsisup
portsarray atransferablearray, in unsigned long aactiontype, in nsidomdragevent adragevent, in nsidomdatatransfer adatatransfer); void startdragsession( ) ; void suppress(); void unsuppress(); constants constant value description dragdrop_action_none 0 no action.
...And 4 more matches
nsIHttpServer
an example : https://github.com/laurentj/slimerjs/blob/master/src/modules/webserver.jsm var ex
ported_symbols = ["create"]; components.utils.im
port("resource://gre/modules/services.jsm"); function create() { var server = components.classes["@mozilla.org/server/jshttp;1"] .createinstance(components.interfaces.nsihttpserver); return { get objectname () { return "webserver"; }, /** * @param integer|string
port port or "host:
port" * @param object opt optional options.
... (not sup
ported) * @param function callback optional callback */ listen: function(
port, opt, callback) { if (arguments.length == 2 && "function" == typeof opt) { callback = opt; } if (callback) { this.registerprefixhandler("/", callback); } let host = "localhost"; if (typeof
port === "string" &&
port.indexof(':') != -1){ [host,
port] =
port.split(':');
port = parseint(
port); server.identity.add('http', host,
port); } server.wrappedjsobject._start(
port, host); return true; }, registerfile: function(path, filepath) { var file = components.classes['@mozi...
...nction(prefix, handlercallback) { server.registerprefixhandler(prefix, function (request, response) { var req = createhttprequest(request); var resp = new httpresponse(response); handlercallback(req, resp); }); }, close: function(){ server.stop(function(){}); }, get
port() { return server.identity.primary
port } } } reference : mozilla-release/netwerk/test/httpserver/nsihttpserver.idl [scriptable, uuid(cea8812e-faa6-4013-9396-f9936cbb74ec)] interface nsihttpserver : nsisup
ports { /** * starts up this server, listening upon the given
port.
...And 4 more matches
nsIMsgMessageService
inherits from: nsisup
ports method overview void copymessage(in string asrcuri, in nsistreamlistener acopylistener, in boolean amovemessage, in nsiurllistener aurllistener, in nsimsgwindow amsgwindow, out nsiuri aurl); [noscript] void copymessages(in nsmsgkeyarrayptr keys, in nsimsgfolder srcfolder, in nsistreamlistener acopylistener, in boolean amovemessage, in nsiurllistener aurllistener, in nsimsgwindow amsgwindow, out nsiuri aurl); void displaymessage(in string amessageuri, in nsisup
ports adisplayconsumer, in nsimsgwindow amsgwindow, in ns...
...iurllistener aurllistener, in string acharsetoverride, out nsiuri aurl); void openattachment(in string acontenttype, in string afilename, in string aurl, in string amessageuri, in nsisup
ports adisplayconsumer, in nsimsgwindow amsgwindow, in nsiurllistener aurllistener); void savemessagetodisk(in string amessageuri, in nsifilespec afile, in boolean ageneratedummyenvelope, in nsiurllistener aurllistener, out nsiuri aurl, in boolean canonicallineending, in nsimsgwindow amsgwindow); void geturlforuri(in string amessageuri, out nsiuri aurl, in nsimsgwindow amsgwindow); void displaymessageforprinting(in string amessageuri, in nsisup
ports adisplayconsumer, in nsimsgwindow amsgwindow, in nsiurllistener aurllistener, out nsiuri aurl); void search(in nsimsgse...
...archsession asearchsession, in nsimsgwindow amsgwindow, in nsimsgfolder amsgfolder, in string asearchuri); nsiuri streammessage(in string amessageuri, in nsisup
ports aconsumer, in nsimsgwindow amsgwindow, in nsiurllistener aurllistener, in boolean aconvertdata, in string aadditionalheader); nsiuri streamheaders(in string amessageuri, in nsistreamlistener aconsumer, in nsiurllistener aurllistener [optional] in boolean alocalonly); boolean ismsginmemcache(in nsiuri aurl, in nsimsgfolder afolder, out nsicacheentrydescriptor acacheentry); nsimsgdbhdr messageuritomsghdr(in string uri); methods copymessage() pass in the uri for the message you want to have copied.
...And 4 more matches
nsIMutableArray
method overview void appendelement(in nsisup
ports element, in boolean weak); void clear(); void insertelementat(in nsisup
ports element, in unsigned long index, in boolean weak); void removeelementat(in unsigned long index); void replaceelementat(in nsisup
ports element, in unsigned long index, in boolean weak); methods appendelement() append an element at the end of the array.
... void appendelement( in nsisup
ports element, in boolean weak ); parameters element the element to append.
... exceptions thrown ns_error_failure when a weak reference is requested, but the element does not sup
port nsiweakreference.
...And 4 more matches
nsIProgressEventSink
inherits from: nsisup
ports last changed in gecko 1.7 this interface is used to asynchronously convey channel status and progress information that is generally not critical to the processing of the channel.
...method overview void onprogress(in nsirequest arequest, in nsisup
ports acontext, in unsigned long long aprogress, in unsigned long long aprogressmax); void onstatus(in nsirequest arequest, in nsisup
ports acontext, in nsresult astatus, in wstring astatusarg); methods onprogress() called to notify the event sink that progress has occurred for the given request.
... void onprogress( in nsirequest arequest, in nsisup
ports acontext, in unsigned long long aprogress, in unsigned long long aprogressmax ); parameters arequest the request being observed (may qi to nsichannel).
...And 4 more matches
nsIServerSocket
last changed in gecko 1.6 inherits from: nsisup
ports implemented by: @mozilla.org/network/server-socket;1.
... to create an instance, use: var serversocket = components.classes["@mozilla.org/network/server-socket;1"] .createinstance(components.interfaces.nsiserversocket); method overview void init(in long a
port, in boolean aloopbackonly, in long abacklog); void initwithaddress([const] in prnetaddrptr aaddr, in long abacklog);native code only!
... attributes attribute type description
port long returns the
port of this server socket.
...And 4 more matches
nsIURLParser
inherits from: nsisup
ports last changed in gecko 1.7 method overview void parseauthority(in string authority, in long authoritylen, out unsigned long usernamepos, out long usernamelen, out unsigned long passwordpos, out long passwordlen, out unsigned long hostnamepos, out long hostnamelen, out long
port); void parsefilename(in string filename, in long filenamelen, out unsigned long basenamepos, out long basenamelen, out unsigned long extensionpos, out long extensionlen); void parsefilepath(in string filepath, in long filepathlen, out unsigned long directorypos, out long directorylen, out unsigned long basenamepos, out long basenamel...
...pos, out long extensionlen); void parsepath(in string path, in long pathlen, out unsigned long filepathpos, out long filepathlen, out unsigned long parampos, out long paramlen, out unsigned long querypos, out long querylen, out unsigned long refpos, out long reflen); void parseserverinfo(in string serverinfo, in long serverinfolen, out unsigned long hostnamepos, out long hostnamelen, out long
port); void parseurl(in string spec, in long speclen, out unsigned long schemepos, out long schemelen, out unsigned long authoritypos, out long authoritylen, out unsigned long pathpos, out long pathlen); void parseuserinfo(in string userinfo, in long userinfolen, out unsigned long usernamepos, out long usernamelen, out unsigned long passwordpos, out long passwordlen); methods the string to pars...
...parseauthority() breaks the authority string up into its 4 components: username, password, hostname, and host
port.
...And 4 more matches
nsIWebSocketListener
1.0 66 introduced gecko 8.0 inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) method overview void onacknowledge(in nsisup
ports acontext, in pruint32 asize); void onbinarymessageavailable(in nsisup
ports acontext, in acstring amsg); void onmessageavailable(in nsisup
ports acontext, in autf8string amsg); void onserverclose(in nsisup
ports acontext, in unsigned short acode, in autf8string areason); void onstart(in nsisup
ports acontext); void onstop(in nsisup
ports acontext, in nsresul...
...void onacknowledge( in nsisup
ports acontext, in pruint32 asize ); parameters acontext user defined context.
...void onbinarymessageavailable( in nsisup
ports acontext, in acstring amsg ); parameters acontext user defined context.
...And 4 more matches
nsIWindowWatcher
inherits from: nsisup
ports last changed in gecko 0.9.6 usage notes: this component has an activewindow property.
...w); 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 string aname, in string afeatures, in nsisup
ports aarguments); void registernotification(in nsiobserver aobserver); void setwindowcreator(in nsiwindowcreator creator); void unregisternotification(in nsiobserver aobserver); attributes attribute type description activewindow nsidomwindow the watcher serves as a global storage facility for the current active (front most non-floating-...
... return value an nsisimpleenumerator which will itself return nsisup
ports objects which can be nsisup
ports.queryinterface() (queryinterfaced) to an nsidomwindow.
...And 4 more matches
XPCOM Interface Reference by grouping
security this section contains apis for secure channel communications system this section contains application level interfaces including calls to external sup
port elements (such as device calls).
...i nsiurl util nsidomserializer nsidomxpathevaluator nsidomxpathexception nsidomxpathexpression nsidomxpathresult xslt nsixsltexception nsixsltprocessor download nsidownload nsidownloadmanager nsidownloadprogresslistener element internal nsiworker nsiworkerglobalscope nsiworkermessageevent nsiworkermessage
port nsiworkerscope tree nsitreeboxobject nsitreecolumn nsitreecolumns nsitreecontentview nsitreeselection nsitreeview xform nsixformsmodelelement nsixformsnsinstanceelement nsixformsnsmodelelement xmlhttprequest nsixmlhttprequesteventtarget favicon nsifavicondatacallback nsifaviconservice frame nsichromefr...
... nsifeedprogresslistener nsifeedresult nsifeedresultlistener nsifeedtextconstruct script mozijssubscriptloader storage mozistoragevacuumparticipant util nsieffectivetldservice worker nsiabstractworker data nsiarray nsicategorymanager nsicollection nsidictionary nsimutablearray nsisimpleenumerator nsisup
portschar nsisup
portsdouble nsisup
portsfloat nsisup
portsid nsisup
portsinterfacepointer nsisup
portsprbool nsisup
portsprimitive nsisup
portsprint16 nsisup
portsprint32 nsisup
portsprint64 nsisup
portspriority nsisup
portsprtime nsisup
portspruint16 nsisup
portspruint32 nsisup
portspruint64 nsisup
portspruint8 nsisup
portsstring nsisup
portsvoid ...
...And 4 more matches
XPIDL
ns[c]string, refptr<t>, or uint32_t) string, wstring, [ptr] native and [ref] native are unsup
ported as element types.
...dictionaries, enums, and unions), are not currently sup
ported.
...the only constants sup
ported are those which become integer types when compiled to source code; string constants and floating point constants, though parseable, cannot be made into a header or xpt file.
...And 4 more matches
Index
the following preferences are sup
ported to control how this gets logged: 30 gloda examples thunderbird 3, thunderbird this page provides some examples for using gloda.
...glodaabindexer has the limited address book sup
port.
... 32 index index found 72 pages: 33 ldap sup
port administration, enterprise, thunderbird this document is intended to "fill in the gaps" about how enterprise customers can leverage and customize ldap sup
port in mozilla thunderbird.
...And 4 more matches
Working with windows in chrome code
by passing args to openwindow xpconnect will automatically wrap it as a generic nsisup
ports.
... using javascript code modules javascript code modules is a simple method for creating shared global singleton objects that can be im
ported into any other javascript scope.
... the im
porting scope will have access to the objects and data in the code module.
...And 4 more matches
Using js-ctypes
before you can use js-ctypes, you need to im
port the ctypes.jsm code module.
... this is as simple as including the following line of code in the desired javascript scope: components.utils.im
port("resource://gre/modules/ctypes.jsm") loading a native library once you've im
ported the code module, you can call the ctypes.open() method to load each native library you wish to use.
...examples can be found here: bugzilla :: bug 505907 - sup
port c++ calling from jsctypes library search paths if you specify a full path, that path is used to load the library.
...And 4 more matches
Plugin Roadmap for Firefox - Plugins
to sup
port the transition away from flash, firefox is working with other browsers to progressively and carefully make flash usage less common.
... below is the roadmap of past and future sup
port for plugins in firefox.
...in addition, the 64-bit firefox for windows only sup
ports the flash plugin.
...And 4 more matches
Responsive Design Mode - Firefox Developer Tools
the most obvious factor here is screen size, but there are other factors as well, including the pixel density of the display and whether it sup
ports touch.
... note: the device you select when in responsive design mode and the orientation (
portrait or landscape) is saved between sessions.
... the mouse wheel changes the size values by 1 pixel at a time you can also change the device's screen size by grabbing the bottom-right corner of the view
port and dragging it to the size you want.
...And 4 more matches
Style Editor - Firefox Developer Tools
the style editor enables you to: view and edit all the stylesheets associated with a page create new stylesheets from scratch and apply them to the page im
port existing stylesheets and apply them to the page to open the style editor choose the "style editor" option from the "web developer" menu (which is a submenu in the "tools" menu on the mac).
...it also sup
ports a number of keyboard shortcuts.
... the style editor sup
ports autocomplete.
...And 4 more matches
AudioBuffer() - Web APIs
the default is 1, and all user agents are required to sup
port at least 32 channels.
...user agents are required to sup
port sample rates from 8,000 hz to 96,000 hz (but are allowed to go farther outside this range).
... exceptions notsup
portederror one or more of the options are negative or otherwise has an invalid value (such as numberofchannels being higher than sup
ported, or a samplerate outside the nominal range).
...And 4 more matches
AudioParam.cancelAndHoldAtTime() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcancelandholdattimechrome full sup
port 57 full sup
port 57 no sup
port ?
... — 56alternate name alternate name uses the non-standard name: cancelvaluesandholdattime()edge full sup
port ≤79firefox no sup
port noie no sup
port noopera full sup
port 44 full sup
port 44 no sup
port ?
... — 43alternate name alternate name uses the non-standard name: cancelvaluesandholdattime()safari no sup
port nowebview android full sup
port 57 full sup
port 57 no sup
port ?
...And 4 more matches
characteristic - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcharacteristic experimentalchrome full sup
port 57notes full sup
port 57notes notes macos only.
... full sup
port 57notes disabled notes linux and versions of windows earlier than 10.disabled from version 57: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... full sup
port 70notes notes windows 10.edge full sup
port ≤79notes full sup
port ≤79notes notes macos only.
...And 4 more matches
uuid - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetuuid experimentalchrome full sup
port 57notes full sup
port 57notes notes macos only.
... full sup
port 57notes disabled notes linux and versions of windows earlier than 10.disabled from version 57: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... full sup
port 70notes notes windows 10.edge full sup
port ≤79notes full sup
port ≤79notes notes macos only.
...And 4 more matches
value - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetvalue experimentalchrome full sup
port 57notes full sup
port 57notes notes macos only.
... full sup
port 57notes disabled notes linux and versions of windows earlier than 10.disabled from version 57: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... full sup
port 70notes notes windows 10.edge full sup
port ≤79notes full sup
port ≤79notes notes macos only.
...And 4 more matches
writeValue() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetwritevalue experimentalchrome full sup
port 57notes full sup
port 57notes notes macos only.
... full sup
port 57notes disabled notes linux and versions of windows earlier than 10.disabled from version 57: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... full sup
port 70notes notes windows 10.edge full sup
port ≤79notes full sup
port ≤79notes notes macos only.
...And 4 more matches
BudgetService.getBudget() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetbudget experimentaldeprecatednon-standardchrome full sup
port 55edge full sup
port ≤79firefox ?
... opera full sup
port 42safari ?
... webview android full sup
port 55chrome android full sup
port 55firefox android ?
...And 4 more matches
BudgetService.getCost() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetcost experimentaldeprecatednon-standardchrome full sup
port 55edge full sup
port ≤79firefox ?
... opera full sup
port 42safari ?
... webview android full sup
port 55chrome android full sup
port 55firefox android ?
...And 4 more matches
BudgetService.reserve() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreserve experimentaldeprecatednon-standardchrome full sup
port 55edge full sup
port ≤79firefox ?
... opera full sup
port 42safari ?
... webview android full sup
port 55chrome android full sup
port 55firefox android ?
...And 4 more matches
BudgetState.budgetAt - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbudgetat experimentaldeprecatednon-standardchrome full sup
port 60edge full sup
port ≤79firefox ?
... opera no sup
port nosafari ?
... webview android no sup
port nochrome android full sup
port 60firefox android ?
...And 4 more matches
BudgetState.time - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettime experimentaldeprecatednon-standardchrome full sup
port 60edge full sup
port ≤79firefox ?
... opera no sup
port nosafari ?
... webview android no sup
port nochrome android full sup
port 60firefox android ?
...And 4 more matches
Element: mousewheel event - Web APIs
im
portant: instead of this obsolete event, use the standard wheel event.
... ie and opera (presto) only sup
port wheeldelta attribute and do not sup
port horizontal scroll.
...it means that if the mouse wheel doesn't sup
port high resolution scroll, the value is 120 per notch.
...And 4 more matches
FileSystem - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystemchrome full sup
port 7alternate name full sup
port 7alternate name alternate name uses the non-standard name: domfilesystemedge full sup
port ≤18prefixed notes full sup
port ≤18prefixed notes prefixed implemented with the vendor prefix: webkitnotes edge...
... only sup
ports this api in drag-and-drop scenarios using the the datatransferitem.webkitgetasentry() method.
... it's not available for use in file or folder picker panels (such as when you use an <input> element with the htmlinputelement.webkitdirectory attribute.firefox full sup
port 50ie no sup
port noopera full sup
port 15prefixed full sup
port 15prefixed prefixed implemented with the vendor prefix: webkitsafari full sup
port 11.1webview android full sup
port ≤37alternate name full sup
port ≤37alternate name alternate name uses the non-standard name: domfilesystemchrome android ...
...And 4 more matches
HTMLImageElement.src - Web APIs
syntax htmlimageelement.src = newsource; let src = htmlimageelement.src; value when providing only a single image, rather than a set of images from which the browser selects the best match for the view
port size and display pixel density, the src attribute is a usvstring specifying the url of the desired image.
... if you use the srcset content attribute to provide multiple image options for different display pixel densities, the url specified by the src attribute is used in one of two ways: as a fallback for browsers that don't sup
port srcset.
... additionally, if you use src along with both sizes (or the corresponding sizes content attribute) and srcset in order to choose an image based on the view
port size, the src attribute is only used as a fallback for browsers that don't sup
port sizes and srcset; otherwise, it's not used at all.
...And 4 more matches
Drag Operations - Web APIs
this allows data to be provided in more specific types, often custom types, yet still provide fallback data for drop targets that do not sup
port more specific types.
...other applications won't sup
port this type, but you can use a custom type for drags between areas of the same site or application.
... by providing data in other types as well, we can also sup
port drags to other applications in less specific forms.
...And 4 more matches
HTML Drag and Drop API - Web APIs
this overview of html drag and drop includes a description of the interfaces, basic steps to add drag-and-drop sup
port to an application, and an interoperability summary of the interfaces.
...(firefox sup
ports some gecko-specific extensions to the datatransfer object, but those extensions will only work on firefox.) each datatransfer object contains an items property, which is a list of datatransferitem objects.
... note: dragevent and datatransfer are broadly sup
ported on desktop browsers.
...And 4 more matches
IDBObjectStore.add() - Web APIs
note also the functions attached to transaction event handlers to re
port on the outcome of the transaction opening in the event of success or failure.
...() function to add the data to the database adddata(); }; function adddata() { // create a new object ready to insert into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); // make a request to add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of our request note.innerhtml += '<li>request successful.</li>'; }; }; specification specification status comment indexed database api 2.0the definition of 'add()' in that specification.
...And 4 more matches
IDBTransaction.db - Web APIs
note also the functions attached to transaction event handlers to re
port on the outcome of the transaction opening in the event of success or failure.
...on to add the data to the database adddata(); }; function adddata() { // create a new object ready for being inserted into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed: database modification finished.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); // add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of the request (this does not mean the item // has been stored successfully in the db - for that you need transaction.onsuccess) note.innerhtml += '<li>request successful.</li>'; }; // return the database (idbdatabase) connection with which this transaction is associated transaction.db; }; specification specification status comment indexed database api 2.0the definition of 'db' in that specification.
...And 4 more matches
IDBTransaction.onabort - Web APIs
note also the functions attached to transaction event handlers to re
port on the outcome of the transaction opening in the event of success or failure.
... note the transaction.onabort = function(event) { }; block, re
porting when the transaction has been aborted.
...on to add the data to the database adddata(); }; function adddata() { // create a new object ready for being inserted into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed: database modification finished.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error: ' + transaction.error + '</li>'; }; // create an object store on the transaction var objectstore = trans...
...And 4 more matches
IDBTransaction.onerror - Web APIs
note also the functions attached to transaction event handlers to re
port on the outcome of the transaction opening in the event of success or failure.
... note the transaction.onerror = function(event) { }; block, making use of transaction.error to help in re
porting what went wrong when the transaction was unsuccessful.
...on to add the data to the database adddata(); }; function adddata() { // create a new object ready for being inserted into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed: database modification finished.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error: ' + transaction.error + '</li>'; }; // create an object store on the transaction var objectstore = tran...
...And 4 more matches
ImageCapture.takePhoto() - Web APIs
the user agent selects the closest height value to this setting if it only sup
ports discrete heights.
...the user agent selects the closest width value to this setting if it only sup
ports discrete widths.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettakephoto experimentalchrome full sup
port 60 full sup
port 60 no sup
port 59 — 60notes notes photosettings argument not sup
ported.edge full sup
port ≤79firefox ?
...And 4 more matches
MediaStream.id - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidchrome no sup
port ?
... — 54edge no sup
port 12 — 79firefox full sup
port 41ie no sup
port noopera no sup
port ?
... — 39safari full sup
port yeswebview android no sup
port ?
...And 4 more matches
MessageEvent - Web APIs
channel messaging (see message
port.postmessage() and message
port.onmessage).
... messageevent.source read only a messageeventsource (which can be a windowproxy, message
port, or serviceworker object) representing the message emitter.
... messageevent.
ports read only an array of message
port objects representing the
ports associated with the channel the message is being sent through (where appropriate, e.g.
...And 4 more matches
Metadata - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmetadata experimentalnon-standardchrome full sup
port 13prefixed full sup
port 13prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port ≤79prefixed full sup
port ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox no sup
port ...
... noie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitfirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yespre...
...fixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitmodificationtime experimentalnon-standardchrome full sup
port 13edge full sup
port ≤79firefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android full sup
port yesfirefox android no sup
port noopera android ...
...And 4 more matches
Navigator - Web APIs
navigator.maxtouchpoints read only returns the maximum number of simultaneous touch contact points are sup
ported by the current device.
... navigatorplugins.mimetypes read only returns an mimetypearray listing the mime types sup
ported by the browser.
... navigator.donottrack re
ports the value of the user's do-not-track preference.
...And 4 more matches
PaymentAddress.toJSON() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettojson()chrome full sup
port 61disabled full sup
port 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 sup
port 15firefox full sup
port 62notes disabled full sup
port 62notes disabled notes available only in nightly builds.
... requires the comma-delineated list in dom.payments.request.sup
portedregions to contain one or more of the sup
ported 2-character iso locales, currently us and ca.disabled from version 62: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...And 4 more matches
PaymentRequest.PaymentRequest() - Web APIs
each item in the array contains the following fields: sup
portedmethods for early implementations of the spec, this was a sequence of identifiers for payment methods that the merchant website accepts.
... starting with more recent browsers, this parameter is more generic than credit cards, it is a single domstring, and the meaning of the data parameter changes with the sup
portedmethods.
... data a json-serializable object that provides optional information that might be needed by the sup
ported payment methods.
...And 4 more matches
PushEvent - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpushevent experimentalchrome full sup
port 42edge full sup
port 16disabled full sup
port 16disabled disabled from version 16: this feature is behind the enable service workers preference.
... full sup
port 17firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port noopera full sup
port 37safari no sup
port nowebview android no sup
port nochrome android full sup
port 42firefox android full sup
port 44 full sup
port 44 ...
... full sup
port 48notes notes push enabled by default.opera android full sup
port 37safari ios no sup
port nosamsung internet android full sup
port 4.0pushevent() constructor experimentalchrome full sup
port 42edge full sup
port 16disabled full sup
port 16disabled disabled from version 16: this feature is behind the enable service workers preference.
...And 4 more matches
SVGCircleElement - Web APIs
10 : -10; // clamp the circle radius to a minimum of 10 and a maximum of 250, // so it won't disappear or get bigger than the view
port var newvalue = math.min(math.max(circle.r.baseval.value + change, 10), 250); circle.setattribute("r", newvalue); } click on the circle.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgcircleelementchrome full sup
port 1edge full sup
port 12firefox full sup
port 1.5ie full sup
port 9opera full sup
port 8safari full sup
port 3.1webview android full sup...
...
port 3chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port yessafari ios full sup
port 3.1samsung internet android full sup
port 1.0cxchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie ?
...And 4 more matches
SVGTransformList - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgtransformlistchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslength non-standardchrome full sup
port yesedge full sup
port ≤79firefox full sup
port...
... opera full sup
port yessafari ?
...And 4 more matches
SharedWorkerGlobalScope.onconnect - Web APIs
the onconnect property of the sharedworkerglobalscope interface is an event handler representing the code to be called when the connect event is raised — that is, when a message
port connection is opened between the associated sharedworker and the main thread.
...}; examples this example shows a shared worker file — when a connection to the worker occurs from a main thread via a message
port, the onconnect event handler fires.
... the connecting
port can be referenced through the event object's
ports parameter; this reference can have an onmessage handler attached to it to handle messages coming in through the
port, and its postmessage() method can be used to send messages back to the main thread using the worker.
...And 4 more matches
SubtleCrypto.deriveBits() - Web APIs
essentially derivekey() is composed of derivebits() followed by im
portkey().
... this function sup
ports the same derivation algorithms as derivekey(): ecdh, hkdf, and pbkdf2.
... see sup
ported algorithms for some more detail on these algorithms.
...And 4 more matches
Web Video Text Tracks Format (WebVTT) - Web APIs
we can also place comments in our .vtt file, to help us remember im
portant information about the parts of our file.
... it is im
portant to not use "extra" blank lines within a cue, for example between the timings line and the cue payload.
... crédit de transcription 00:04.000 --> 00:05.000 transcrit par célestes™ ::cue(#\31) { color: lime; } ::cue(#crédit\ de\ transcription) { color: red; } positioning of text tracks is also sup
ported, by including positioning information after the timings in a cue, as seen below (see cue settings for more information): webvtt 00:00:00.000 --> 00:00:04.000 position:10%,line-left align:left size:35% where did he go?
...And 4 more matches
WindowOrWorkerGlobalScope.setInterval() - Web APIs
curabitur convallis, justo posuere
porta egestas, velit erat ornare tortor, non viverra justo diam eget arcu.
...integer ornare, erat a
porta tempus, velit justo fermentum elit, a fermentum metus nisi eu ipsum.
...cras sodales eleifend interdum.</textarea></p> <input type="submit" value="send" /> </form> <p>duis lobortis sapien quis nisl luctus
porttitor.
...And 4 more matches
Using XMLHttpRequest - Web APIs
these tell the client making the xmlhttprequest im
portant information about the status of the response.
...*/ however, more modern techniques are available, since the responsetype attribute now sup
ports a number of additional content types, which makes sending and receiving binary data much easier.
... sup
port for dom progress event monitoring of xmlhttprequest transfers follows the specification for progress events: these events implement the progressevent interface.
...And 4 more matches
-webkit-animation - CSS: Cascading Style Sheets
the -webkit-animation boolean css media feature is a chrome extension whose value is true if vendor-prefixed css animations are sup
ported.
... note: this media feature is only sup
ported by webkit.
... if possible, use an @sup
ports feature query instead.
...And 4 more matches
@media - CSS: Cascading Style Sheets
/* at the top level of your code */ @media screen and (min-width: 900px) { article { padding: 1rem 3rem; } } /* nested within another conditional at-rule */ @sup
ports (display: flex) { @media screen and (min-width: 900px) { article { display: flex; } } } for a discussion of media query syntax, please see using media queries.
... aspect-ratio width-to-height aspect ratio of the view
port color number of bits per color component of the output device, or zero if the device isn't color color-gamut approximate range of colors that are sup
ported by the user agent and output device added in media queries level 4.
... height height of the view
port hover does the primary input mechanism allow the user to hover over elements?
...And 4 more matches
Relationship of flexbox to other layout methods - CSS: Cascading Style Sheets
writing modes are fully detailed in the css writing modes specification, which details how css sup
ports the various different writing modes that exist internationally.
... horizontal-tb vertical-rl vertical-lr sideways-rl sideways-lr note that sideways-rl and sideways-lr have sup
port only in firefox currently.
...you can see more information on browser sup
port in the mdn documentation for writing-mode.
...And 4 more matches
Variable fonts guide - CSS: Cascading Style Sheets
for example linux oses need the latest linux freetype version, and macos prior to 10.13 does not sup
port variable fonts.
...the lower-level syntax (font-variation-settings) was the first mechanism implemented in order to test the early implementations of variable font sup
port, and is necessary to utilize new or custom axes beyond the five registered ones.
... notes when using font-variation-settings it is im
portant to note that axis names are case-sensitive.
...And 4 more matches
CSS Scrollbars - CSS: Cascading Style Sheets
scrollbar-width desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollbar-widthchrome no sup
port noedge no sup
port nofirefox full sup
port 64 full sup
port 64 full sup
port 63disabled disabled from version 63: this feature is behind the layout.css.scrollbar-width.enabled preference (needs ...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android full sup
port 64 full sup
port 64 full sup
port 63disabled disabled from version 63: this feature is behind the layout.css.scrollbar-width.enabled preference (needs to be set to true).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portuser must explicitly enable this feature.user must explicitly enable this feature.
...And 4 more matches
font-size-adjust - CSS: Cascading Style Sheets
to use this property in a way that is compatible with browsers that do not sup
port font-size-adjust, it is specified as a number that the font-size property is multiplied by.
... this will still produce reasonable results in browsers that do not sup
port font-size-adjust, where a 14px font will be used.
...this means that the first-choice font, when available, will appear the same size in browsers, whether or not they sup
port font-size-adjust.
...And 4 more matches
list-style-type - CSS: Cascading Style Sheets
a, b, c, … z lower-latin is unsup
ported in ie7 and earlier see browser compatibility section.
...a, b, c, … z upper-latin is unsup
ported in ie7 and earlier arabic-indic -moz-arabic-indic example armenian traditional armenian numbering (ayb/ayp, ben/pen, gim/keem… bengali -moz-bengali example cambodian * example is a synonym for khmer cjk-earthly-branch -moz-cjk-earthly-branch example cjk-heavenly-stem -moz-cjk-heavenly-stem example cjk-ideographic identical to trad-chinese-informal e.g.
... non-standard extensions a few more predefined types are provided by mozilla (firefox), blink (chrome and opera) and webkit (safari) to sup
port list types in other languages.
...And 4 more matches
Introduction to HTML5 - Developer guides
it offers new features that provide not only rich media sup
port but also enhance sup
port for creating web applications that can interact with users, their local data, and servers more easily and effectively than was previously possible.
... some html5 features remain unsup
ported by some browsers.
... however, gecko, and by extension, firefox, has very good sup
port for html5, and work continues toward sup
porting more of its features.
...And 4 more matches
Writing forward-compatible websites - Developer guides
this is especially im
portant for intranets and other non-public websites; if we can't see your code, we can't see that it broke.
...don't assume that browsers with sup
port for a given dom feature must also have some other, especially nonstandard, dom feature.
... or, conversely, that they don't have sup
port for some other feature (e.g., don't assume that a browser that sup
ports onload on script elements will never sup
port onreadystatechange on them).
...And 4 more matches
HTML attribute: rel - HTML: Hypertext Markup Language
valid on <link>, <a>, <area>, and <form>, the sup
ported values depend on the element on which the attribute is found.
... link link link stylesheet im
ports a style sheet.
...if the attribute is omitted or if none of the values in the attribute are sup
ported, then the document has no particular relationship with the destination resource other than there being a hyperlink between the two.
...And 4 more matches
HTML attribute: required - HTML: Hypertext Markup Language
the required attribute is sup
ported by text, search, url, tel, email, password, date, month, week, time, datetime-local, number, checkbox, radio, file, <input> types along with the <select> and <textarea> form control elements.
... the attribute is not sup
ported or relevant to range and color, as both have default values.
... it is also not sup
ported on hidden as it can not be expected that a user to fill out a form that is hidden.
...And 4 more matches
DASH Adaptive Streaming for HTML 5 Video - HTML: Hypertext Markup Language
browser sup
port firefox 21 includes an implementation of dash for html5 webm video which is turned off by default.
... firefox 23 removed sup
port for dash for html5 webm video.
... it will be replaced by an implementation of the media source extensions api which will allow sup
port for dash via javascript libraries such as dash.js.
...And 4 more matches
<input type="checkbox"> - HTML: Hypertext Markup Language
note: radio buttons are similar to checkboxes, but with an im
portant distinction — radio buttons are grouped into a set in which only one radio button can be selected at a time, whereas checkboxes allow you to turn single values on and off.
... events change and input sup
ported common attributes checked idl attributes checked, indeterminate and value methods select() value a domstring representing the value of the checkbox.
... additional attributes in addition to the common attributes shared by all <input> elements, "checkbox" inputs sup
port the following attributes: attribute description checked boolean; if present, the checkbox is toggled on by default indeterminate a boolean which, if present, indicates that the value of the checkbox is indeterminate rather than true or false value the string to use as the value of the checkbox when submitting the form, if the checkbox is curren...
...And 4 more matches
<input type="email"> - HTML: Hypertext Markup Language
on browsers that don't sup
port inputs of type email, a email input falls back to being a standard text input.
... value a domstring representing an e-mail address, or empty events change and input sup
ported common attributes autocomplete, list, maxlength, minlength, multiple, name,pattern, placeholder, readonly, required, size, and type idl attributes list and value methods select() value the <input> element's value attribute contains a domstring which is automatically validated as conforming to e-mail syntax.
... additional attributes in addition to the attributes that operate on all <input> elements regardless of their type, email inputs sup
port the following attributes: attribute description list the id of the <datalist> element that contains the optional pre-defined autocomplete options maxlength the maximum number of characters the input should accept minlength the minimum number of characters long the input can be and still be considered valid multiple whether or not to...
...And 4 more matches
<input type="tel"> - HTML: Hypertext Markup Language
note: browsers that don't sup
port type tel fall back to being a standard text input.
... value a domstring representing a telephone number, or empty events change and input sup
ported common attributes autocomplete, list, maxlength, minlength, pattern, placeholder, readonly, and size idl attributes list, selectionstart, selectionend, selectiondirection, and value methods select(), setrangetext(), setselectionrange() value the <input> element's value attribute contains a domstring that either represents a telephone number or is an empty string ("").
... additional attributes in addition to the attributes that operate on all <input> elements regardless of their type, telephone number inputs sup
port the following attributes: attribute description list the id of the <datalist> element that contains the optional pre-defined autocomplete options maxlength the maximum length, in utf-16 characters, to accept as a valid input minlength the minimum length that is considered valid for the field's contents pattern a regular expression the entered value must match to pass constraint validation placeholder an example value to display inside the field when it has no value readonly a boolean attribute which, if present, indicates that the field's contents should not ...
...And 4 more matches
<noframes>: The Frame Fallback element - HTML: Hypertext Markup Language
the obsolete html no frames or frame fallback element, <noframes>, provides content to be presented in browsers that don't sup
port (or have disabled sup
port for) the <frame> element.
... although most commonly-used browsers sup
port frames, there are exceptions, including certain special-use browsers including some mobile browsers, as well as text-mode browsers.
... a <noframes> element can contain any html elements that are allowed within the body of an html document, with the exception of the <frameset> and <frame> elements, since using frames when they aren't sup
ported doesn't make sense.
...And 4 more matches
<source>: The Media or Image Source element - HTML: Hypertext Markup Language
it is commonly used to offer the same media content in multiple file formats in order to provide compatibility with a broad range of browsers given their differing sup
port for image file formats and media file formats.
... for information about image formats sup
ported by web browsers and guidance on selecting appropriate formats to use, see our image file type and format guide on the web.
... examples video example this example demonstrates how to offer a video in ogg format for users whose browsers sup
port ogg format, and a quicktime format video for users whose browsers sup
port that.
...And 4 more matches
Content negotiation - HTTP
initial sup
port is in chrome 46 or later.
...for example, 512 megabytes will be re
ported as 0.5.
... view
port-width indicates the layout view
port width in css pixels.
...And 4 more matches
CSP: base-uri - HTTP
licy: base-uri <source>; content-security-policy: base-uri <source> <source>; sources while this directive uses the same arguments as other csp directives, some of them don’t make sense for `<base>`, such as the keywords 'unsafe-inline' and 'strict-dynamic' <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 4 more matches
CSP: default-src - HTTP
csp version 1 directive type fetch directive syntax one or more sources can be allowed for the default-src policy: content-security-policy: default-src <source>; content-security-policy: default-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 4 more matches
CSP: form-action - HTTP
syntax one or more sources can be set for the form-action policy: content-security-policy: form-action <source>; content-security-policy: form-action <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 4 more matches
CSP: img-src - HTTP
syntax one or more sources can be allowed for the img-src policy: content-security-policy: img-src <source>; content-security-policy: img-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 4 more matches
CSP: navigate-to - HTTP
syntax one or more sources can be set for the navigate-to policy: content-security-policy: navigate-to <source>; content-security-policy: navigate-to <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 4 more matches
CSP: script-src-attr - HTTP
olicy: script-src-attr <source>; content-security-policy: script-src-attr <source> <source>; script-src-attr can be used in conjunction with script-src: content-security-policy: script-src <source>; content-security-policy: script-src-attr <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 4 more matches
CSP: script-src-elem - HTTP
olicy: script-src-elem <source>; content-security-policy: script-src-elem <source> <source>; script-src-elem can be used in conjunction with script-src: content-security-policy: script-src <source>; content-security-policy: script-src-elem <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 4 more matches
CSP: style-src-attr - HTTP
curity-policy: style-src-attr <source>; content-security-policy: style-src-attr <source> <source>; style-src-attr can be used in conjunction with style-src: content-security-policy: style-src <source>; content-security-policy: style-src-attr <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 4 more matches
CSP: style-src-elem - HTTP
ty-policy: style-src-elem <source>; content-security-policy: style-src-elem <source> <source>; style-src-elem can be used in conjunction with style-src: content-security-policy: style-src <source>; content-security-policy: style-src-elem <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 4 more matches
Protocol upgrade mechanism - HTTP
implementations can choose not to take advantage of an upgrade even if they sup
port the new protocol, and in practice, this mechanism is used mostly to bootstrap a websockets connection.
... sec-websocket-extensions: extensions extensions a comma-separated list of extensions to request (or agree to sup
port).
...the first one that is sup
ported by the server will be selected and returned by the server in a sec-websocket-protocol header included in the response.
...And 4 more matches
Proxy Auto-Configuration (PAC) file - HTTP
the
port number is not included in this parameter.
... return value format the javascript function returns a single string if the string is null, no proxies should be used the string can contain any number of the following building blocks, separated by a semicolon: direct connections should be made directly, without any proxies proxy host:
port the specified proxy should be used socks host:
port the specified socks server should be used recent versions of firefox sup
port as well: http host:
port the specified proxy should be used https host:
port the specified https proxy should be used socks4 host:
port socks5 host:
port the specified socks server (with the specified sock version) should be used if there are multiple semicol...
... the pac file is named proxy.pac command line: pactester -p ~/pacparser-master/tests/proxy.pac -u http://www.mozilla.org (passes the host parameter www.mozilla.org and the url parameter http://www.mozilla.org) isplainhostname() syntax isplainhostname(host) parameters host the hostname from the url (excluding
port number).
...And 4 more matches
A typical HTTP session - HTTP
in client-server protocols, like http, sessions consist of three phases: the client establishes a tcp connection (or the appropriate connection if the trans
port layer is not tcp).
...opening a connection in http means initiating a connection in the underlying trans
port layer, usually this is tcp.
... with tcp the default
port, for an http server on a computer, is
port 80.
...And 4 more matches
WebAssembly.Table() constructor - JavaScript
var tbl = new webassembly.table({initial:2, element:"anyfunc"}); console.log(tbl.length); // "2" console.log(tbl.get(0)); // "null" console.log(tbl.get(1)); // "null" we then create an im
port object that contains the table: var im
portobj = { js: { tbl:tbl } }; finally, we load and instantiate a wasm module (table2.wasm) using the webassembly.instantiatestreaming() method.
... the table2.wasm module contains two functions (one that returns 42 and another that returns 83) and stores both into elements 0 and 1 of the im
ported table (see text representation).
... so after instantiation, the table still has length 2, but the elements now contain callable ex
ported webassembly functions which we can call from js.
...And 4 more matches
WebAssembly.Table.prototype.set() - JavaScript
this must be an ex
ported webassembly function, a javascript wrapper for an underlying wasm function.
... if value is not an ex
ported webassembly function or null, a typeerror is thrown.
... var tbl = new webassembly.table({initial:2, element:"anyfunc"}); console.log(tbl.length); console.log(tbl.get(0)); console.log(tbl.get(1)); we then create an im
port object that contains a reference to the table: var im
portobj = { js: { tbl:tbl } }; finally, we load and instantiate a wasm module (table2.wasm) using the webassembly.instantiatestreaming(), log the table length, and invoke the two referenced functions that are now stored in the table (the table2.wasm module (see text representation) adds two function references to the table, both of wh...
...And 4 more matches
WebAssembly.instantiateStreaming() - JavaScript
syntax promise<resultobject> webassembly.instantiatestreaming(source, im
portobject); parameters source a response object or a promise that will fulfill with one, representing the underlying source of a .wasm module you want to stream, compile, and instantiate.
... im
portobject optional an object containing the values to be im
ported into the newly-created instance, such as functions or webassembly.memory objects.
... there must be one matching property for each declared im
port of the compiled module or else a webassembly.linkerror is thrown.
...And 4 more matches
Structural overview of progressive web apps - Progressive web apps (PWAs)
in addition to the basic shell, you can add other features such as add to home screen or push notifications, safe in the knowledge that the app will still work ok if they are not sup
ported by the user's browser — this is the beauty of progressive enhancement.
... being linkable, progressive, and responsive by design it's im
portant to remember the pwa advantages and keep them in mind when designing the application.
... progressive: start with the "good, old basic website” and progressively add new features while remembering to detect if they are available in the browser and gracefully handle any errors that crop up if sup
port is not available.
...And 4 more matches
Introduction - SVG: Scalable Vector Graphics
svg is sup
ported by all major browsers.
...svg sup
ports gradients, rotations, filter effects, animations, interactivity with javascript, and so on.
...not all svg viewers are equal and so there is a good chance that something written for one app will not display exactly the same in another, simply because they sup
port different levels of the svg specification or another specification that you are using along with svg (that is, javascript or css).
...And 4 more matches
PI Parameters - XSLT: Extensible Stylesheet Language Transformations
overview xslt sup
ports the concept of passing parameters to a stylesheet when executing it.
... to solve this two new pis are implemented in firefox 2 (see sup
ported versions below for details), <?xslt-param?> and <?xslt-param-namespace?>.
... if there are multiple xml-stylesheet pis the parameters apply to all stylesheets as a consequence of that all stylesheets are im
ported into a single stylesheet per the xslt spec.reference?
...And 4 more matches
Content Processes - Archive of obsolete content
afterwards, it was decided to keep the design the way it is: even though it's no longer necessary, it turns out that from a security point of view there are several im
portant advantages to thinking about content and add-on code as living in different processes.
... when a content script is first loaded, the content worker automatically im
ports a messaging api that allows it to emit messages over a pipe.
... on the add-on side, this pipe is exposed via the the
port property on the worker.
...And 3 more matches
ui/toolbar - Archive of obsolete content
optional options: name type items array adding buttons to toolbars is only sup
ported from firefox 30 onwards.
...toolbar sup
ports the following events: attach, detach, show, and hide.
...toolbar sup
ports the following events: attach, detach, show, and hide.
...And 3 more matches
cfx to jpm - Archive of obsolete content
requiring modules from test code similarly, suppose you've written some tests for your add-on: my-addon lib my-addon.js test test-my-addon-js with cfx, code inside "test-my-addon.js" can im
port "my-addon.js" using a statement like this: var my_addon = require("my-addon"); // this will not work with jpm!
... with jpm, you must specify the path to "my-addon" explicitly, using a relative path: var my_addon = require("../lib/my-addon"); third-party modules the sdk has always sup
ported third-party modules: developers can write their own modules that extend the sdk's apis or add new apis, and other add-on developers can make use of these modules in the same way that they use the sdk's built-in modules.
... mobile development jpm does not sup
port the "--force-mobile" option, instead you will need to define engines in package.json and add "fennec" there.
...And 3 more matches
JavaScript Daemons Management - Archive of obsolete content
but the daemon constructor itself is nothing but a clone of minidaemon with an added sup
port for init and onstart functions declarable during the instantiation of the daemon.
... about the “callback arguments” polyfill in order to make this framework compatible with internet explorer (which doesn't sup
port sending additional parameters to timers' callback function, neither with settimeout() or setinterval()) we included the ie-specific compatibility code (commented code), which enables the html5 standard parameters' passage functionality in that browser for both timers (polyfill), at the end of the daemon.js module.
...the daemon constructor itself is nothing but a clone of the little framework minidaemon with added sup
port for init and onstart functions (declarable during the instantiation of the daemon).
...And 3 more matches
JavaScript Object Management - Archive of obsolete content
all module files should begin with a declaration like this: var ex
ported_symbols = ["〈modulenamespace〉"]; ex
ported_symbols is a special identifier that tells firefox that this file is only publishing the object named 〈modulenamespace〉.
...because of namespacing, we don't need to worry much about what to ex
port, usually we just need the namespace object.
... all of the objects inside of it are ex
ported as well, since they are members of the 〈modulenamespace〉 object.
...And 3 more matches
The Essentials of an Extension - Archive of obsolete content
now let's look at the im
portant parts of the file.
...for example, if you create a firefox extension, it would normally take little effort to
port it to seamonkey, which has very similar features and ui.
...users can disable version checks through preferences or installing add-ons like the add-on compatibility re
porter.
...And 3 more matches
User Notifications and Alerts - Archive of obsolete content
« previousnext » it is often the case that extensions need to notify users about im
portant events, often requiring some response.
... the main disadvantage of using alerts is that sup
port for the alerts service is not guaranteed for all platforms and firefox versions.
... sup
port for windows has existed since firefox 2.
...And 3 more matches
Add-ons - Archive of obsolete content
bookmarks.ex
port() ex
ports bookmarks to an html bookmark file.
... bookmarks.im
port() im
ports bookmarks from an html bookmark file.
... bootstrapped extensions browser.bookmarks.ex
port( function() {...} // optional function ) code snippets … creating custom firefox extensions with the mozilla build system there is a wealth of material on creating extensions for firefox.
...And 3 more matches
Enabling - Archive of obsolete content
in python, you can call from __future__ im
port foo which adds the functionality that foo yields to the script.
... in jetpack, we propse adding a new function to the base namespace called im
portfromfuture.
... methods im
port(stringmountpath string)im
ports the requested experimental feature into the script.
...And 3 more matches
Enabling Experimental Jetpack Features - Archive of obsolete content
in python, you can call from __future__ im
port foo which adds the functionality that foo yields to the script.
... in jetpack, we propse adding a new function to the base namespace called im
portfromfuture.
... methods im
port(stringmountpath string)im
ports the requested experimental feature into the script.
...And 3 more matches
Running Tamarin performance tests - Archive of obsolete content
avm sunspider/access-binary-trees.as 82.0 sunspider/access-fannkuch.as 152.0 sunspider/access-nbody.as 173.0 sunspider/access-nsieve.as 65.0 sunspider/bitops-3bit-bits-in-byte.as 13.0 sunspider/bitops-bits-in-byte.as 36.0 $ ex
port avm2=c:/dev/tamarin-tracing2/bld/shell/avmshell.exe $ python ./runtests.py executing tests at 2008-07-22 14:03:51.957381 avm: c:/dev/tamarin-tracing/bld/shell/avmshell.exe avm2: c:/dev/tamarin-tracing2/bld/shell/avmshell.exe test avm avm2 %sp sunspider/access-binary-trees.as 82.0 80.0 2.5 sunspider/access-fann...
... "--index index.py" will load index.py and run all of the tests in that index and re
port results normalized to the index values.
... use --csvappend if you want to append the results to the csv file sup
port files testconfig.txt this file contains instructions for how the harness should handle performance tests.
...And 3 more matches
Venkman Introduction - Archive of obsolete content
the loaded scripts view the loaded scripts view is in the top left
portion of the window.
... the local variables view the local variables view is on the left
portion of the window, at the bottom.
... the call stack view the call stack view is on the left
portion of the window by default, at the bottom.
...And 3 more matches
Building accessible custom components in XUL - Archive of obsolete content
firefox 1.5 is the first browser to sup
port dhtml accessibility; it maps the declarations within the html page to the underlying accessibility architecture so that assistive technologies can "read" a web page and know how to present these complex controls to the end user.
... you can find a list of all the sup
ported roles in firefox 1.5 on mozilla.org.
...further reading table of sup
ported roles and states in firefox focus issues download stage-3.zip install stage-3.xpi the next step on the road to an accessible spreadsheet is the focus problem.
...And 3 more matches
Skinning XUL Files by Hand - Archive of obsolete content
button.plain { border: 0px !im
portant; } the global skin, in which styles for these several button classes and dozens of other elements are defined, is described in the following section.
... reading the global skin it's very im
portant to familiarize yourself with the basic style definitions in the global skin before you set out creating your own stylesheet.
...to keep your xul looking consistent and to avoid breaking skins altogether (when your styles have some dependency on a part of the global skin that changes, such as an image), use the style rules in the global skin by im
porting it into your stylesheet with the following instruction: @im
port url("chrome://global/skin/"); refer to the document writing skinnable xul and css for guidelines on how to make your skins friendly to the global skin, to xul, and to mozilla.
...And 3 more matches
XUL Changes for Firefox 1.5 - Archive of obsolete content
the <richlistbox> sup
ports much of the same api as the <listbox> and single items, created with the <richlistitem> element may be selected.
...these windows are special types of dialogs which sup
port several panels, each of which may be contained in the same file or a separate file.
... dialog: defaultbutton property the <dialog> binding now sup
ports the defaultbutton property.
...And 3 more matches
External resources for plugin creation - Archive of obsolete content
platforms sup
ported include windows, linux, and mac os x (intel).
... feature highlights include thread safety checks, unicode sup
port (with std::wstring), activex sup
port, built-in drawing model negotiation for mac, automatic type conversion (including javascript arrays and objects), advanced security features, and more.
... sup
ported development environments are visual studio on windows, xcode on mac, and gcc on linux.
...And 3 more matches
Using IO Timeout And Interrupt On NT - Archive of obsolete content
this technical memo is a cautionary note on using netscape
portable runtime's (nspr) io timeout and interrupt on windows nt 3.51 and 4.0.
...in the meantime, there are dedicated internal threads (called the idle threads) monitoring the io completion
port for completed io requests.
... if a completed io request appears at the io completion
port, an idle thread fetches it and wakes up the thread that issued the io request earlier.
...And 3 more matches
GetObject - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer versions prior to ie 9 (standards mode).
... remarks the getobject function is not sup
ported in internet explorer 9 standards mode, internet explorer 10 standards mode, internet explorer 11 standards mode, and windows store apps or later.
...some files, however, may sup
port more than one class of object.
...And 3 more matches
@cc_on - Archive of obsolete content
warning: conditional compilation is not sup
ported in internet explorer 11 standards mode and windows 8.x store apps.
... conditional compilation is sup
ported in internet explorer 10 standards mode and in all earlier versions.
... the @cc_on statement activates conditional compilation sup
port within comments in a script.
...And 3 more matches
Obsolete: XPCOM-based scripting for NPAPI plugins - Archive of obsolete content
sample .idl file #include "nsisup
ports.idl" [scriptable, uuid(bedb0778-2ee0-11d5-9cf8-0060b0fbd8ac)] interface nsitestplugin : nsisup
ports { void nativemethod(); }; example 2.
... ns_imethod getinterfaces(pruint32 *count, nsiid * **array) {return ns_error_not_implemented;} ns_imethod gethelperforlanguage(pruint32 language, nsisup
ports **_retval) {return ns_error_not_implemented;} ns_imethod getcontractid(char * *acontractid) {return ns_error_not_implemented;} ns_imethod getclassdescription(char * *aclassdescription) {return ns_error_not_implemented;} ns_imethod getclassid(nscid * *aclassid) {return ns_error_not_implemented;} ns_imethod getclassidnoalloc(nscid *aclassidnoalloc) {return ns_error_not_...
...implemented;} }; class nsscriptablepeer : public nsitestplugin, public nsclassinfomixin { public: nsscriptablepeer(); ~nsscriptablepeer(); ns_decl_isup
ports ns_decl_nsitestplugin }; nsscriptablepeer::nsscriptablepeer() { ns_init_isup
ports(); } nsscriptablepeer::~nsscriptablepeer() { } // notice that we expose our claim to implement nsiclassinfo.
...And 3 more matches
Square tilemaps implementation: Scrolling maps - Game development
cameras can either be free-form, controlled by the player (such as in strategy games) or follow an object (such as the main character in platform games.) regardless of the type of camera, we would always need information regarding its current position, view
port size, etc.
...in this implementation, we are assuming that (x,y) points to the top left corner of visible
portion of the map.
... width and height: the size of the camera's view
port.
...And 3 more matches
Client hints - MDN Web Docs Glossary: Definitions of Web-related terms
use of client hints isn't automatic: rather, servers must announce that they sup
port client hints.
... servers announce sup
port for client hints using the accept-ch (accept client hints) header or an equivalent html meta element with the http-equiv attribute.
... accept-ch: dpr, width, view
port-width, downlink and / or <meta http-equiv="accept-ch" content="dpr, width, view
port-width, downlink"> when a client receives the accept-ch header, if sup
ported, it appends client hint headers that match the advertised field-values.
...And 3 more matches
What is accessibility? - Learn web development
you might also think of accessibility as treating everyone the same, and giving them equal op
portunities, no matter what their ability or circumstances.
...centers for disease control and prevention disability and functioning (noninstitutionalized adults 18 years and over) re
ports the usa "percent of adults with any physical functioning difficulty: 16.1%".
...im
portantly, though there is a lot of diversity within clinical definitions of cognitive impairments, people with them experience a common set of functional problems.
...And 3 more matches
CSS layout - Learn web development
now it's time to look at how to place your boxes in the right place in relation to the view
port, and one another.
... positioning positioning allows you to take elements out of the normal document layout flow, and make them behave differently, for example sitting on top of one another, or always remaining in the same place inside the browser view
port.
... beginner's guide to media queries the css media query gives you a way to apply css only when the browser and device environment matches a rule that you specify, for example "view
port is wider than 480 pixels".
...And 3 more matches
What is a URL? - Learn web development
let's see the most im
portant parts using the following url: http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#somewhereinthedocument http is the protocol.
... :80 is the
port.
...it is usually omitted if the web server uses the standard
ports of the http protocol (80 for http and 443 for https) to grant access to its resources.
...And 3 more matches
Basic native form controls - Learn web development
note: the features discussed in this article are sup
ported in all browsers, which is not the case for all form controls.
... they can benefit from spell checking (using the spellcheck attribute), if the browser sup
ports it.
...the value text for this attribute is also the fallback value if the value you specify for the type attribute is unknown by the browser (for example if you specify type="color" and the browser doesn't sup
port native color pickers).
...And 3 more matches
Styling web forms - Learn web development
form controls were added to html in the html 2 specification in 1995; css wasn't released until late 1996, and wasn't sup
ported very well by browsers for a few years after that.
... box sizing all text fields have complete sup
port for every property related to the css box model, such as width, height, padding, margin, and border.
... to position the legend in this manner, we used the following css (other declarations removed for brevity): fieldset { position: relative; } legend { position: absolute; bottom: 0; right: 0; } the <fieldset> needs to be positioned too, so that the <legend> is positioned relative to it (otherwise the <legend> would be positioned relative to the <body>.) the <legend> element is very im
portant for accessibility — it will be spoken by assistive technologies as part of the label of each form element inside the fieldset — but using a technique like the one above is fine.
...And 3 more matches
HTML Cheatsheet - Learn web development
to differentiate a part of the content that we will work on differently emphasize some text <em>i'm posh</em> i'm posh italic textt you can mark a phrase in the text in <i>italics</i> you can mark a phrase in the text in italics bold some text <b>bold a word or phrase</b>within the text bold a word or phrase within the text mark text as im
portant <strong>i'm im
portant</strong> i'm im
portant highlight some text <mark>notice me</mark> notice me draw a line through irrelevant text <s>i'm irrelevant</s> i'm irrelevant underline a non-textual annotation this is <u>mispelled</u> this is mispelled text displayed lower than normal text h<sub>2</sub>o h2o small t...
... embedded audio <audio controls="controls" src="https://udn.realityripple.com/samples/b7/193cb038d0.mp3">your browser does not sup
port the html5 audio element.</audio> your browser does not sup
port the html5 audio element.
... embedded audio with alternative sources <audio controls="controls"><source src="https://udn.realityripple.com/samples/b7/193cb038d0.mp3" type="audio/mpeg"><source src="https://udn.realityripple.com/samples/f7/14a4179ee6.ogg" type="audio/ogg"> your browser does not sup
port audio.
...And 3 more matches
Introduction to HTML - Learn web development
guides this module contains the following articles, which will take you through all the basic theory of html and provide ample op
portunity for you to test out some skills.
... getting started with html covers the absolute basics of html, to get you started — we define elements, attributes, and other im
portant terms, and show where they fit in the language.
... we also show how a typical html page is structured and how an html element is structured, and explain other im
portant basic language features.
...And 3 more matches
Adding vector graphics to the Web - Learn web development
svg is not sup
ported in older browsers, so may not be suitable if you need to sup
port older versions of internet explorer with your web site (svg started being sup
ported as of ie9.) raster graphics are arguably better for complex precision images such as photos, for the reasons described above.
... troubleshooting and cross-browser sup
port for browsers that don't sup
port svg (ie 8 and below, android 2.3 and below), you could reference a png or jpg from your src attribute and use a srcset attribute (which only recent browsers recognize) to reference the svg.
... this being the case, only sup
porting browsers will load the svg — older browsers will load the png instead: <img src="equilateral.png" alt="triangle with equal sides" srcset="equilateral.svg"> you can also use svgs as css background images, as shown below.
...And 3 more matches
Images in HTML - Learn web development
the browser doesn't sup
port the image type.
... image titles as with links, you can also add title attributes to images, to provide further sup
porting information if needed.
...he head and torso of a dinosaur skeleton; it has a large head with long sharp teeth" width="400" height="341" title="a t-rex on display in the manchester university museum"> this gives us a tooltip on mouse hover, just like link titles: however, this is not recommended — title has a number of accessibility problems, mainly based around the fact that screen reader sup
port is very unpredictable and most browsers won't show it unless you are hovering with a mouse (so e.g.
...And 3 more matches
Graceful asynchronous programming with Promises - Learn web development
the im
portant thing here is that the getusermedia() call returns almost immediately, even if the camera stream hasn't been obtained yet.
... explaining basic promise syntax: a real example promises are im
portant to understand because most modern web apis use them for functions that perform potentially lengthy tasks.
...the error will be re
ported in the console of your browser's developer tools.
...And 3 more matches
Video and Audio APIs - Learn web development
as we showed in video and audio content, a typical implementation looks like this: <video controls> <source src="rabbit320.mp4" type="video/mp4"> <source src="rabbit320.webm" type="video/webm"> <p>your browser doesn't sup
port html5 video.
...one big issue with the native browser controls is that they are different in each browser — not very good for cross-browser sup
port!
... there is also a timer <div>, which will re
port the elapsed time when the video is playing.
...And 3 more matches
Object-oriented JavaScript for beginners - Learn web development
there are lots of things you could know about a person (their address, height, shoe size, dna profile, pass
port number, significant personality traits ...) , but in this case we are only interested in showing their name, age, gender, and interests, and we also want to be able to write a short introduction about them based on this data, and get them to say hello.
... this is known as abstraction — creating a simple model of a more complex thing, which represents its most im
portant aspects in a way that is easy to work with for our program's purposes.
...note that they are using their own name value that was assigned to them when they were created; this is one reason why it is very im
portant to use this, so each one uses its own value, and not some other value.
...And 3 more matches
Aprender y obtener ayuda - Learn web development
you might think that focused learning is better for studying, but in reality, both are very im
portant.
...this also highlights the im
portance of taking regular breaks when you are studying in front of the computer.
...some of the articles will be tutorials, to teach you a certain technique or im
portant concept (such as "learn how to create a video player" or "learn the css box model"), and some of the articles will be reference material, to allow you to look up details you may have forgotten (such as "what is the syntax of the css background property"?) mdn web docs is very good for both types — the area you are currently in is great for learning techniques and concepts, and we also have se...
...And 3 more matches
The "why" of web performance - Learn web development
this article provides an introduction into why web performance is im
portant to site visitors and for your business goals.
... objective: to gain basic familiarity of why web performance is im
portant for good user experience.
... imagine loading that same site using tethered mobile data on a 9 year-old ipad while commuting home on public trans
portation.
...And 3 more matches
Web performance - Learn web development
the "why" of web performance this article discusses why web performance is im
portant for accessibility, user experience and your business goals.
... you know web performance is im
portant, but what is constitutes web performance?
... more im
portant than how fast your website is in milliseconds, is how fast your users perceive your site to be.
...And 3 more matches
Routing in Ember - Learn web development
it contains the following contents: im
port emberrouter from '@ember/routing/router'; im
port config from './config/environment'; ex
port default class router extends emberrouter { location = config.locationtype; rooturl = config.rooturl; } router.map(function() { this.route('completed'); this.route('active'); }); the highlighted lines were added when the 2nd and 3rd commands above were run.
...for todomvc, the capabilities of model aren't that im
portant to us; you can find more information in the ember model guide if you want to dig deeper.
... the index route model first of all, update todomvc/app/routes/index.js so it looks as follows: im
port route from '@ember/routing/route'; im
port { inject as service } from '@ember/service'; ex
port default class indexroute extends route { @service('todo-data') todos; model() { let todos = this.todos; return { get alltodos() { return todos.all; } } } } we can now update the todomvc/app/templates/index.hbs file so that when it includes the <todolist /> component, it does so explicitly with the available model, calling its alltodos() getter to make sure all of the todos are shown.
...And 3 more matches
Rendering a list of Vue components - Learn web development
ex
port default { name: 'app', components: { todoitem }, data() { return { todoitems: [ { label: 'learn vue', done: false }, { label: 'create a vue project with the cli', done: true }, { label: 'have fun', done: true }, { label: 'create a to-do list', done: false } ] }; } }; now that we have a list of items, we can use the v-for directive...
... im
port lodash.uniqueid into your app component in the same way you did with your todoitem component, using im
port uniqueid from 'lodash.uniqueid'; next, add an id field to each element in your todoitems array, and assign each of them a value of uniqueid('todo-').
... your app.vue <script> element contents should now look like this: im
port todoitem from './components/todoitem.vue'; im
port uniqueid from 'lodash.uniqueid' ex
port default { name: 'app', components: { todoitem }, data() { return { todoitems: [ { id: uniqueid('todo-'), label: 'learn vue', done: false }, { id: uniqueid('todo-'), label: 'create a vue project with the cli', done: true }, { id: uniqueid('todo-'), label: 'have fun', done: true }, { id: uniqueid('todo-'), label: 'create a to-do list', done: false } ] }; } }; now, add the v-for directive and key attribute to the <li> element in your app.vue template, like so: <ul> <li v-for="item in todoitems" :key="item.id"> <to-do-item label="my todo item" :done="...
...And 3 more matches
Handling common accessibility problems - Learn web development
semantic structure the most im
portant quick win in semantic html is to use a structure of headings and paragraphs for your content; this is because screen reader users tend to use the headings of a document as signposts to find the content they need more quickly.
... im
portant: you should perform this kind of test on any new page you write — make sure the functionality can be accessed by the keyboard.
... this example highlights the im
portance of using the correct semantic element for the correct job.
...And 3 more matches
Deploying our app - Learn web development
as such, it's im
portant to create a toolchain that handles these problems in a way that requires as little manual intervention as possible.
...a quick way to verify this is to run the following command: git status you should get a status re
port of what files are being tracked, what files are staged, and so on — all terms that are part of the git grammar.
... the test itself isn't what is im
portant.
...And 3 more matches
Accessibility information for UI designers and developers
this is specifically im
portant in these cases: the user input is about legal commitments or financial transactions it updates or removes the user's data in a system when recording tests responses in those cases, ensure users can change submissions, automatically check for errors.
... or provide an op
portunity to review the input before submitting it.
... see also: understanding success criterion 3.2.3: consistent navigation headings the heading structure of a page is like its table of contents, so it is im
portant that the levels are consistent.
...And 3 more matches
Information for Assistive Technology Vendors
mozilla now has enough accessibility sup
port that we're reading for early adopters and testers to start giving it a try.
... gecko info for windows accessibility vendors mozilla sup
ports msaa (microsoft active accessibility) in html and in our user interface (based on xul technology).
... this makes it possible for the vendors of windows accessibility software, such as screen readers, voice dictation packages and screen magnifiers to provide sup
port for mozilla.
...And 3 more matches
Links and Resources
online accessibility validators there are now a few available and excellent online accessibility validators which check single webpages according to checkpoints of wcag guidelines and then re
ports errors or warnings.
...the accessibility re
port will contain errors and warnings for "automatic checkpoints" and "manual checkpoints"; detailed and useful information (line numbers, instances/occurences, textual references to guidelines) will be included for web authors.
... wave 3.0 (web accessibility versatile evaluator) from webaim and sponsored by temple university institute on disabilities wave 3.0 is another powerful, mature, free online webpage accessibility validation service that identifies accessibility errors and re
ports accessibility warnings about webpage related to section 508 standards and/or the wcag guidelines.
...And 3 more matches
Accessibility and Mozilla
they also define a list of possible object states, such as focused, read-only, checked, etc.accessibility features in firefoxfirefox works with popular screen readers, with the best sup
port currently coming from gw micro's window-eyes 5.5.
... we are optimistic that jaws sup
port will catch up this year.
... this developer's guide lays out general guidelines that assistive technology (at) developers can use in developing live region sup
port.
...And 3 more matches
Add-ons
other toolsets, such as overlay add-ons, bootstrapped add-ons, and the add-on sdk, are no longer sup
ported.
...you can see the apis currently sup
ported in firefox and other browsers.
...we are currently building sup
port for the webextensions api on geckoview.
...And 3 more matches
Chrome registration
firefox 3, thunderbird 3, and seamonkey 2 sup
port mixed case.
... platformversion when sup
porting more then one application, it is often more convenient for an extension to specify which gecko version it is compatible with.
... note: sup
port for this flag has been removed in gecko 2.0.
...And 3 more matches
Debugging Frame Reflow
col 02d7c0d8 d=0,0 colg 02d7bfb0 d=0,0 tbl 02d7b7ec d=1500,390 tblo 02d7b5f0 d=1500,390 text 02d7c130 r=0 a=8940,uc c=uc,uc cnt=885 text 02d7c130 d=0,0 block 02d7b210 d=8940,390 area 02d7afe4 d=9180,630 canvas 00b97c6c d=9180,4470 scroll 00b97ee0 d=9180,4470 scroll 00b97ee0 d=9180,4470 vp 00b97c30 d=9180,4470 the first line shows the reflow of the view
port (vp).
... this view
port has the address 00b97c30.
...it is re
ported back from the block as: block 02d7bcf8 d=300,300 me=300 the block max.
...And 3 more matches
HTTP logging
press the enter key after each one.: for 64-bit windows: set moz_log=timestamp,rotate:200,nshttp:5,cache2:5,nssockettrans
port:5,nshostresolver:5,cookie:5 set moz_log_file=%temp%\log.txt "c:\program files\mozilla firefox\firefox.exe" for 32-bit windows: set moz_log=timestamp,rotate:200,nshttp:5,cache2:5,nssockettrans
port:5,nshostresolver:5,cookie:5 set moz_log_file=%temp%\log.txt "c:\program files (x86)\mozilla firefox\firefox.exe" (these instructions assume that you installed firefox to the default location, and...
... ex
port moz_log=timestamp,rotate:200,nshttp:5,cache2:5,nssockettrans
port:5,nshostresolver:5,cookie:5 ex
port moz_log_file=/tmp/log.txt cd /path/to/firefox ./firefox reproduce the problem you're debugging.
... ex
port moz_log=timestamp,rotate:200,nshttp:5,cache2:5,nssockettrans
port:5,nshostresolver:5,cookie:5 ex
port moz_log_file=~/desktop/log.txt cd /applications/firefox.app/contents/macos ./firefox-bin (the instructions assume that you've installed firefox directly into your startup disk's applications folder.
...And 3 more matches
Eclipse CDT
more im
portantly, unless you're willing to screw up eclipse's code assistance (in which case why bother using eclipse) you're going to have to set eclipse's "build" step to do a very slow, non-parallel, full rebuild.
...it also used to be necessary to add the following two lines to your mozconfig to make the compiler output errors all on a single line, but that may not be needed anymore: ex
port cflags="-fmessage-length=0" ex
port cppflags="-fmessage-length=0" debugging to create a debug configuration, open the project properties window, and select "run/debug settings" on the left.
...one suggested configuration for building gdb is '--prefix="$home" --disable-debug --with-python=/usr' (create an optimized build with sup
port for python (so that you can use python to much better control when you break etc.), and install it in $home/bin).
...And 3 more matches
Eclipse CDT Manual Setup
im
portant background to help you make sense of the instructions that follow (and so that you can modify them to meet your own needs if necessary), this section provides some background on what ides need in order to provide advanced code assistance, and what eclipse cdt needs in particular.
...eclipse cdt doesn't currently understand objective-c files (although there is a project that promises to add objective-c sup
port), so for now, this is the best we can do to give eclipse a chance of expanding its understanding of the source into the objective-c files.
...download this first pass at an eclipse formatter configuration for mozilla c/c++ coding style, and install it by opening the workspace preferences, selecting "c/c++ > code style > formatter", and then using the "im
port" button to im
port that file.
...And 3 more matches
Obsolete Build Caveats and Tips
obsolete caveats and tips from simple_firefox_build install a version of visual studio that sup
ports c++ development: vs 2012 for windows desktop pro or express (free), or vc++ 2010 pro or express (free), or vc++ 2008 pro or express with sp1 (free) (warning !
... visual c++ 7.1 or visual c++ 8 (vs2005) express these versions are not sup
ported and the windows 7 sdk will not work with them.
... note: while this configuration will probably build on mozilla-1.9.1 and mozilla-1.9.0, it is not sup
ported.
...And 3 more matches
HTTP Cache
there is no ipc sup
port.
...nsiloadcontextinfo.idl it is a helper interface wrapping following four arguments into a single one: private-browsing boolean flag anonymous load boolean flag app id number (0 for no app) is-in-browser boolean flag helper functions to create nsiloadcontextinfo objects: c++ consumers: functions at loadcontextinfo.h ex
ported header js consumers: resource://gre/modules/loadcontextinfo.jsm module methods two storage objects created with the same set of nsiloadcontextinfo arguments are identical, containing the same cache entries.
... im
portant difference in behavior from the old cache: when the cache entry object is already present in memory or open as “force-new” (a.k.a “open-truncate”) this callback is invoked sooner then the asyncopenuri method returns (i.e.
...And 3 more matches
Integrated Authentication
this document provides an overview of mozilla's sup
port for integrated authentication.
... this entails sup
port for the the simple and protected gss-api negotiation mechanism (spnego) internet standard (rfc 2478) to negotiate either kerberos, ntlm, or other authentication protocols sup
ported by the operating system.
... mozilla also sup
ports raw ntlm authentication using an internal implementation (based on the documentation provided by eric glass) that sup
ports ntlmv1/lmv1 and ntlm2 session key modes.
...And 3 more matches
CustomizableUI.jsm
if you want to use it from a jsm or another context without a window reference, you need to im
port it yourself: components.utils.im
port("resource:///modules/customizableui.jsm"); introduction the module is intended for two primary purposes: allow adding, moving and removing customizable widgets.
... the following event handlers are sup
ported: onwidgetadded(awidgetid, aarea, aposition) fired when a widget is added to an area.
...for a list of sup
ported properties, see api-provided widgets.
...And 3 more matches
source-editor.jsm
the source-editor.jsm javascript code module implements an editor specifically tailored for editing source code; its primary purpose is to provide sup
port for web developer tools to display and edit web site code.
... to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource:///modules/source-editor.jsm"); warning: much of the functionality of the source editor is implemented by a secondary code module (by default, source-editor-orion.jsm).
... you must not directly im
port that code module; it is essentially an implementation detail.
...And 3 more matches
Mozilla MathML Status
an overview of the mathml 3 elements/attributes - excluding deprecated ones - and the current status of the native sup
port.
...the sections are marked with their current status: sup
ported, in progress, and not currently sup
ported.
...if only the main features of an element are implemented then its section is marked as sup
ported but details of unsup
ported attributes are specified below.
...And 3 more matches
Mozilla Quirks Mode Behavior
sup
port <pre wrap>, <pre cols>, <pre width>.
... the topmargin, bottommargin, leftmargin, and rightmargin attributes on body are sup
ported only in quirks mode (bug 9258).
... quirks mode has document.all sup
port (undetected).
...And 3 more matches
Phishing: a short definition
the login
portal might resemble the trusted website's login page very closely, and convince users to enter their credentials, letting others hijack their account.
... public key cryptography many services will soon sup
port w3c web authentication, a powerful technology to evade phishing, based on public key cryptography.
... web authentication sup
ports millions of readily avilable fido u2f usb security keys, and will sup
port the more advanced fido 2.0 keys, once made available.
...And 3 more matches
PRNetAddr
syntax #include <prio.h> union prnetaddr { struct { pruint16 family; char data[14]; } raw; struct { pruint16 family; pruint16
port; pruint32 ip; char pad[8]; } inet; #if defined(_pr_inet6) struct { pruint16 family; pruint16
port; pruint32 flowinfo; pripv6addr ip; } ipv6; #endif /* defined(_pr_inet6) */ }; typedef union prnetaddr prnetaddr; fields the structure has the following fields: family address family: pr_af_inet|pr_af_inet6 for raw.family, pr_af_inet for inet.family, pr_af_inet6 for ipv6.family.
...
port port number of tcp or udp, in network byte order.
...nspr sup
ports only the internet address family.
...And 3 more matches
NSS_3.12.1_release_notes.html
returns a string that must be freed with
port_free().
... test bug 330622: certutil's usage messages incorrectly document certain options bug 330628: coreconf/linux.mk should _not_ default to x86 but result in an error if host is not recognized bug 359302: remove the sslsample code from nss source tree bug 372241: need more versatile form of cert_nametoascii bug 390296: nss ignores subject cn even when san contains no dnsname bug 401928: sup
port generalized pkcs#5 v2 pbes bug 403543: pkix: need a way to enable/disable aia cert fetching bug 408847: pkix_ocspchecker_check does not sup
port specified responder (and given signercert) bug 414003: crash [[@ cert_decodecertpackage] sometimes with this testcase bug 415167: memory leak in certutil bug 417399: arena allocation results are not checked in pkix_pl_infoaccess_parselocation ...
...bug 420644: improve ssl tracing of key derivation bug 426886: use const char* in pk11_im
portcertforkey bug 428103: cert_encodesubjectkeyid is not defined in any public header file bug 429716: debug builds of libpkix unconditionally dump socket traffic to stdout bug 430368: vfychain -t option is undocumented bug 430369: vfychain -o succeeds even if -pp is not specified bug 430399: vfychain -pp crashes bug 430405: error log is not produced by cert_pkixverifycert bug 430743: update ssltap to understand the tls session ticket extension bug 430859: pkix: policy mapping fails verification with error invalid arguments bug 430875: document the policy for the order of cipher suites in ssl_implementedciphers.
...And 3 more matches
NSS 3.14.2 release notes
new types: in certt.h cert_pi_useonlytrustanchors in secoidt.h sec_oid_ms_ext_key_usage_ctl_signing notable changes in nss 3.14.2 bug 805604 - sup
port for aes-ni and avx accelerated aes-gcm was contributed by shay gueron of intel.
... if compiled on linux systems in 64-bit mode, nss will include runtime detection to check if the platform sup
ports aes-ni and pclmulqdq.
...sup
port for other platforms, such as windows, will follow in a future nss release.
...And 3 more matches
NSS 3.15.1 release notes
distribution information nss 3.15.1 source distributions are also available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_15_1_rtm/src/ new in nss 3.15.1 new functionality tls 1.2: tls 1.2 (rfc 5246) is sup
ported.
... hmac-sha256 cipher suites (rfc 5246 and rfc 5289) are sup
ported, allowing tls to be used without md5 and sha-1.
... aes gcm cipher suites are not yet sup
ported.
...And 3 more matches
NSS 3.16.2 release notes
nss 3.16.2 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_16_2_rtm/src/ new in nss 3.16.2 new functionality dtls 1.2 is sup
ported.
... the tls application layer protocol negotiation (alpn) extension is also sup
ported on the server side.
... rsa-oeap is sup
ported.
...And 3 more matches
NSS 3.25 release notes
nss 3.25 requires netscape
portable runtime (nspr) 4.12 or newer.
... added sup
port for chacha with tls 1.3.
... added sup
port for tls 1.2 ciphersuites that use sha384 as the prf.
...And 3 more matches
NSS 3.33 release notes
nss 3.33 requires netscape
portable runtime (nspr) 4.17, or newer.
... nss 3.33 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_33_rtm/src/ notable changes in nss 3.33 tls compression is no longer sup
ported.
... in sec
port.h nss_securememcmpzero - check if a memory region is all zero in constant time.
...And 3 more matches
NSS 3.54 release notes
notable changes in nss 3.54 sup
port for tls 1.3 external pre-shared keys (bug 1603042).
... bug 1603042 - add tls 1.3 external psk sup
port.
... bug 1642802 - add uint128 sup
port for hacl* curve25519 on windows.
...And 3 more matches
Encrypt Decrypt_MAC_Using Token
*/ if ((body = strstr(nonbody, header)) != null) { char *trail = null; nonbody = body; body =
port_strchr(body, '\n'); if (!body) body =
port_strchr(nonbody, '\r'); /* maybe this is a mac file.
... */ if (body) trail = strstr(++body, trailer); if (trail != null) { *trail = '\0'; } else { pr_fprintf(pr_stderr, "input has header but no trailer\n");
port_free(filedata.data); return secfailure; } } else { body = nonbody; } cleanup: pr_close(file); hextobuf(body, item, ishexdata); return secsuccess; } /* * encryptandmac */ secstatus encryptandmac(prfiledesc *infile, prfiledesc *headerfile, prfiledesc *encfile, pk11symkey *ek, pk11symkey *mk, unsigned char *iv, unsigned int ivlen, prbool ascii) { secstatus rv; unsigned char ptext[blocksize]; unsigned int ptextlen; ...
...*/ memcpy(iv, decbuf, decbuflen); ivlen = decbuflen; blocknumber++; } if (rv != secsuccess) { goto cleanup; } rv = macfinal(ctxmac, newmac, &newmaclen, sizeof(newmac)); if (rv != secsuccess) { goto cleanup; } if (
port_memcmp(macitem->data, newmac, newmaclen) == 0) { rv = secsuccess; } else { pr_fprintf(pr_stderr, "check mac : failure\n"); pr_fprintf(pr_stderr, "extracted : "); printashex(pr_stderr, macitem->data, macitem->len); pr_fprintf(pr_stderr, "computed : "); printashex(pr_stderr, newmac, newmaclen); rv = secfailure; } cleanup: if (ctxm...
...And 3 more matches
Overview of NSS
open source crypto libraries proven application security architecture if you want to add sup
port for ssl, s/mime, or other internet security standards to your application, you can use network security services (nss) to implement all your security features.
... suse linux enterprise server sup
ports nss and the mod_nss ssl module for the apache web server.
... nss makes use of netscape
portable runtime (nspr), a platform-neutral open-source api for system functions designed to facilitate cross-platform development.
...And 3 more matches
NSS tools : certutil
certutil sup
ports two types of databases: the legacy security databases (cert8.db, key3.db, and secmod.db) and new sqlite databases (cert9.db, key4.db, and pkcs11.txt).
...this argument is provided to sup
port legacy servers.
... elliptic curve name is one of the ones from suite b: nistp256, nistp384, nistp521 if nss has been compiled with sup
port curves outside of suite b: sect163k1, nistk163, sect163r1, sect163r2, nistb163, sect193r1, sect193r2, sect233k1, nistk233, sect233r1, nistb233, sect239k1, sect283k1, nistk283, sect283r1, nistb283, sect409k1, nistk409, sect409r1, nistb409, sect571k1, nistk571, sect571r1, nistb571, secp160k1, secp160r1, secp160r2, secp192k1, secp192r1, nistp192, secp224k1, secp22...
...And 3 more matches
NSS Tools crlutil
-i im
port a crl to the cert database -e erase all crls of specified type from the cert database -l list existing crl located in cert database file.
... -i crl-im
port-file specify the file which contains the crl to im
port -f password-file specify a file that will automatically supply the password to include in a certificate or to access a certificate database.
...i crl] [-u url] [-d keydir] [-p dbprefix] [-l alg] [-a] [-b] -l [-n crl-name] [-d krydir] crlutil -d -n nickname [-d keydir] [-p dbprefix] crlutil -e [-d keydir] [-p dbprefix] crlutil -i -i crl [-t crltype] [-u url] [-d keydir] [-p dbprefix] [-b] creating or modifying a crl: listing all crls or a named crl: deleting crl from db: erasing crls from db: im
port crl from file: examples creating a new crl listing crls in a database deleting crl from a database im
porting crl into a database modifiying crl in a database creating a new crl this example creates a new crl and im
porting it in to a database in the specified directory: crlutil -g -d certdir -n cert-nickname -c crl-script-file or crlutil -g -d certdir -n cert-nickname <<eo...
...And 3 more matches
Necko Architecture
urls provide getting/setting of paths, hosts,
ports, filenames, etc.
...because of their im
portance, necko provides its own standard implementation of urls (with class id ns_standardurl_cid), which does all of the standard parsing necessary for most urls.
...however, a protocol handler implementation also might "cache" the underlying trans
ports so channels it creates can reuse them later.
...And 3 more matches
Tracing JIT
it is im
portant to keep in mind that this pass runs backwards from the last lins in the input lir code to the first, generating native code in reverse.
...the interpreter continues interpreting bytecode, but with an im
portant difference: each bytecode it interprets is also sent to the trace monitor and recorded in the monitor's trace recorder.
... it then im
ports the set of jsval values from the spidermonkey interpreter that the trace is known to read or write during its execution.
...And 3 more matches
JS_ErrorFromException
get or create jserrorre
port from an exception object.
... syntax jserrorre
port * js_errorfromexception(jscontext *cx, js::handleobject obj); name type description cx jscontext * pointer to a js context whose errors should be re
ported via your function.
... other contexts in the same runtime can have their own error re
porting functions.
...And 3 more matches
SpiderMonkey 31
get it here mozilla-esr31 you will find it in "firefox extended sup
port release 31" package on hg release platform sup
port spidermonkey 31 is sup
ported on all the platforms where firefox 31 runs.
... if you are compiling with microsoft's visual studio, note that the minimum sup
ported version is msvc10/2010: msvc8/9 sup
port has been dropped.
...it is sup
ported on x86, x86_64, and arm architectures.
...And 3 more matches
SpiderMonkey 38
get it here mozilla-esr38 you will find it in "firefox extended sup
port release 38" package on hg release platform sup
port spidermonkey 38 is sup
ported on all the platforms where firefox 38 runs.
... if you are compiling with microsoft's visual studio, note that the minimum sup
ported version is msvc10/2010.
...it is sup
ported on x86, x86_64, and arm architectures.
...And 3 more matches
SpiderMonkey 45
— apr 14, 2016 platform sup
port spidermonkey 45 is sup
ported on all platforms able to run firefox 45.
... if you are compiling with microsoft's visual studio, note the minimum sup
ported version is msvc 2013.
...it is sup
ported on x86, x86_64, and arm architectures.
...And 3 more matches
Building the WebLock UI
the overlay section, where we discuss how to im
port scripts, images, and other resources from mozilla into your own ui, is by far the more complicated of the two.
... first of all, it's im
portant to be able to represent the basic state of the lock as soon as it's loaded.
...cked var wlocked = 0; then the functions that get called from the interface and call through to the lock and unlock methods of the weblock component must also adjust this variable accordingly: function wlock() { // check to see if locking is on or off weblock.lock(); wlocked = 1; } function wunlock() { // check to see if locking is on or off weblock.unlock(); wlocked = 0; } an im
portant preliminary of these functions is that the weblock component be made available to the javascript in the form of the weblock object being used in the snippets above.
...And 3 more matches
Using XPCOM Components
for now, what's im
portant to see is how components like the ones in this section are obtained and used by the mozilla browser.
... this isn't quite all there is to it, of course, but this shows an im
portant aspect of xpcom.
... once you use the interface to get to the component, you can ask the component what other interfaces it sup
ports.
...And 3 more matches
Components.Constructor
syntax var func = [ new ] components.constructor(contractid [, interfacename [, initializer ] ]); parameters contractid a string containing the contract id of the component interfacename if given, nsisup
ports.queryinterface() will be called on each newly-created instance with the interface named by this string initializer if given, a string containing the name of a function which will be called on the newly-created instance, using the arguments provided to the created function when called description components.constructor() is a handy shortcut for creating instances of xpcom components.
...another im
portant benefit is that it precomputes some of the computation it does, so using a function returned from components.constructor() to create xpcom objects is faster than creating the object from base principles, as demonstrated below.
...the component is then returned immediately, with only the base interface nsisup
ports available on it; you must call nsisup
ports.queryinterface() on it to call methods on the object.
...And 3 more matches
Components.utils
if the parameter is passed, the runnable will be dispatch in the compartment of the parameter, which affects which error re
porter gets called.
... ex
portfunction() ex
port a javascript function from a more-privileged to a less-privileged scope, allowing it to be called in the less-privileged scope.
... im
port() loads a js module into the current script, without sharing a scope.
...And 3 more matches
Language bindings
this is useful for privileged code, such as add-on code, to access variables and apis defined in web content.components.utils.ex
portfunctionthis function provides a safe way to expose a function from a privileged scope to a less-privileged scope.components.utils.forcegccomponents.utils.forcegc lets scripts force a garbage collection cycle.
...in this case it can be im
portant to be able to force a garbage collection cycle from javascript.
...to obtain the object reference, you have to call get() on the resulting object.components.utils.im
portcomponents.utils.im
port was introduced in firefox 3 and is used for sharing code between different scopes easily.
...And 3 more matches
imgILoader
inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) implemented by @mozilla.org/image/loader;1 as a service: var imgiloader = components.classes["@mozilla.org/image/loader;1"] .getservice(components.interfaces.imgiloader); method overview imgirequest loadimage(in nsiuri auri, in nsiuri ainitialdocumenturl, in nsiuri areferreruri, in nsiprincipal aloadingprincipal, in nsiloadgroup aloadgroup, in imgidecoderobserver aobserver, in nsisup
ports acx, in nsloadflags aloadflags, in nsisup
ports cachekey, in imgirequest arequest, in nsichannelpolicy channelpolicy); imgirequest loadimagewithchannel(in nsichannel achannel, in imgidecod...
...erobserver aobserver, in nsisup
ports cx, out nsistreamlistener alistener); boolean sup
portimagewithmimetype(in string mimetype); constants constant value description load_cors_anonymous 1 << 16 load_cors_use_credentials 1 << 17 methods loadimage() start the load and decode of an image.
... imgirequest loadimage( in nsiuri auri, in nsiuri ainitialdocumenturl, in nsiuri areferreruri, in nsiprincipal aloadingprincipal, in nsiloadgroup aloadgroup, in imgidecoderobserver aobserver, in nsisup
ports acx, in nsloadflags aloadflags, in nsisup
ports cachekey, in imgirequest arequest, in nsichannelpolicy channelpolicy ); parameters auri the uri to load.
...And 3 more matches
nsICachingChannel
inherits from: nsicacheinfochannel last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) this interface provides: sup
port for "stream as file" semantics (for jar and plugins).
... sup
port for "pinning" cached data in the cache (for printing and save-as).
... sup
port for uniquely identifying cached data in cases when the url is insufficient.
...And 3 more matches
nsIChannel
method overview void asyncopen(in nsistreamlistener alistener, in nsisup
ports acontext); nsiinputstream open(); attributes attribute type description contentcharset acstring the character set of the channel's content if available and if applicable.
...the channel may ignore this hint in deciding on the actual mime type that it will re
port.
... note: this is distinctly different from the http referer (referring uri), which is typically the page that contained the original uri (accessible from nsihttpchannel.) owner nsisup
ports the owner, corresponding to the entity that is responsible for this channel.
...And 3 more matches
nsIContentPrefService
last changed in gecko 2 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) inherits from: nsisup
ports implemented by: @mozilla.org/content-pref/service;1.
... nsivariant getpref( in nsivariant agroup, in astring aname, in nsicontentprefcallback acallback optional ); parameters agroup the group for which to retrieve a preference; this may be specified as either a uri or as a string; in either case, the group consists of all sites matching the hostname
portion of the specified uri.
... nsipropertybag2 getprefs( in nsivariant agroup ); parameters agroup the group whose preferences are to be retrieved; this may be specified as either a uri or as a string; in either case, the group consists of all sites matching the hostname
portion of the specified uri.
...And 3 more matches
nsIDOMClientRect
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) attributes attribute type description bottom float y-coordinate, relative to the view
port origin, of the bottom of the rectangle box.
... left float x-coordinate, relative to the view
port origin, of the left of the rectangle box.
... right float x-coordinate, relative to the view
port origin, of the right of the rectangle box.
...And 3 more matches
nsIDocShell
inherits from: nsisup
ports last changed in gecko 12.0 (firefox 12.0 / thunderbird 12.0 / seamonkey 2.9) implemented by @mozilla.org/docshell;1.
...tdocshellenumerator(in long aitemtype, in long adirection); nsidomstorage getsessionstorageforprincipal(in nsiprincipal principal, in domstring documenturi, in boolean create); nsidomstorage getsessionstorageforuri(in nsiuri uri, in domstring documenturi); void historypurged(in long numentries); void internalload(in nsiuri auri, in nsiuri areferrer, in nsisup
ports aowner, in pruint32 aflags, in wstring awindowtarget, in string atypehint, in nsiinputstream apostdatastream, in nsiinputstream aheadersstream, in unsigned long aloadflags, in nsishentry ashentry, in boolean firstparty, out nsidocshell adocshell, out nsirequest arequest); native code only!
... reading this value re
ports the encoding that was used when loading the data into the document.
...And 3 more matches
nsIFactory
xpcom/components/nsifactory.idlscriptable this interface is a class factory that allows for the creation of nsisup
ports derived classes without specifying a concrete class type.
... inherits from: nsisup
ports last changed in gecko 0.9.5 method overview void createinstance(in nsisup
ports aouter, in nsiidref iid, [retval, iid_is(iid)] out nsqiresult result); void lockfactory(in prbool lock); methods createinstance() creates an instance of the class associated with this factory.
...(see also nsicomponentmanager.createinstance.) void createinstance( in nsisup
ports aouter, in nsiidref iid, [retval, iid_is(iid)] out nsqiresult result ); parameters aouter pointer to a component that wishes to be aggregated in the resulting instance.
...And 3 more matches
nsIHttpChannelInternal
66 introduced gecko 1.0 inherits from: nsisup
ports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) method overview void getrequestversion(out unsigned long major, out unsigned long minor); void getresponseversion(out unsigned long major, out unsigned long minor); void httpupgrade(in acstring aprotocolname, in nsihttpupgradelistener alistener); void setcookie(in string acookieheader); void setupfallbackchannel(in string afallbackkey); attributes attribute type description canceled boolean returns true if and only if t...
... local
port print32 the local
port number to which the channel is bound.
... remote
port print32 the remote
port number to which the channel is bound.
...And 3 more matches
nsIMsgIncomingServer
inherits from: nsisup
ports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) method overview void clearallvalues(); void cleartemporaryreturnreceiptsfilter(); void closecachedconnections(); void configuretemporaryfilters(in nsimsgfilterlist filterlist); void configuretemporaryreturnreceiptsfilter(in nsimsgfilterlist filterlist); obsolete since gecko 1.8 void displayofflinemsg(in nsimsgwindow awindow); boolean equals(in nsimsgincomingserver server); void forgetpassword(); void forgetsessionpassword(); astring generateprettynameformigration(); boolean getboolattribute(in string name); boolean getboolvalue(in str...
...for instance, local mail is not removable, but an im
ported folder is.
... defaultcopiesandfoldersprefstoserver boolean if the server sup
ports fcc/sent/etc, default prefs can point to the server.
...And 3 more matches
nsINavHistoryService
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 22 (firefox 22 / thunderbird 22 / seamonkey 2.19) implemented by: "@mozilla.org/browser/nav-history-service;1".
... autf8string queriestoquerystring([array, size_is(aquerycount)] in nsinavhistoryquery aqueries, in unsigned long aquerycount, in nsinavhistoryqueryoptions options); void addobserver(in nsinavhistoryobserver observer, in boolean ownsweak); void removeobserver(in nsinavhistoryobserver observer); void runinbatchmode(in nsinavhistorybatchcallback acallback, in nsisup
ports aclosure); void im
porthistory(in nsifile file); astring getcharsetforuri(in nsiuri auri); astring setcharsetforuri(in nsiuri auri, in astring acharset); attributes attribute type description hashistoryentries boolean true if there is any history.
...if ownsweak is true, then aobserver must implement nsisup
portsweakreference, and the history service will keep a weak reference to the observer.
...And 3 more matches
nsISHEntry
n-history-entry;1"] .createinstance(components.interfaces.nsishentry); method overview void addchildshell(in nsidocshelltreeitem shell); nsidocshelltreeitem childshellat(in long index); void clearchildshells(); nsishentry clone(); void create(in nsiuri uri, in astring title, in nsiinputstream inputstream, in nsilayouthistorystate layouthistorystate, in nsisup
ports cachekey, in acstring contenttype, in nsisup
ports owner, in unsigned long long docshellid, in boolean dynamiccreation); native code only!
... void syncpresentationstate(); attributes attribute type description cachekey nsisup
ports set and get the cache key for the entry.
... owner nsisup
ports get the owner, if any, that was associated with the channel that the document that was loaded to create this history entry came from.
...And 3 more matches
nsIServerSocketListener
the trans
port is in the connected state, and read/write streams can be opened using the normal nsitrans
port api.
... the address of the client can be found by calling the nsisockettrans
port.getaddress() method or by inspecting nsisockettrans
port.gethost(), which returns a string representation of the client's ip address, which may be either an ipv4 or an ipv6 address.
... inherits from: nsisup
ports last changed in gecko 1.7 method overview void onsocketaccepted(in nsiserversocket aserv, in nsisockettrans
port atrans
port); void onstoplistening(in nsiserversocket aserv, in nsresult astatus); methods onsocketaccepted() this method is called when a client connection is accepted.
...And 3 more matches
nsITreeView
inherits from: nsisup
ports last changed in gecko 22 (firefox 22 / thunderbird 22 / seamonkey 2.19) implementing a nsitreeview in lieu of dom methods for tree creation can improve performance dramatically, and removes the need to make changes to the tree manually when changes to the database occur.
...g index, in boolean before); obsolete since gecko 1.8 boolean candropon(in long index); obsolete since gecko 1.8 void cyclecell(in long row, in nsitreecolumn col); void cycleheader(in nsitreecolumn col); void drop(in long row, in long orientation, in nsidomdatatransfer datatransfer); astring getcellproperties(in long row, in nsitreecolumn col, in nsisup
portsarray properties obsolete since gecko 22); astring getcelltext(in long row, in nsitreecolumn col); astring getcellvalue(in long row, in nsitreecolumn col); astring getcolumnproperties(in nsitreecolumn col, in nsisup
portsarray properties obsolete since gecko 22); astring getimagesrc(in long row, in nsitreecolumn col); long getlevel(in long index); ...
... long getparentindex(in long rowindex); long getprogressmode(in long row, in nsitreecolumn col); astring getrowproperties(in long index, in nsisup
portsarray properties obsolete since gecko 22); boolean hasnextsibling(in long rowindex, in long afterindex); boolean iscontainer(in long index); boolean iscontainerempty(in long index); boolean iscontaineropen(in long index); boolean iseditable(in long row, in nsitreecolumn col); boolean isselectable(in long row, in nsitreecolumn col); boolean isseparator(in long index); boolean issorted(); void performaction(in wstring action); void performactiononcell(in wstring action, in long row, in nsitreecolumn col); void performactiononrow...
...And 3 more matches
nsIWebProgressListener
inherits from: nsisup
ports last changed in gecko 15 (firefox 15 / thunderbird 15 / seamonkey 2.12) nsiwebprogress describes the parent-child relationship of nsiwebprogress instances.
...a document request sup
ports the nsichannel interface and its loadflags attribute includes the nsichannel::load_document_uri flag.
... state security flags these flags describe the security state re
ported by a call to the onsecuritychange() method.
...And 3 more matches
nsIWebSocketChannel
nsiwebsocketchannel netwerk/protocol/websocket/nsiwebsocketchannel.idlscriptable provides sup
port for websocket channels.
... 1.0 66 introduced gecko 8.0 inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) implemented by: ?????????????????????????????????????.
... to create an instance, use: var websocketchannel = components.classes["@mozilla.org/????????????????????????????"] .createinstance(components.interfaces.nsiwebsocketchannel); method overview void asyncopen(in nsiuri auri, in acstring aorigin, in nsiwebsocketlistener alistener, in nsisup
ports acontext); void close(in unsigned short acode, in autf8string areason); void sendbinarymsg(in acstring amsg); void sendmsg(in autf8string amsg); attributes attribute type description extensions acstring sec-websocket-extensions response header value.
...And 3 more matches
nsIXSLTProcessor
content/xslt/public/nsixsltprocessor.idlscriptable xslt processor inherits from: nsisup
ports last changed in gecko 1.7 implemented by: @mozilla.org/document-transformer;1?type=xslt.
... to create an instance, use: var xsltprocessor = components.classes["@mozilla.org/document-transformer;1?type=xslt"] .createinstance(components.interfaces.nsixsltprocessor); method overview void clearparameters(); nsivariant getparameter(in domstring namespaceuri, in domstring localname); void im
portstylesheet(in nsidomnode style); void removeparameter(in domstring namespaceuri, in domstring localname); void reset(); void setparameter(in domstring namespaceuri, in domstring localname, in nsivariant value); nsidomdocument transformtodocument(in nsidomnode source); nsidomdocumentfragment transformtofragment(in nsidomnode source, in nsidomdocument output); methods clearparameters() removes all set parameters from this nsixsltprocessor.
...im
portstylesheet() im
ports the specified stylesheet into this xsltprocessor for transformations.
...And 3 more matches
Autoconfiguration in Thunderbird
guessing if all other mechanisms failed, thunderbird tries to guess the configuration, by trying common server names like imap.<domain>, smtp.<domain>, mail.<domain> etc., and, when a mail server answers, checking whether it sup
ports ssl, starttls and encrypted passwords (cram-md5).
...for the email address fred@example.com , the lookup is performed as (in this order): tb-install-dir/isp/example.com.xml on the harddisk check for autoconfig.example.com look up of "example.com" in the ispdb look up "mx example.com" in dns, and for mx1.mail.hoster.com, look up "hoster.com" in the ispdb try to guess (imap.example.com, smtp.example.com etc.) we may add dns srv records as sup
ported mechanism in the future, but we currently do not.
... how to add sup
port for your domain classification if you are a big isp (> 100,000 users) providing email addresses solely under a few domains like "example.com" and "example.de", you may either submit the configuration to the ispdb or set up a configuration server.
...And 3 more matches
Mail composition back end
it was im
ported from mozilla.org and last updated in 2000.
...the caller has the ability to add or remove listener interfaces to the nsimsgsend object and the interface can sup
port multiple listeners.
...an im
portant item to note is the fact that this interface should also implement the nsimsgcopyservicelistener interface if it wants to be notified of the progress and completion of the copy operation.
...And 3 more matches
DOM Inspector internals - Firefox Developer Tools
this is the two-pane inspector that appears when ctrl+shift+i (or cmd+shift+i) is pressed from one of the applications for which dom inspector has explicit sup
port (i.e., menuitems placed via overlay).
...either the host applications must provide these themselves (usually bundling dom inspector with the application, too), or dom inspector must explicitly sup
port them by providing its own menu items and keyboard shortcuts with host-integration overlays.
... dom inspector explicitly sup
ports several mozilla project applications by providing its own host-integration overlays.
...And 3 more matches
Debugger.Object - Firefox Developer Tools
setobjectwatchpoint(handler)(future plan) set a watchpoint on all the referent's own properties, re
porting events by callinghandler's methods.
... theframe argument is the current stack frame, whose code is about to perform the operation on the object being re
ported.
...(however, return resumption values are not sup
ported.) if a given method is absent fromhandler, then events of that sort are ignored.
...And 3 more matches
DevTools API - Firefox Developer Tools
while this api is currently a work-in-progress, there are usable
portions of page inspector and debugger that may be used currently.
...to use the gdevtools api from an add-on, it can be im
ported with following snippet const { gdevtools } = require("resource:///modules/devtools/gdevtools.jsm"); methods registertool(tooldefinition) registers a new tool and adds a tab to each existing toolbox.
... methods istargetsup
ported(target) a method that is called during toolbox construction to check if the tool sup
ports debugging the given target.
...And 3 more matches
Index - Firefox Developer Tools
3 accessibility inspector accessibility, accessibility inspector, devtools, guide, tools the accessibility inspector provides a means to access im
portant information exposed to assistive technologies on the current page via the accessibility tree, allowing you to check what's missing or otherwise needs attention.
...this is the two-pane inspector that appears when ctrl+shift+i (or cmd+shift+i) is pressed from one of the applications for which dom inspector has explicit sup
port (i.e., menuitems placed via overlay).
...dom inspector is standalone; it sup
ports all toolkit applications, and it's possible to embed it in your own xulrunner app.
...And 3 more matches
Call Tree - Firefox Developer Tools
by analyzing its results, you can find bottlenecks in your code - places where the browser is spending a dispro
portionately large amount of time.
...you can find the specific profile we discuss here - just im
port it to the performance tool to follow along.
... total time is that number translated into milliseconds, based on the total amount of time covered by the selected
portion of the recording.
...And 3 more matches
AddressErrors - Web APIs
the addresserrors dictionary is used by the payment request api to to re
port validation errors in a physical address (typically a billing address or a shipping address).
... javascript payment request data first, we declare the variables sup
portedhandlers, which is compatible with paymentmethoddata, and defaultpaymentdetails, which is a paymentdetailsupdate object.
... let sup
portedhandlers = [ { sup
portedmethods: "basic-card", data: { sup
portednetworks: ["visa", "mastercard", "amex", "discover"], sup
portedtypes: ["credit", "debit"] } } ]; let defaultpaymentdetails = { total: {label: 'donation', amount: {currency: 'usd', value: '65.00'}}, displayitems: [ { label: 'original donation amount', amount: {currency: 'usd', value: '65.00'} } ], shippingoptions: [ { id: 'standard', label: 'standard shipping', amount: {currency: 'usd', value: '0.00'}, selected: true } ] }; sup
portedhandlers describes the sup
ported payment handlers and the details for those.
...And 3 more matches
BasicCardResponse.billingAddress - Web APIs
example let's look at a sample payment request: var request = new paymentrequest(sup
portedinstruments, details, options); // call show() to trigger the browser's payment flow.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbillingaddresschrome no sup
port noedge no sup
port ≤18 — 79firefox full sup
port 56notes disabled full sup
port 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 tru...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari ?
...And 3 more matches
BasicCardResponse.cardNumber - Web APIs
example let's look at a sample payment request: var request = new paymentrequest(sup
portedinstruments, details, options); // call show() to trigger the browser's payment flow.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcardnumberchrome no sup
port noedge no sup
port ≤18 — 79firefox full sup
port 56notes disabled full sup
port 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 tru...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari ?
...And 3 more matches
BasicCardResponse.cardSecurityCode - Web APIs
example let's look at a sample payment request: var request = new paymentrequest(sup
portedinstruments, details, options); // call show() to trigger the browser's payment flow.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcardsecuritycodechrome no sup
port noedge no sup
port ≤18 — 79firefox full sup
port 56notes disabled full sup
port 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 tru...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari ?
...And 3 more matches
BasicCardResponse.cardholderName - Web APIs
example let's look at a sample payment request: var request = new paymentrequest(sup
portedinstruments, details, options); // call show() to trigger the browser's payment flow.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcardholdernamechrome no sup
port noedge no sup
port ≤18 — 79firefox full sup
port 56notes disabled full sup
port 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 tru...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari ?
...And 3 more matches
BasicCardResponse.expiryMonth - Web APIs
example let's look at a sample payment request: var request = new paymentrequest(sup
portedinstruments, details, options); // call show() to trigger the browser's payment flow.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetexpirymonthchrome no sup
port noedge no sup
port ≤18 — 79firefox full sup
port 56notes disabled full sup
port 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 tru...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari ?
...And 3 more matches
BasicCardResponse.expiryYear - Web APIs
example let's look at a sample payment request: var request = new paymentrequest(sup
portedinstruments, details, options); // call show() to trigger the browser's payment flow.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetexpiryyearchrome no sup
port noedge no sup
port ≤18 — 79firefox full sup
port 56notes disabled full sup
port 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 tru...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari ?
...And 3 more matches
CSSStyleSheet.ownerRule - Web APIs
the read-only cssstylesheet property ownerrule returns the cssim
portrule corresponding to the @im
port at-rule which im
ported the stylesheet into the document.
... if the stylesheet wasn't im
ported into the document using @im
port, the returned value is null.
... syntax var ownerrule = cssstylesheet.ownerrule; value a cssim
portrule corresponding to the @im
port rule which im
ported the stylesheet into the document.
...And 3 more matches
FederatedCredential - Web APIs
in sup
porting browsers, an instance of this class may be passed the credential received from the init object for global fetch.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfederatedcredential() constructor non-standardchrome full sup
port 51edge full sup
port ≤79firefox ?
... webview android full sup
port 51chrome android full sup
port 51firefox android ?
...And 3 more matches
FileSystemDirectoryReader.readEntries() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadentries deprecatednon-standardchrome full sup
port 8edge ?
... firefox full sup
port yesie no sup
port noopera ?
... safari full sup
port 11.1webview android full sup
port ≤37chrome android full sup
port 18firefox android full sup
port yesopera android no sup
port nosafari ios full sup
port 11.3samsung internet android ?
...And 3 more matches
Introduction to the File and Directory Entries API - Web APIs
usefulness of the api the file and directory entries api is an im
portant api for the following reasons: it lets apps have offline and storage features that involve large binary blobs.
... while firefox sup
ports blob storage for indexeddb, chrome currently does not (chrome is still implementing sup
port for blob storage in indexeddb).
...you can, however, ex
port a file from a web app to a desktop app.
...And 3 more matches
HTMLIFrameElement.allowPaymentRequest - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetallowpaymentrequest experimentalchrome full sup
port 60disabled full sup
port 60disabled disabled from version 60: this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in chrome, visit chrome://flags.edge full sup
port 15firefox full sup
port 56ie ?
... opera no sup
port nosafari ?
...And 3 more matches
HTMLSlotElement.name - Web APIs
every time the element inserted in the slot changes, we log a re
port to the console saying which slot has changed, and what the new node inside the slot is.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetname experimentalchrome full sup
port 53edge full sup
port 79firefox full sup
port 63 full sup
port 63 no sup
port 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled ...
... no sup
port ?
...And 3 more matches
IDBDatabase.transaction() - Web APIs
if you need to open the object store in readwrite mode to change data, you would use the following: var transaction = db.transaction('my-store-name', "readwrite"); as of firefox 40, indexeddb transactions have relaxed durability guarantees to increase performance (see bug 1112702), which is the same behaviour as other indexeddb-sup
porting browsers.
... details optional dictionary of other settings, sup
ported only by chrome: return value an idbtransaction object.
... // this is used a lot below db = dbopenrequest.result; // run the displaydata() function to populate the task list with // all the to-do list data already in the idb displaydata(); }; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed: database modification finished.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
...And 3 more matches
IDBObjectStore.autoIncrement - Web APIs
() function to add the data to the database adddata(); }; function adddata() { // create a new object ready to insert into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); console.log(objectstore.autoincrement); // make a request to add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of our request note.innerhtml += '<li>request successful.</li>'; }; }; specification specification status comment indexed database api 2.0the definition of 'autoincrement' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetautoincrementchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
...And 3 more matches
IDBObjectStore.clear() - Web APIs
// this is used a lot below db = dbopenrequest.result; // clear all the data form the object store cleardata(); }; function cleardata() { // open a read/write db transaction, ready for clearing the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error: ' + transaction.error + '</li>'; }; // create an object store on the transaction var objectstore = transacti...
...on.objectstore("todolist"); // make a request to clear all the data out of the object store var objectstorerequest = objectstore.clear(); objectstorerequest.onsuccess = function(event) { // re
port the success of our request note.innerhtml += '<li>request successful.</li>'; }; }; specification specification status comment indexed database api 2.0the definition of 'clear()' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetclearchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
...And 3 more matches
IDBObjectStore.delete() - Web APIs
this is used a lot below db = dbopenrequest.result; // run the deletedata() function to delete a record from the database deletedata(); }; function deletedata() { // open a read/write db transaction, ready for deleting the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error: ' + transaction.error + '</li>'; }; // create an object store on the transaction var objectstore = transacti...
...on.objectstore("todolist"); // make a request to delete the specified record out of the object store var objectstorerequest = objectstore.delete("walk dog"); objectstorerequest.onsuccess = function(event) { // re
port the success of our request note.innerhtml += '<li>request successful.</li>'; }; }; specification specification status comment indexed database api 2.0the definition of 'delete()' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdeletechrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
...And 3 more matches
IDBObjectStore.get() - Web APIs
// this is used a lot below db = dbopenrequest.result; // run the getdata() function to get the data from the database getdata(); }; function getdata() { // open a read/write db transaction, ready for retrieving the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error: ' + transaction.error + '</li>'; }; // create an object store on the transaction var objectstore = transacti...
...on.objectstore("todolist"); // make a request to get a record by key from the object store var objectstorerequest = objectstore.get("walk dog"); objectstorerequest.onsuccess = function(event) { // re
port the success of our request note.innerhtml += '<li>request successful.</li>'; var myrecord = objectstorerequest.result; }; }; specifications specification status comment indexed database api 2.0the definition of 'get()' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
...And 3 more matches
IDBObjectStore.indexNames - Web APIs
() function to add the data to the database adddata(); }; function adddata() { // create a new object ready to insert into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); console.log(objectstore.indexnames); // make a request to add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of our request note.innerhtml += '<li>request successful.</li>'; }; }; specification specification status comment indexed database api 2.0the definition of 'indexnames' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetindexnameschrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
...And 3 more matches
IDBObjectStore.keyPath - Web APIs
() function to add the data to the database adddata(); }; function adddata() { // create a new object ready to insert into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); console.log(objectstore.keypath); // make a request to add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of our request note.innerhtml += '<li>request successful.</li>'; }; }; specification specification status comment indexed database api 2.0the definition of 'keypath' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetkeypathchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
...And 3 more matches
IDBObjectStore.transaction - Web APIs
() function to add the data to the database adddata(); }; function adddata() { // create a new object ready to insert into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); console.log(objectstore.transaction); // make a request to add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of our request note.innerhtml += '<li>request successful.</li>'; }; }; specification specification status comment indexed database api 2.0the definition of 'transaction' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettransactionchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
...And 3 more matches
IDBRequest.error - Web APIs
also included at the bottom is an onerror function that re
ports what the error was if the request fails.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung interneterrorchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
...And 3 more matches
IDBTransaction.abort() - Web APIs
note also the functions attached to transaction event handlers to re
port on the outcome of the transaction opening in the event of success or failure.
...on to add the data to the database adddata(); }; function adddata() { // create a new object ready for being inserted into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed: database modification finished.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); // add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of the request (this does not mean the item // has been stored successfully in the db - for that you need transaction.onsuccess) note.innerhtml += '<li>request successful.</li>'; }; // abort the transaction we just did transaction.abort(); }; specification specification status comment indexed database api 2.0the definition of 'abort()' in that specification.
...And 3 more matches
IDBTransaction.mode - Web APIs
note also the functions attached to transaction event handlers to re
port on the outcome of the transaction opening in the event of success or failure.
...on to add the data to the database adddata(); }; function adddata() { // create a new object ready for being inserted into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed: database modification finished.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); // add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of the request (this does not mean the item // has been stored successfully in the db - for that you need transaction.onsuccess) note.innerhtml += '<li>request successful.</li>'; }; // return the mode this transaction has been opened in (should be "readwrite" in this case) transaction.mode; }; specification specification status comment indexed database api 2.0the definition of 'mode' in that specification.
...And 3 more matches
IDBTransaction.objectStore() - Web APIs
note also the functions attached to transaction event handlers to re
port on the outcome of the transaction opening in the event of success or failure.
...on to add the data to the database adddata(); }; function adddata() { // create a new object ready for being inserted into the idb var newitem = [ { tasktitle: "walk dog", hours: 19, minutes: 30, day: 24, month: "december", year: 2013, notified: "no" } ]; // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed: database modification finished.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("todolist"); // add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of the request (this does not mean the item // has been stored successfully in the db - for that you need transaction.onsuccess) note.innerhtml += '<li>request successful.</li>'; }; specification specification status comment indexed database api 2.0the definition of 'objectstore()' in that specification.
...And 3 more matches
IDBVersionChangeRequest - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbversionchangerequest deprecatednon-standardchrome no sup
port 12 — 23prefixed no sup
port 12 — 23prefixed prefixed implemented with the vendor prefix: webkitedge ?
... firefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nosetversion deprecatednon-standardchrome no sup
port ...
... noedge no sup
port nofirefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend ...
...And 3 more matches
Timing element visibility with the Intersection Observer API - Web APIs
the sidebar is represented using an <aside> element, and is styled as follows: aside { grid-column: 1; grid-row: 2; background-color: cornsilk; padding: 5px 10px; } aside ul { padding-left: 0; } aside ul li { list-style: none; } aside ul li a { text-decoration: none; } the most im
portant thing to note here is that the grid-column is set to 1, to place the sidebar on the left-hand side of the screen.
...the options are configured to watch for intersections with the document's view
port (by setting root to null).
... we have no margins to extend or contract the intersection root's rectangle; we want to match the boundaries of the document's view
port exactly for intersection purposes.
...And 3 more matches
MediaDevices.getUserMedia() - Web APIs
on browsers that sup
port managing media permissions with feature policy, this error is returned if feature policy is not configured to allow access to the input source(s).
... securityerror user media sup
port is disabled on the document on which getusermedia() was called.
... the mechanism by which user media sup
port is enabled and disabled is left up to the individual user agent.
...And 3 more matches
MessageChannel - Web APIs
the messagechannel interface of the channel messaging api allows us to create a new message channel and send data through it via its two message
port properties.
... properties messagechannel.
port1 read only returns
port1 of the channel.
... messagechannel.
port2 read only returns
port2 of the channel.
...And 3 more matches
Navigator.requestMediaKeySystemAccess() - Web APIs
this method is part of the encrypted media extensions api, which brings sup
port for encrypted media and drm-protected video to the web.
... syntax promise = navigator.requestmediakeysystemaccess(keysystem, sup
portedconfigurations); parameters keysystem a domstring identifying the key system.
... sup
portedconfigurations a non-empty array of mediakeysystemconfiguration objects.
...And 3 more matches
Using the Notifications API - Web APIs
if you want to sup
port older versions, you might have to use the older callback version, which looks like this: notification.requestpermission(); the callback version optionally accepts a callback function that is called once the user has responded to the request to display permissions.
...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'; } } // let's check if the browser sup
ports notifications if (!('notification' in window)) { console.log("this browser does not sup
port notifications."); } else { if(checknotificationpromise()) { notification.requestpermission() .then((permission) => { handlepermission(permission); }) } else { notification.requestpermission(function(permission) { handlepermission(permission); }...
...); } } } looking at the second main block first, you'll see that we first check to see if notifications are sup
ported.
...And 3 more matches
Using the Permissions API - Web APIs
at the moment, implementation of the api is at an early stage, so sup
port in browsers is pretty spotty: it can only be found in chrome 44 and later and firefox 43 and later.
... the only sup
ported method right now is permissions.query(), which queries permission status.
... function handlepermission() { navigator.permissions.query({name:'geolocation'}).then(function(result) { if (result.state == 'granted') { re
port(result.state); geobtn.style.display = 'none'; } else if (result.state == 'prompt') { re
port(result.state); geobtn.style.display = 'none'; navigator.geolocation.getcurrentposition(revealposition,positiondenied,geosettings); } else if (result.state == 'denied') { re
port(result.state); geobtn.style.display = 'inline'; } result.onchange = function()...
...And 3 more matches
PhotoCapabilities.imageHeight - Web APIs
the imageheight read-only property of the photocapabilities interface returns a mediasettingsrange object indicating the image height range sup
ported by the user agent.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetimageheight experimentalchrome full sup
port 59edge full sup
port ≤79firefox ?
... opera full sup
port 46safari ?
...And 3 more matches
imageWidth - Web APIs
the imagewidth read-only property of the photocapabilities interface returns a mediasettingsrange object indicating the image width range sup
ported by the user agent.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetimagewidth experimentalchrome full sup
port 59edge full sup
port ≤79firefox ?
... opera full sup
port 46safari ?
...And 3 more matches
Multi-touch interaction - Web APIs
pointer events extend dom input events to sup
port various pointing input devices such as pen/stylus and touch screens as well as mouse.
... pointer events have many similarities to mouse events but they sup
port multiple simultaneous pointers such as multiple fingers on a touch screen.
...the source code is available on github; pull requests and bug re
ports are welcome.
...And 3 more matches
RTCPeerConnection.connectionState - Web APIs
this state essentially represents the aggregate state of all ice trans
ports (which are of type rtcicetrans
port or rtcdtlstrans
port) being used by the connection.
... constant description "new" at least one of the connection's ice trans
ports (rtcicetrans
ports or rtcdtlstrans
ports) are in the "new" state, and none of them are in one of the following states: "connecting", "checking", "failed", or "disconnected", or all of the connection's trans
ports are in the "closed" state.
... "connecting" one or more of the ice trans
ports are currently in the process of establishing a connection; that is, their rtciceconnectionstate is either "checking" or "connected", and no trans
ports are in the "failed" state.
...And 3 more matches
RTCRtpCapabilities - Web APIs
an rtcrtpcapabilities object contains an array of objects conforming to rtcrtpcodeccapability (each describing the capabilities of one codec) and an array of the sup
ported rtp header extensions for that codec.
... properties codecs an array of rtcrtpcodeccapability objects, each describing one of the codecs sup
ported by the rtcrtpsender or rtcrtpreceiver.
...its properties are: the browser will only re
port distinct capability combinations separately.
...And 3 more matches
SVGSVGElement - Web APIs
svgsvgelement.view
port an svgrect containing the position and size of the view
port (implicit or explicit) that corresponds to the given <svg> element.
...(if the parent uses css or xsl layout, then unitless values represent pixel units for the current css or xsl view
port.) svgsvgelement.pixelunittomillimeterx a float representing the size of the pixel unit (as defined by css2) along the x-axis of the view
port, which represents a unit somewhere in the range of 70dpi to 120dpi, and, on systems that sup
port this, might actually match the characteristics of the target medium.
... svgsvgelement.pixelunittomillimetery a float representing the size of a pixel unit along the y-axis of the view
port.
...And 3 more matches
Screen Capture API - Web APIs
the screen capture api introduces additions to the existing media capture and streams api to let the user select a screen or
portion of a screen (such as a window) to capture as a media stream.
...its sole method is mediadevices.getdisplaymedia(), whose job is to ask the user to select a screen or
portion of a screen to capture in the form of a mediastream.
... mediatracksup
portedconstraints mediatracksup
portedconstraints.cursor a boolean which is true if the user agent and device sup
port the mediatrackconstraints.cursor constraint.
...And 3 more matches
ServiceWorkerContainer - Web APIs
most im
portantly, it exposes the serviceworkercontainer.register() method used to register service workers, and the serviceworkercontainer.controller property used to determine whether or not the current page is actively controlled.
...via a message
port.postmessage() call.) also available via the serviceworkercontainer.onmessage property.
... examples the example below first checks to see if the browser sup
ports service workers.
...And 3 more matches
SharedWorker - Web APIs
note: if sharedworker can be accessed from several browsing contexts, all those browsing contexts must share the exact same origin (same protocol, host and
port).
... sharedworker.
port read only returns a message
port object used to communicate with and control the shared worker.
...both scripts contain this: var myworker = new sharedworker('worker.js'); both scripts then access the worker through a message
port object created using the sharedworker.
port property.
...And 3 more matches
SubtleCrypto.deriveKey() - Web APIs
see sup
ported algorithms for some more detail on this.
...otherwise it will be the initial key material for the derivation function: for example, for pbkdf2 it might be a password, im
ported as a cryptokey using subtlecrypto.im
portkey().
... extractable is a boolean indicating whether it will be possible to ex
port the key using subtlecrypto.ex
portkey() or subtlecrypto.wrapkey().
...And 3 more matches
Multi-touch interaction - Web APIs
the touch event interfaces sup
port application-specific single and multi-touch interactions.
...the source code is available on github and pull requests and bug re
ports are welcome.
...ocument.getelementbyid(name); el.ontouchstart = start_handler; el.ontouchmove = move_handler; // use same handler for touchcancel and touchend el.ontouchcancel = end_handler; el.ontouchend = end_handler; } function init() { set_handlers("target1"); set_handlers("target2"); set_handlers("target3"); set_handlers("target4"); } move/pinch/zoom handler this function provides very basic sup
port for 2-touch horizontal move/pinch/zoom handling.
...And 3 more matches
UIEvent.initUIEvent() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetinituievent deprecatednon-standardchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari ?
... webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios ?
...And 3 more matches
WebGLRenderingContext - Web APIs
webglrenderingcontext.view
port() sets the view
port.
... webglrenderingcontext.depthrange() specifies the depth range mapping from normalized device coordinates to window or view
port coordinates.
... working with extensions these methods manage webgl extensions: webglrenderingcontext.getsup
portedextensions() returns an array of domstring elements with all the sup
ported webgl extensions.
...And 3 more matches
Clearing with colors - Web APIs
<p>a very simple webgl program that shows some color.</p> <!-- text within a canvas element is displayed only if canvas is not sup
ported.
... --> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> body { text-align : center; } canvas { display : block; width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } // run everything inside window load event handler, to make sure // dom is fully loaded and styled before trying to manipulate it, // and to not mess up the global scope.
...otherwise, initialize // the drawing buffer (the view
port) and clear the context // with a solid color.
...And 3 more matches
Using the Web Animations API - Web APIs
browser sup
port the basic web animations api features discussed in this article are available by default in firefox 48+ and chrome 36+.
... safari sup
ports web animations in its technology preview version and there is also a handy polyfill that tests for feature sup
port and adds it where necessary.
...if your keyframe list has only one entry, element.animate() may throw a notsup
portederror exception in some browsers until they are updated.
...And 3 more matches
Using the Web Audio API - Web APIs
browser sup
port modern browsers have good sup
port for most features of the web audio api.
... several audio sources with different channel layouts are sup
ported, even within a single context.
... controlling sound when playing sound on the web, it's im
portant to allow the user to control it.
...And 3 more matches
Using the Web Storage API - Web APIs
these mechanisms are available via the window.sessionstorage and window.localstorage properties (to be more precise, in sup
porting browsers the window object implements the windowlocalstorage and windowsessionstorage objects, which the localstorage and sessionstorage properties are members of) — invoking one of these will create an instance of the storage object, through which data items can be set, retrieved, and removed.
... feature-detecting localstorage to be able to use localstorage, we should first verify that it is sup
ported and available in the current browsing session.
...testing for availability is necessary only if you must sup
port very old browsers, such as internet explorer 6 or 7, or in the limited circumstances described below.
...And 3 more matches
XRView - Web APIs
the destination rendering layer to render a frame, you just iterate over the xrviewerpose's views, rendering each of them into the appropriate view
port within the frame's xrwebgllayer.
...the xrview
port for each view is used to position the rendering into the correct half of the layer.
... examples preparing to render every view for a pose to draw eerything the user sees each frame requires iterating over the list of views returned by the xrviewerpose object's views list: for (let view of pose.views) { let view
port = gllayer.getview
port(view); gl.view
port(view
port.x, view
port.y, view
port.width, view
port.height); // draw the scene; the eye being drawn is identified // by view.eye.
...And 3 more matches
XSL Transformations in Mozilla FAQ - Web APIs
note: starting in gecko 7.0, both text/xsl and application/xslt+xml are sup
ported mime types for xslt media stylesheets.
...the latter is pretty much the only issue to us, and we're sorry that we can't sup
port it.
... but mixing parsing with xslt is brittle and we rather not sup
port d-o-e than either crash or be even slower.
...And 3 more matches
ARIA: textbox role - Accessibility
to create a multi-line text box which sup
ports line breaks, as in an html <textarea>, set aria-multiline="true".
..." contenteditable="true" aria-placeholder="5-digit zipcode" aria-labelledby="txtboxlabel"></div> <!-- multi-line text area --> <div id="txtboxmultilinelabel">enter the tags for the article</div> <div role="textbox" contenteditable="true" aria-multiline="true" aria-labelledby="txtboxmultilinelabel" aria-required="true"></div> semantic elements are more concise and require no javascript to sup
port textbox features.
...it sup
ports the following values: inline: predicted text is inserted after the caret.
...And 3 more matches
:scope - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:scopechrome full sup
port 27edge full sup
port 79firefox full sup
port 32notes full sup
port 32notes notes firefox 55 removes sup
port for <style scoped> but not for the :scope pseudo-class, which is still sup
ported.
... no sup
port 20 — 32disabled disabled from version 20 until version 32 (exclusive): this feature is behind the layout.css.scope-pseudo.enabled preference (needs to be set to true).
... to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 15safari full sup
port 7webview android full sup
port ≤37chrome android full sup
port 27firefox android full sup
port 32notes full sup
port 32notes notes firefox 55 removes sup
port for <style scoped> but not for the :scope pseudo-class, which is still sup
ported.
...And 3 more matches
:visited - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:visitedchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 4opera full sup
port 3.5safari full sup
port 1webview android full suppo...
...rt 4.4chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0:visited no longer matches <link> elementschrome full sup
port 1notes full sup
port 1notes notes chromium has never matched <link> elements with link pseudo-classes.edge full sup
port 12firefox full sup
port 70...
...ie no sup
port noopera full sup
port 15notes full sup
port 15notes notes chromium has never matched <link> elements with link pseudo-classes.safari full sup
port 12webview android full sup
port 4.4notes full sup
port 4.4notes notes chromium has never matched <link> elements with link pseudo-classes.chrome android full sup
port 18notes full sup
port 18notes notes chromium has never matched <link> elements with link pseudo-classes.firefox android ...
...And 3 more matches
-webkit-transform-2d - CSS: Cascading Style Sheets
the -webkit-transform-2d boolean css media feature is a chrome extension whose value is true if vendor-prefixed css 2d transforms are sup
ported.
... syntax -webkit-transform-2d is a boolean css media feature whose value is true if the browser sup
ports -webkit prefixed css 2d transforms.
... values true the browser sup
ports the 2d css transforms with the -webkit prefix.
...And 3 more matches
-webkit-transform-3d - CSS: Cascading Style Sheets
the -webkit-transform-3d boolean css media feature is a chrome extension whose value is true if vendor-prefixed css 3d transforms are sup
ported.
... note: this media feature is only sup
ported by webkit and blink.
... if possible, use an @sup
ports feature query instead.
...And 3 more matches
height - CSS: Cascading Style Sheets
the height css descriptor is a shorthand descriptor for setting both min-height and max-height of the view
port.
... by providing one view
port length value will set both, the minimum height and the maximum height, to the value provided.
... if two view
port values are provided, the first value will set the minimum height and the second value will set the maximum height.
...And 3 more matches
width - CSS: Cascading Style Sheets
the width css descriptor is shorthand for setting both the min-width and the max-width descriptors of the view
port.
... by providing one view
port length value, that value will determine both the min-width and the max-width to the value provided.
... if two view
port values are provided the first value will be set to the min-width and the second value will be set max-width.
...And 3 more matches
Border-image generator - CSS: Cascading Style Sheets
r: 3px solid #3490d2; border-color: #208b20; background: #666; background-color: #eef1f5; color: #000; position: absolute; top: 2em; left: 0; z-index: 100; overflow: hidden; transition: all 0.3s; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } .ui-dropdown-list:hover { overflow: auto; } .ui-dropdown-list[data-hidden='true'] { height: 0 !im
portant; opacity: 0; visibility: hidden; } .ui-dropdown[data-position='left'] .ui-dropdown-list { left: -100%; top: 0; } .ui-dropdown[data-position='right'] .ui-dropdown-list { left: 100%; top: 0; } .ui-dropdown-list > div { width: 100%; height: 1.6em; margin: 0.3em 0; padding: 0.3em; line-height: 1em; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-bo...
... 20px 0; font-family: "segoe ui", arial, helvetica, sans-serif; /*background: url("https://mdn.mozillademos.org/files/6025/grain.png");*/ border: 1px solid #eee; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; } body[data-move='x'] { cursor: w-resize !im
portant; } body[data-move='y'] { cursor: s-resize !im
portant; } #container { width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } [data-draggable='true']:hover { cursor: move; } [data-draggable='true']:hover > * { cursor: default; } /******************************************************************************/ /***************************...
...ce5; opacity: 1; } #image-gallery[data-collapsed='true'] { margin-top: -100px; } /* load menu */ #load-actions { margin: 10px 0; } #toggle-gallery { width: 30px; height: 25px; margin: 10px; color: #fff; background-image: url('https://mdn.mozillademos.org/files/6005/arrow-up-white.png'); background-repeat: no-repeat; background-position: top 4px center; background-color: #888888 !im
portant; border-radius: 2px; float: left; } #toggle-gallery:hover { cursor: pointer; } #toggle-gallery[data-action='show'] { background-image: url('https://mdn.mozillademos.org/files/6001/arrow-down-white.png'); background-color: #888888 !im
portant; } #toggle-gallery[data-action='hide'] { background-image: url('https://mdn.mozillademos.org/files/6005/arrow-up-white.png'); } .button { width...
...And 3 more matches
Browser compatibility and Scroll Snap - CSS: Cascading Style Sheets
in this article, we consider questions that might arise related to compatibility across browsers and versions of browsers when adding sup
port for scroll-snap to your web site or app.
... if you have already used the old implementation as a fallback, or feel you want to sup
port users of old firefox (or -webkit prefixed safari), then you can continue to use the old specification as outlined in the example below.
... in this initial example we have used the old specification alongside the current specification in order to make scroll snapping work in all browsers which sup
port some form of scroll snapping.
...And 3 more matches
Introducing the CSS Cascade - CSS: Cascading Style Sheets
while the declarations contained in most at-rules — such as those in @media, @document, or @sup
ports — participate in the cascade, declarations contained in @keyframes don't.
... finally, note that @im
port and @charset obey specific algorithms and aren't affected by the cascade algorithm.
... then it sorts these rules according to their im
portance, that is, whether or not they are followed by !im
portant, and by their origin.
...And 3 more matches
CSS reference - CSS: Cascading Style Sheets
ont-variation-settings (@font-face)font-weightfont-weight (@font-face)format()fr<frequency><frequency-percentage>:fullscreenggapgrad<gradient>grayscale()gridgrid-areagrid-auto-columnsgrid-auto-flowgrid-auto-rowsgrid-columngrid-column-endgrid-column-startgrid-rowgrid-row-endgrid-row-startgrid-templategrid-template-areasgrid-template-columnsgrid-template-rowshhzhanging-punctuationheightheight (@view
port)@historical-forms:hoverhsl()hsla()hue-rotate()hyphensi<ident><image>image()image-orientationimage-renderingimage-set()@im
portin:in-range:indeterminateinheritinitialinline-sizeinsetinset()inset-blockinset-block-endinset-block-startinset-inlineinset-inline-endinset-inline-start<integer>:invalidinvert()isolationjjustify-contentjustify-itemsjustify-selfkkhz@keyframesl:lang:last-child:last-of-typelead...
...-startmargin-bottommargin-inlinemargin-inline-endmargin-inline-startmargin-leftmargin-rightmargin-top::markermarks (@page)maskmask-bordermask-border-modemask-border-outsetmask-border-repeatmask-border-slicemask-border-sourcemask-border-widthmask-clipmask-compositemask-imagemask-modemask-originmask-positionmask-repeatmask-sizemask-typematrix()matrix3d()max()max-block-sizemax-heightmax-height (@view
port)max-inline-sizemax-widthmax-width (@view
port)max-zoom (@view
port)@mediamin()min-block-sizemin-heightmin-height (@view
port)min-inline-sizemin-widthmin-width (@view
port)min-zoom (@view
port)minmax()mix-blend-modemmmsn@namespacenegative (@counter-style):not:nth-child:nth-last-child:nth-last-of-type:nth-of-type<number>oobject-fitobject-positionoffsetoffset-anchoroffset-distanceoffset-pathoffset-rotate...
...:only-child:only-of-typeopacityopacity():optionalorderorientation (@view
port)@ornamentsornaments()orphans:out-of-rangeoutlineoutline-coloroutline-offsetoutline-styleoutline-widthoverflowoverflow-anchoroverflow-blockoverflow-inlineoverflow-wrapoverflow-xoverflow-yoverscroll-behavioroverscroll-behavior-blockoverscroll-behavior-inlineoverscroll-behavior-xoverscroll-behavior-yppad (@counter-style)paddingpadding-blockpadding-block-endpadding-block-startpadding-bottompadding-inlinepadding-inline-endpadding-inline-startpadding-leftpadding-rightpadding-top@pagepage-break-afterpage-break-beforepage-break-insidepaint()paint-orderpath()pc<percentage>perspectiveperspective()perspective-originplace-contentplace-itemsplace-self::placeholderpointer-eventspolygon()<position>positionprefix (@counter-style)ptpx...
...And 3 more matches
appearance (-moz-appearance, -webkit-appearance) - CSS: Cascading Style Sheets
note that firefox and edge also sup
port -webkit-appearance, for compatibility reasons.
...although it is sup
ported in most modern browsers, its implementation varies widely.
... in older browsers, even the keyword none does not have the same effect on all form elements across different browsers, and some do not sup
port it at all.
...And 3 more matches
aspect-ratio - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetaspect-ratio experimentalchrome partial sup
port 79notes partial sup
port 79notes notes chrome 79 adds internal sup
port only for mapped valuesedge partial sup
port 79notes partial sup
port 79notes notes edge 79 adds internal sup
port only for mapped valuesfirefox partial sup
port 71notes partial sup
port 71n...
...otes notes firefox 71 adds internal sup
port only for mapped values no sup
port 69 — 71notes disabled notes firefox 69 adds internal sup
port only for mapped valuesdisabled from version 69 until version 71 (exclusive): this feature is behind the layout.css.width-and-height-map-to-aspect-ratio.enabled preference (needs to be set to true).
... to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari no sup
port nowebview android partial sup
port 79notes partial sup
port 79notes notes webview 79 adds internal sup
port only for mapped valueschrome android partial sup
port 79notes partial sup
port 79notes notes chrome 79 adds internal sup
port only for mapped valuesfirefox android no sup
port noopera android no sup
port nosafari ios no sup
port ...
...And 3 more matches
box-align - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbox-align deprecatednon-standardchrome full sup
port 1prefixed full sup
port 1prefixed prefixed implemented with the vendor prefix: -webkit-edge full sup
port 12prefixed full sup
port 12prefixed prefixed implemented with the vendor prefix: -webkit-firefox full sup
port ...
... 1prefixed full sup
port 1prefixed prefixed implemented with the vendor prefix: -moz- full sup
port 49prefixed prefixed implemented with the vendor prefix: -webkit-ie no sup
port noopera full sup
port 15prefixed full sup
port 15prefixed prefixed implemented with the vendor prefix: -webkit-safari full sup
port 3prefixed full sup
port 3prefixed prefixed implemented with the vendor prefix: -webkit- no sup
port 1.1 — 3prefixed prefixed implem...
...ented with the vendor prefix: -khtml-webview android full sup
port ≤37prefixed full sup
port ≤37prefixed prefixed implemented with the vendor prefix: -webkit-chrome android full sup
port 18prefixed full sup
port 18prefixed prefixed implemented with the vendor prefix: -webkit-firefox android full sup
port 4prefixed full sup
port 4prefixed prefixed implemented with the vendor prefix: -moz- full sup
port 49prefixed prefixed implemented with the vendor prefix: -webkit-opera android ...
...And 3 more matches
caption-side - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcaption-sidechrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 8opera full sup
port 4safari full sup
port 1webview android full sup
port...
... ≤37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0non-standard values left, right, top-outside, and bottom-outside non-standardchrome no sup
port noedge no sup
port nofirefox full sup
port 1ie no sup
port noopera no sup
port ...
... nosafari no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android full sup
port 4opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port notop and bottom are relative to the writing-mode valuechrome no sup
port noedge no sup
port nofirefox full sup
port 42ie no sup
port ...
...And 3 more matches
display - CSS: Cascading Style Sheets
note: browsers that sup
port the two value syntax, on finding the outer value only, such as when display: block or display: inline is specified, will set the inner value to flow.
... note: browsers that sup
port the two value syntax, on finding the inner value only, such as when display: flex or display: grid is specified, will set their outer value to block.
... note: in browsers that sup
port the two-value syntax, if no inner value is specified it will default to flow.
...And 3 more matches
env() - CSS: Cascading Style Sheets
to tell the browser to use the whole available space on the screen, and so enabling us to use the env() variables, we need to add a new view
port meta value: <meta name="view
port" content="view
port-fit=cover" /> body { padding: env(safe-area-inset-top, 20px) env(safe-area-inset-right, 20px) env(safe-area-inset-bottom, 20px) env(safe-area-inset-left, 20px); } in addition, unlike custom properties, which cannot be used outside of declarations, the env() function can be used in place of any part of a property value, or an...
... originally provided by the ios browser to allow developers to place their content in a safe area of the view
port, the safe-area-inset-* values defined in the specification can be used to help ensure content is visible even to viewers using non‑rectangular displays.
...ues */ env(safe-area-inset-top, 20px); env(safe-area-inset-right, 1em); env(safe-area-inset-bottom, 0.5vh); env(safe-area-inset-left, 1.4rem); values safe-area-inset-top, safe-area-inset-right, safe-area-inset-bottom, safe-area-inset-left the safe-area-inset-* variables are four environment variables that define a rectangle by its top, right, bottom, and left insets from the edge of the view
port, which is safe to put content into without risking it being cut off by the shape of a non‑rectangular display.
...And 3 more matches
image-set() - CSS: Cascading Style Sheets
this is im
portant primarily for screen readers, as a screen reader will not announce its presence and therefore convey nothing to its users.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetimage-set()chrome full sup
port 21prefixed full sup
port 21prefixed prefixed implemented with the vendor prefix: -webkit-edge full sup
port 79prefixed full sup
port 79prefixed prefixed implemented with the vendor prefix: -webkit-firefox no sup
port ...
... nonotes no sup
port nonotes notes see bug 1107646.ie no sup
port noopera full sup
port 15prefixed full sup
port 15prefixed prefixed implemented with the vendor prefix: -webkit-safari partial sup
port 6prefixed notes partial sup
port 6prefixed notes prefixed implemented with the vendor prefix: -webkit-notes sup
port for url images only and x is the only sup
ported resolution unit.
...And 3 more matches
outline-color - CSS: Cascading Style Sheets
note that browsers are not required to sup
port this value; if they don't, this keyword is considered invalid.
...if the color of the outline is adjusted, it is im
portant to ensure that the contrast ratio between it and the background the outline is placed over is high enough that people experiencing low vision conditions will be able to perceive it.
... webaim: color contrast checker mdn understanding wcag, guideline 1.4 explanations understanding success criterion 1.4.3 | w3c understanding wcag 2.0 formal definition initial valueinvert, for browsers sup
porting it, currentcolor for the otherapplies toall elementsinheritednocomputed valuefor the keyword invert, the computed value is invert.
...And 3 more matches
quotes - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetquoteschrome full sup
port 11edge full sup
port 12firefox full sup
port 1.5ie full sup
port 8opera full sup
port 4safari full sup
port 9webview android full supp...
...ort 37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 9samsung internet android full sup
port 1.0auto keywordchrome no sup
port nonotes no sup
port nonotes notes this value is not sup
ported, but the default browser behavior is to choose appropriate quotes for the user's language settingedge no sup
port nonotes no sup
port ...
... nonotes notes this value is not sup
ported, but the default browser behavior is to choose appropriate quotes for the user's language settingfirefox full sup
port 70ie no sup
port nonotes no sup
port nonotes notes this value is not sup
ported, but the default browser behavior is to choose appropriate quotes for the user's language settingopera no sup
port nonotes no sup
port nonotes notes this value is not sup
ported, but the default browser behavior is to choose appropriate quotes for the user's language settingsafari no sup
port ...
...And 3 more matches
Setting up adaptive streaming media sources - Developer guides
this article explains how, looking at two of the most common formats: mpeg-dash and hls (http live streaming.) choosing formats in terms of adaptive streaming formats, there are many to choose from; we decided to choose the following two as between them we can sup
port most modern browsers.
... other reasons to use live profile over ondemand for vod content may be: your client or server does not sup
port range requests your server cannot cache range requests efficiently your server cannot prefetch range requests efficiently the sidx* is large and having to load it first slows down startup a little you want to use the original files for both dash and other forms of delivery (such as microsoft smooth streaming) as a transition strategy you can use the same media files for both live transmissio...
...n and vod at a later stage *sidx or segmentindexbox is a structure describing a segment by giving its earliest presentation time and other meta-data and can often make up a large
portion of the mpd file.
...And 3 more matches
Writing Web Audio API code that works in every browser - Developer guides
if you're
porting moderately "old" code (say, a year old) it's possible that it uses some methods that audiocontext-monkeypatch doesn't alias, because it helps you to write code in the new style.
...you can also check this article on
porting which covers more cases and has many code samples.
...if it's using, for example, oscillatornode, you will have to wait until it is sup
ported, or maybe, if you're really eager, hack in some replacement using scriptprocessornode, which allows you to write a node with callbacks that get called periodically, so that your javascript code generates or processes audio.
...And 3 more matches
Content categories - Developer guides
note: a more detailed discussion of these content categories and their comparative functionalities is beyond the scope of this article; for that, you may wish to read the relevant
portions of the html specification.
... note: the <hgroup> element was removed from the w3c html specification prior to html 5 being finalized, but is still part of the whatwg specification and is at least partially sup
ported by most browsers.
... if a specific condition is fulfilled: <a>, if it contains only phrasing content <area>, if it is a descendant of a <map> element <del>, if it contains only phrasing content <ins>, if it contains only phrasing content <link>, if the itemprop attribute is present <map>, if it contains only phrasing content <meta>, if the itemprop attribute is present embedded content embedded content im
ports another resource or inserts content from another mark-up language or namespace into the document.
...And 3 more matches
HTML5 Parser - Developer guides
in other words, in sup
porting html5, gecko, webkit, and internet explorer (ie) will behave more consistently with each other.
...in addition, sup
porting reparsing led to unnecessarily complex parsing code.
...the older practice of escaping the string </script> by surrounding it with comment markers, while sup
ported by html5, is problematic in cases where the closing comment marker is omitted (see preceding point).
...And 3 more matches
<content>: The Shadow DOM Content Placeholder element (obsolete) - HTML: Hypertext Markup Language
note: for this code to work, the browser you display it in must sup
port web components.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontent deprecatednon-standardchrome full sup
port 35edge full sup
port 79firefox no sup
port 33 — 59disabled no sup
port 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).
... to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 26safari no sup
port nowebview android full sup
port 37chrome android full sup
port 37firefox android no sup
port 33 — 59disabled no sup
port 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).
...And 3 more matches
<input type="color"> - HTML: Hypertext Markup Language
value a 7-character domstring specifying a <color> in lower-case hexadecimal notation events change and input sup
ported common attributes autocomplete and list idl attributes list and value methods select() value the value of an <input> element of type color is always a domstring which contains a 7-character string specifying an rgb color in hexadecimal format.
...in addition, colors with an alpha channel are not sup
ported; specifying a color in 9-character hexadecimal notation (e.g.
... note: any web browser that doesn't sup
port an input of type color will naturally fall back to the type text.
...And 3 more matches
Connection management in HTTP/1.x - HTTP
http mostly relies on tcp for its trans
port protocol, providing a connection between the client and the server.
... it's im
portant point to note that connection management in http applies to the connection between two consecutive nodes, which is hop-by-hop and not end-to-end.
... unless dealing with a very old system, which doesn't sup
port a persistent connection, there is no compelling reason to use this model.
...And 3 more matches
CSP: child-src - HTTP
syntax one or more sources can be allowed for the child-src policy: content-security-policy: child-src <source>; content-security-policy: child-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 3 more matches
CSP: connect-src - HTTP
syntax one or more sources can be allowed for the connect-src policy: content-security-policy: connect-src <source>; content-security-policy: connect-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 3 more matches
CSP: font-src - HTTP
syntax one or more sources can be allowed for the font-src policy: content-security-policy: font-src <source>; content-security-policy: font-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 3 more matches
CSP: frame-ancestors - HTTP
setting this directive to 'none' is similar to x-frame-options: deny (which is also sup
ported in older browsers).
... this directive is not sup
ported in the <meta> element.
...only the sources listed below are allowed: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number, separated by spaces.
...And 3 more matches
CSP: frame-src - HTTP
syntax one or more sources can be allowed for the frame-src policy: content-security-policy: frame-src <source>; content-security-policy: frame-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 3 more matches
CSP: manifest-src - HTTP
syntax one or more sources can be allowed for the manifest-src policy: content-security-policy: manifest-src <source>; content-security-policy: manifest-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 3 more matches
CSP: media-src - HTTP
syntax one or more sources can be allowed for the media-src policy: content-security-policy: media-src <source>; content-security-policy: media-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 3 more matches
CSP: object-src - HTTP
syntax one or more sources can be allowed for the object-src policy: content-security-policy: object-src <source>; content-security-policy: object-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 3 more matches
CSP: prefetch-src - HTTP
syntax one or more sources can be allowed for the prefetch-src policy: content-security-policy: prefetch-src <source>; content-security-policy: prefetch-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 3 more matches
CSP: worker-src - HTTP
syntax one or more sources can be allowed for the worker-src policy: content-security-policy: worker-src <source>; content-security-policy: worker-src <source> <source>; sources <source> can be one of the following: <host-source> internet hosts by name or ip address, as well as an optional url scheme and/or
port number.
... the site's address may include an optional leading wildcard (the asterisk character, '*'), and you may use a wildcard (again, '*') as the
port number, indicating that all legal
ports are valid for the source.
... mail.example.com:443: matches all attempts to access
port 443 on mail.example.com.
...And 3 more matches
X-XSS-Protection - HTTP
although these protections are largely unnecessary in modern browsers when sites implement a strong content-security-policy that disables the use of inline javascript ('unsafe-inline'), they can still provide protections for users of older web browsers that don't yet sup
port csp.
... 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 sup
port legacy browsers, it is recommended that you use content-security-policy without allowing unsafe-inline scripts instead.
... header type response header forbidden header name no syntax x-xss-protection: 0 x-xss-protection: 1 x-xss-protection: 1; mode=block x-xss-protection: 1; re
port=<re
porting-uri> 0 disables xss filtering.
...And 3 more matches
HTTP range requests - HTTP
http range requests allow to send only a
portion of an http message from a server to a client.
... checking if a server sup
ports partial requests if the accept-ranges is present in http responses (and its value isn't "none"), the server sup
ports range requests.
... if sites omit the accept-ranges header, they likely don't sup
port partial requests.
...And 3 more matches
HTTP resources and specifications - HTTP
ec deprecate modification of 'secure' cookies from non-secure origins ietf draft rfc 2145 use and interpretation of http version numbers informational rfc 6585 additional http status codes proposed standard rfc 7538 the hypertext transfer protocol status code 308 (permanent redirect) proposed standard rfc 7725 an http status code to re
port legal obstacles on the standard track rfc 2397 the "data" url scheme proposed standard rfc 3986 uniform resource identifier (uri): generic syntax internet standard rfc 5988 web linking defines the link header proposed standard experimental spec hypertext transfer protocol (http) keep-alive header informational (expired) d...
... proposed standard rfc 7239 forwarded http extension proposed standard rfc 6455 the websocket protocol proposed standard rfc 5246 the trans
port layer security (tls) protocol version 1.2 this specification has been modified by subsequent rfcs, but these modifications have no effect on the http protocol.
... proposed standard rfc 8446 the trans
port layer security (tls) protocol version 1.3 supersedes tls 1.2.
...And 3 more matches
Intl - JavaScript
locale identification and negotiation the internationalization constructors as well as several language sensitive methods of other constructors (listed under see also) use a common pattern for identifying locales and determining the one they will actually use: they all accept locales and options arguments, and negotiate the requested locale(s) against the locales they sup
port using an algorithm specified in the options.localematcher property.
... multiple locales may be specified (and a best-sup
ported locale determined by evaluating each of them in order and comparing against the locales sup
ported by the implementation) by passing an array (or array-like object, with a length property and corresponding indexed elements) whose elements are either intl.locale objects or values that convert to unicode bcp 47 locale identifier strings.
... this registry is periodically updated over time, and implementations may not always be up to date, so be careful not to rely too much on tags being universally sup
ported.
...And 3 more matches
String.prototype.replace() - JavaScript
a number of special replacement patterns are sup
ported; see the "specifying a string as a parameter" section below.
... $` inserts the
portion of the string that precedes the matched substring.
... $' inserts the
portion of the string that follows the matched substring.
...And 3 more matches
WebAssembly.Memory.prototype.buffer - JavaScript
examples using buffer the following example (see memory.html on github, and view it live also) fetches and instantiates the loaded memory.wasm byte code using the webassembly.instantiatestreaming() method, while im
porting the memory created in the line above.
... it then stores some values in that memory, then ex
ports a function and uses it to sum some values.
... webassembly.instantiatestreaming(fetch('memory.wasm'), { js: { mem: memory } }) .then(obj => { var i32 = new uint32array(memory.buffer); for (var i = 0; i < 10; i++) { i32[i] = i; } var sum = obj.instance.ex
ports.accumulate(0, 10); console.log(sum); }); specifications specification webassembly javascript interfacethe definition of 'buffer' in that specification.
...And 3 more matches
WebAssembly.Table.prototype.get() - JavaScript
return value a function reference — this is an ex
ported webassembly function, a javascript wrapper for an underlying wasm function.
...it then retrieves the references stored in the ex
ported table.
... webassembly.instantiatestreaming(fetch('table.wasm')) .then(function(obj) { var tbl = obj.instance.ex
ports.tbl; console.log(tbl.get(0)()); // 13 console.log(tbl.get(1)()); // 42 }); note how you've got to include a second function invocation operator at the end of the accessor to actually retrieve the value stored inside the reference (e.g.
...And 3 more matches
Populating the page: how browsers work - Web Performance
this is why it's im
portant for web performance optimization to include everything the browser needs to start rendering a page, or at least a template of the page - the css and html needed for the first render -- in the first 14 kilobytes.
...to ensure the script doesn't block the process, add the async attribute, or the defer attribute if javascript parsing and execution order is not im
portant.
...in some cases, content can be promoted to their own layers and composited, improving performance by painting
portions of the screen on the gpu instead of the cpu, freeing up the main thread.
...And 3 more matches
Privacy, permissions, and information security
security and privacy defined before we go into any depth about the various security and privacy features available to users on the web, let's define some im
portant terms.
... personally identification can include information like usernames, real names, passwords, phone numbers or addresses (or even
portions of them), information about medical history, social security numbers, driver licenses, or any other form of id or id number, credit card information, and so forth.
... for example, if a web site queries a user's browser for the elapsed time, a comparison of that time to the time as re
ported by the server might be useful as a factor in fingerprinting.
...And 3 more matches
Progressive web app structure - Progressive web apps (PWAs)
in addition to the basic shell, you can add other features such as add to home screen or push notifications, safe in the knowledge that the app will still work ok if they are not sup
ported by the user's browser — this is the beauty of progressive enhancement.
... being linkable, progressive and responsive by design it's im
portant to remember the pwa advantages and keep them in mind when designing the application.
... progressive: start with the "good, old basic website” and progressively add new features while remembering to detect if they are available in the browser and gracefully handle any errors that crop up if sup
port is not available.
...And 3 more matches
Progressive loading - Progressive web apps (PWAs)
first meaningful paint it's im
portant to deliver something meaningful to the user as soon as possible — the longer they wait for the page to load, the bigger the chance they will leave before waiting for everything to finish.
... this problem can be solved with the new intersection observer api — using this we can ensure that images will be loaded only when they appear in the view
port.
... intersection observer this is a progressive enhancement to the previously working example — intersection observer will load target images only when the user scrolls down, causing them to display in the view
port.
...And 3 more matches
Media - Progressive web apps (PWAs)
in css, you can use @im
port at the start of a stylesheet to im
port another stylesheet from a url, optionally specifying the media type.
... printing css has specific sup
port for printing and for paged media in general.
... example this rule sets the page margins to one inch on all four sides: @page {margin: 1in;} this rule ensures that every h1 element starts on a new page: h1 {page-break-before: always;} more details for full details of css sup
port for paged media, see paged media in the css specification.
...And 3 more matches
SVG fonts - SVG: Scalable Vector Graphics
« previousnext » when svg was specified, sup
port for web fonts was not widespread in browsers.
... svg fonts are currently sup
ported only in safari and android browser.
...other tools however like the adobe svg viewer plugin, batik and parts of inkscape sup
port svg font embedding.
...And 3 more matches
Tutorials
html tutorials introductory level introduction to html this module sets the stage, getting you used to im
portant concepts and syntax, looking at applying html to text, how to create hyperlinks, and how to use html to structure a webpage.
... mdn html element reference a comprehensive reference for html elements, and how the different browsers sup
port them.
... advanced level html forms forms are a very im
portant part of the web — these provide much of the functionality you need for interacting with websites, e.g.
...And 3 more matches
Using the Mozilla JavaScript interface to XSL Transformations - XSLT: Extensible Stylesheet Language Transformations
creating an xsltprocessor to start, you need to create an xsltprocessor object: var processor = new xsltprocessor(); specifying the stylesheet before you can use it, you must im
port a stylesheet with the xsltprocessor.im
portstylesheet() method.
... it has a single parameter, which is the dom node of the xslt stylesheet to im
port.
... note: the im
port is live, meaning that if you alter the stylesheet dom after im
porting it, this will be reflected in the processing.
...And 3 more matches
JavaScript/XSLT Bindings - XSLT: Extensible Stylesheet Language Transformations
once instantiated, an xsltprocessor has an xsltprocessor.im
portstylesheet() method that takes as an argument the xslt stylesheet to be used in the transformation.
... the stylesheet has to be passed in as an xml document, which means that the .xsl file has to be loaded by the page before calling xsltprocessor.im
portstylesheet().
... figure 1 : instantiating an xsltprocessor var xsltprocessor = new xsltprocessor(); // load the xsl file using synchronous (third param is set to false) xmlhttprequest var myxmlhttprequest = new xmlhttprequest(); myxmlhttprequest.open("get", "example.xsl", false); myxmlhttprequest.send(null); var xslref = myxmlhttprequest.responsexml; // finally im
port the .xsl xsltprocessor.im
portstylesheet(xslref); for the actual transformation, xsltprocessor requires an xml document, which is used in conjunction with the im
ported xsl file to produce the final result.
...And 3 more matches
Loading and running WebAssembly code - WebAssembly
webassembly is not yet integrated with <script type='module'> or es2015 im
port statements, thus there is not a path to have the browser fetch modules for you using im
ports.
... the quickest, most efficient way to fetch a wasm module is using the newer webassembly.instantiatestreaming() method, which can take a fetch() call as its first argument, and will handle fetching, compiling, and instantiating the module in one step, accessing the raw byte code as it streams from the server: webassembly.instantiatestreaming(fetch('simple.wasm'), im
portobject) .then(results => { // do something with the results!
... }); if we used the older webassembly.instantiate() method, which doesn't work on the direct stream, we'd need an extra step of converting the fetched byte code to an arraybuffer, like so: fetch('module.wasm').then(response => response.arraybuffer() ).then(bytes => webassembly.instantiate(bytes, im
portobject) ).then(results => { // do something with the results!
...And 3 more matches
Compiling from Rust to WebAssembly - WebAssembly
the third line contains a use command, which im
ports code from a library into your code.
... in this case, we're im
porting everything in the wasm_bindgen::prelude module.
...not everything is sup
ported yet, but we're working on it.
...And 3 more matches
2015 MDN Fellowship Program - Archive of obsolete content
specific projects (we encourage you to target one of these in your application): testthewebforward brief project description mozilla participates in an im
portant w3c open testing initiative, testthewebforward.com.
... to sup
port our efforts, the fellow will review various technical specifications to identify gaps between the documentation and current situation and refine existing tests to adapt to this cross-browser test harness.
...finding and addressing performance bottlenecks depends on tooling the browser networking and rendering but also, often more im
portant, user perception.
...And 2 more matches
Communicating using "postMessage" - Archive of obsolete content
as an alternative to
port, content modules sup
port the built-in message event.
... in most cases
port is preferable to message events.
... however, the context-menu module does not sup
port port, so to send messages from a content script to the add-on via a context menu object, you must use message events.
...And 2 more matches
SDK and XUL Comparison - Archive of obsolete content
advantages of the sdk simplicity the sdk provides high-level javascript apis to simplify many common tasks in add-on development, and tool sup
port which greatly simplifies the process of developing, testing, and packaging an add-on.
... we also expect to sup
port both desktop and mobile firefox using a single edition of the sdk: so you'll be able to write one extension and have it work on both products.
... mobile sup
port starting in sdk 1.5, we've added experimental sup
port for developing add-ons on the new native version of firefox mobile.
...And 2 more matches
tabs - Archive of obsolete content
); tabs.on('activate', function(tab) { tab.url = "http://www.example.com"; }); run scripts in a tab you can attach a content script to the page hosted in a tab, and use that to access and manipulate the page's content (see the modifying the page hosted by a tab tutorial): var tabs = require("sdk/tabs"); tabs.on('activate', function(tab) { var worker = tab.attach({ contentscript: 'self.
port.emit("html", document.body.innerhtml);' }); worker.
port.on("html", function(message) { console.log(message) }) }); note that tab.attach is tab-centric: if the user navigates to a new page in the same tab, then the worker and content scripts will be reattached to the new page.
... to learn more about private windows, how to opt into private browsing, and how to sup
port private browsing, refer to the documentation for the private-browsing module.
... converting to xul tabs to convert from the high-level tab objects used in this api to the low-level xul tab objects used in the tabs/utils api and by traditional add-ons, use the viewfor() function ex
ported by the viewfor module.
...And 2 more matches
windows - Archive of obsolete content
to learn more about private windows, how to opt into private browsing, and how to sup
port private browsing, refer to the documentation for the private-browsing module.
... 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 ex
ported by the viewfor module.
... to convert back the other way, from a chrome window to a browserwindow object, use the modelfor() function, ex
ported by the modelfor module.
...And 2 more matches
remote/child - Archive of obsolete content
it provides two main things: access to web content loaded into this child process
port mechanisms to communicate with the main process interacting with web content to interact with web content, the sdk/remote/child module provides a frames property that's a list of all content frames loaded into this child process.
... communicating with the parent process to communicate with the parent process, the process, frames, and frame objects in sdk/remote/child have a
port object that you can use to receive messages from, and send messages to, code in the parent.
... properties
port an event emitter that sends and receives events from the main process.
...And 2 more matches
test/assert - Archive of obsolete content
for example: var a = 1; ex
ports["test value of a"] = function(assert) { assert.ok(a == 1, "test that a is 1"); } require("sdk/test").run(ex
ports); globals constructors assert(logger) create a new assert object.
... strictequal(actual, expected, message) tests that two objects are equal, using the strict equality operator ===: // this test will pass, because "==" will perform type conversion ex
ports["test coercive equality"] = function(assert) { assert.equal(1, "1", "test coercive equality between 1 and '1'"); } // this test will fail, because the types are different ex
ports["test strict equality"] = function(assert) { assert.strictequal(1, "1", "test strict equality between 1 and '1'"); } parameters actual : object the actual result.
... notstrictequal(actual, expected, message) tests that two objects are not equal, using the negation of the strict equality operator ===: // this test will fail, because "==" will perform type conversion ex
ports["test coercive equality"] = function(assert) { assert.notequal(1, "1", "test coercive equality between 1 and '1'"); } // this test will pass, because the types are different ex
ports["test strict equality"] = function(assert) { assert.notstrictequal(1, "1", "test strict equality between 1 and '1'"); } parameters actual : object the actual result.
...And 2 more matches
test/utils - Archive of obsolete content
let { before, after } = require('sdk/test/utils'); let { search } = require('sdk/places/bookmarks'); ex
ports.testcountbookmarks = function (assert, done) { search().on('end', function (results) { assert.equal(results, 0, 'should be no bookmarks'); done(); }); }; before(ex
ports, function (name, assert) { removeallbookmarks(); }); require('sdk/test').run(ex
ports); both before and after may be asynchronous.
... to make them asynchronous, pass a third argument done, which is a function to call when you have finished: let { before, after } = require('sdk/test/utils'); let { search } = require('sdk/places/bookmarks'); ex
ports.testcountbookmarks = function (assert, done) { search().on('end', function (results) { assert.equal(results, 0, 'should be no bookmarks'); done(); }); }; before(ex
ports, function (name, assert, done) { removeallbookmarksasync(function () { done(); }); }); require('sdk/test').run(ex
ports); globals functions before(ex
ports, beforefn) runs beforefn before each test in the file.
... parameters ex
ports : object a test file's ex
ports object beforefn : function the function to be called before each test.
...And 2 more matches
Creating annotations - Archive of obsolete content
ve || $(this).hasclass('annotated')) { return; } resetmatchedelement(); ancestor = $(this).closest("[id]"); matchedelement = $(this).first(); originalbgcolor = $(matchedelement).css('background-color'); $(matchedelement).css('background-color', 'yellow'); $(matchedelement).bind('click.annotator', function(event) { event.stoppropagation(); event.preventdefault(); self.
port.emit('show', [ document.location.tostring(), $(ancestor).attr("id"), $(matchedelement).text() ] ); }); }); conversely, the add-on resets the matched element on mouseout: $('*').mouseout(function() { resetmatchedelement(); }); save this code in a new file called selector.js in your add-on's data directory.
... updating main.js go back to main.js and add the code to create the selector into the main function: var selector = pagemod.pagemod({ include: ['*'], contentscriptwhen: 'ready', contentscriptfile: [data.url('jquery-1.4.2.min.js'), data.url('selector.js')], onattach: function(worker) { worker.postmessage(annotatorison); selectors.push(worker); worker.
port.on('show', function(data) { console.log(data); }); worker.on('detach', function () { detachworker(this, selectors); }); } }); make sure the name you use to load jquery matches the name of the jquery version you downloaded.
... at the top of the file im
port the page-mod module and declare an array for the workers: var pagemod = require('sdk/page-mod'); var selectors = []; add detachworker(): function detachworker(worker, workerarray) { var index = workerarray.indexof(worker); if(index != -1) { workerarray.splice(index, 1); } } edit toggleactivation() to notify the workers of a change in activation state: function activateselectors() {...
...And 2 more matches
Modifying the Page Hosted by a Tab - Archive of obsolete content
to send a message from one side to the other, sender calls
port.emit() and receiver listens using
port.on().
... in the content script,
port is a property of the global self object.
... in the add-on script, tab.attach() returns a worker object containing the
port property you use to send messages to the content script.
...And 2 more matches
Unit Testing - Archive of obsolete content
now create a new file called "base64.js", and give it the following contents: const { atob, btoa } = require("resource://gre/modules/services.jsm"); ex
ports.atob = a => atob(a); ex
ports.btoa = b => btoa(b); this code ex
ports two functions, which just call the platform's btoa() and atob() functions.
... now "index.js" im
ports the base64 module and calls its two ex
ported functions.
...in its place create a file called test-base64.js with the following contents: var base64 = require("../base64"); ex
ports["test atob"] = function(assert) { assert.ok(base64.atob("agvsbg8=") == "hello", "atob works"); } ex
ports["test btoa"] = function(assert) { assert.ok(base64.btoa("hello") == "agvsbg8=", "btoa works"); } ex
ports["test empty string"] = function(assert) { assert.throws(function() { base64.atob(); }, "empty string check works"); } require("sdk/test").run(ex
ports); note that with jpm we must give the e...
...And 2 more matches
Modules - Archive of obsolete content
some simple code to turn a javascript module into non-mozilla-specific code (e.g., if
porting to the browser).
... the use of eval() will probably not be of concern because it is only being used on the ex
ported_symbols array which should not depend on user input.
... function im
portmodule (thatobj) { thatobj = thatobj || window; var ex
ported_symbols = [ // put the symbols here ]; // your code here...
...And 2 more matches
Enhanced Extension Installation - Archive of obsolete content
item type the extension system in firefox 1.0 sup
ports only two item types, extensions and themes.
...if an extension is installed at two different install locations, the one with the higher im
portance is what is shown in this file.
... since all metadata is now stored in the profile directory, there is no longer any need for special extension system handling of the -register command line flag, so sup
port for that has been removed.
...And 2 more matches
Connecting to Remote Content - Archive of obsolete content
it is an integral part of the modern web, and all major browsers sup
port it.
...therefore, it is very im
portant that xmlhttprequest calls are always done asynchronously.
...after that, the xslt stylesheet can be im
ported into an xslt processor as shown below.
...And 2 more matches
The Box Model - Archive of obsolete content
it is im
portant to know how it works in order to make interfaces that are easy to localize, skin and use in different types of operating systems, screen sizes and resolutions.
...the "cat" button is now larger in a 3 to 1 pro
portion.
...we recommended that you use pro
portional units (em, %) instead of absolute units (px) whenever possible.
...And 2 more matches
Signing an extension - Archive of obsolete content
this can be easily installed with mac
ports.
... sudo
port install nss ex
port your certificate if you have your certificate in firefox, ex
port it by following the steps below.
... a p12 file will be ex
ported on your desktop.
...And 2 more matches
Tabbed browser - Archive of obsolete content
xul: <menuitem oncommand="myextension.foo(event)" onclick="checkformiddleclick(this, event)" label="click me"/> js: var myextension = { foo: function(event) { openuilink("http://www.example.com", event, false, true); } } opening a url in an on demand tab cu.im
port("resource://gre/modules/xpcomutils.jsm"); xpcomutils.definelazyservicegetter(this, "gsessionstore", "@mozilla.org/browser/sessionstore;1", "nsisessionstore"); // create new tab, but don't load the content.
...for example: var num = gbrowser.browsers.length; for (var i = 0; i < num; i++) { var b = gbrowser.getbrowseratindex(i); try { dump(b.currenturi.spec); // dump urls of all open tabs to console } catch(e) { components.utils.re
porterror(e); } } to learn what methods are available for <browser/> and <tabbrowser/> elements, use dom inspector or look in browser.xml for corresponding xbl bindings (or just look at the current reference pages on browser and tabbrowser.
... components.utils.im
port('resource://gre/modules/services.jsm'); services.obs.addobserver(httpobs, 'http-on-modify-request', false); //services.obs.removeobserver(httpobs, 'http-on-modify-request'); //uncomment this line, or run this line when you want to remove the observer var httpobs = { observe: function (asubject, atopic, adata) { if (atopic == 'http-on-modify-request') { /*start - do not ed...
...And 2 more matches
Updating addons broken by private browsing changes - Archive of obsolete content
if your code 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 nsistricttrans
portsecurityservice 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-tra...
...nsition-complete then your addon will require updating to correctly sup
port the new per-window private browser feature in firefox 20 (and will require updating to work correctly in releases of firefox since the ones listed).
... there is a new download-manager-remove-download-guid notification, which passes an nsisup
portscstring subject for the guid or null.
...And 2 more matches
Creating a status bar extension - Archive of obsolete content
download the sample the install manifest the install manifest, install.rdf, is a text file containing information that tells the host application im
portant information about the extension.
...ple.com</em:id> <em:version>1.0</em:version> <em:type>2</em:type> <!-- front end metadata --> <em:name>status bar sample 1</em:name> <em:description>sample static status bar panel</em:description> <em:creator>my name</em:creator> <em:homepageurl>http://developer.mozilla.org/en/docs/creating_a_status_bar_extension</em:homepageurl> <!-- describe the firefox versions we sup
port --> <em:targetapplication> <description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minversion>1.5</em:minversion> <em:maxversion>2.0.0.*</em:maxversion> </description> </em:targetapplication> </description> </rdf> let's take a look at some key parts of the manifest.
...it's also necessary to indicate what versions of the target application or applications your extension sup
ports.
...And 2 more matches
Documentation for BiDi Mozilla - Archive of obsolete content
this is preliminary documentation of the changes introduced to mozilla as part of the bidi sup
port contributed by ibm (a.k.a.
...as far as we could discover, icu is the only one which is 100% compatible with uba, including sup
port for explicit directional controls (lro, rlo, etc, and their html equivalents).
...we have also tested behaviour of all controls with dir=rtl and added sup
port where necessary.
...And 2 more matches
Helper Apps (and a bit of Save As) - Archive of obsolete content
limitations of nsimimeinfo no way to say "do whatever the os default is." no sup
port for command-line arguments.
... no sup
port for multiple commands connected by pipes (mostly useful on unix).
... ongoing work sup
port synchronous dialogs, not just asynchronous ones (fixes many issues related to pre-downloading, content-decoding, etc).
...And 2 more matches
Introducing the Audio API extension - Archive of obsolete content
though some browsers may still sup
port it, it is in the process of being dropped.
...it's im
portant to note that the samples are not separated by channels; they are all delivered together.
...it's im
portant to note that not all the samples might get written in the stream.
...And 2 more matches
Twitter - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
... most of twitter's methods are sup
ported, but not all.
... list methods, spam re
porting methods, and oauth are not currently sup
ported.
...And 2 more matches
Selection - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
...this api currently lives in the future and must be im
ported for use: jetpack.future.im
port("selection"); getting and setting the selection the current version of jetpack.selection includes these formats: .text and .html getting the selection the following is an example of getting the selection from the user.
... jetpack.im
port.future("selection");var textofsel = jetpack.selection.text;var htmlofsel = jetpack.selection.html; setting the selection the following is an example of getting the selection from the user.
...And 2 more matches
Plug-n-Hack Phase1 - Archive of obsolete content
security tool manifest to sup
port pnh-1 security tools provide a manifest over http(s) which defines the capabilities that the browser can make use of.
...for example: var manifest = {"detail":{"url":"http://localhost:8080/manifest"}}; var evt = new customevent('configuresectool', manifest); it is suggested that browsers wishing to sup
port pnh restrict handling of customevents such that they’re ignored where the event happens outside of user initiated actions.
... the configuration document should then listen for a number of other events: configuresectoolstarted - this notifies the document that the browser is processing the configuration; if this event is not received within a reasonable amount of time after the configuresectool event has been fired, you might want to warn the user that pnh does not seem to be sup
ported by this browser (perhaps prompting them to install the appropriate addon).
...And 2 more matches
Plug-n-Hack - Archive of obsolete content
for example, to configure a browser to use an intercepting proxy that can handle https traffic, the user must typically: configure their browser to proxy via the tool configure the tool to proxy via their corporate proxy im
port the tool’s ssl certificate into their browser if any of these steps are carried out incorrectly then the browser will typically fail to connect to any website – debugging such problems can be frustrating and time-consuming.
...pnh allows security tools to declare the functionality that they sup
port which is suitable for invoking directly from the browser.
... a browser that sup
ports pnh can then allow the user to invoke such functionality without having to switch to and from the tool.
...And 2 more matches
RDF Datasource How-To - Archive of obsolete content
an "address book" datasource could translate a database file into statements like "spammer128@hotmail.com's real name is 'billy dumple'" and "spammer128@hotmail.com is considered an 'im
portant friend'." statements from one datasource can be combined with statements from another datasource using a composite datasource.
... by combining statements from the imap datasource and address book datasource, above, we'd be able to identify the sender of "message 126" as an "im
portant friend".
...registering an rdf datasource is fairly simple: in the dll's nsregisterself() method, you simply call the component manager's registercomponent() method: extern "c" pr_implement(nsresult) nsregisterself(nsisup
ports* aservicemanager, const char* apath) { nsresult rv; ...
...And 2 more matches
Space Manager Detailed Design - Archive of obsolete content
overview the space manager and related classes and structures are an im
portant of the gecko layout system, specifically block layout.
...the primary goal of the space manager is to provide information about those bands of space to sup
port the css notion of floated elements.
... there are three im
portant parts to the space manager api: the parts that deal with the coordinate space of the space manager, the parts that deal with the regions managed by the space manager, and the parts that manage float impact intervals.
...And 2 more matches
File object - Archive of obsolete content
there is currently no sup
port for p2open()-like semantics.
...bi-directional pipelines are not sup
ported.
... file.hasrandomaccess true if random access is sup
ported for this file.
...And 2 more matches
Running Tamarin acceptance tests - Archive of obsolete content
$ cd tamarin-redux/test/acceptance $ ex
port asc=/users/build/hg/tamarin-redux/utils/asc.jar $ ex
port builtinabc=/users/build/hg/tamarin-redux/generated/builtin.abc $ ex
port shellabc=/users/build/hg/tamarin-redux/generated/shell_toplevel.abc $ ex
port avm=/users/build/hg/tamarin-redux/objdir-release/shell/avmshell $ python runtests.py tamarin tests started: 2010-09-28 10:37:06.410676 current configuration: x64-mac-tvm-release avm version: 52...
... the locations of avm, asc, builtinabc and shellabc must also be defined using windows paths (replace backslashes [\] with forward slashes [/]): ex
port avm=c:/location/of/avmshell.exe ex
port asc=c:/location/of/asc.jar ...
...you should set environment variables as described above except for avm, which should be: $ ex
port avm=$tamarin_build_top/platform/android/android_shell.py where $tamarin_build_top is your main tamarin repo folder.
...And 2 more matches
The new nsString class implementation (1999) - Archive of obsolete content
the deficiencies of the current implementation are: class based -- making it unsuitable for cross-dll usage due to fragility little intrinsic i18n sup
port few efficiencies, notably a lack of sup
port for narrow (1-byte) character strings no sup
port for external memory management policy lack of xpcom interface notable features of the new nsstrimpl implementation are: intrinsic sup
port for 1 and 2 byte character widths provides automatic conversion between strings with different character sizes inviolate base structure eliminates class fragili...
...usage patterns how to use these classes to increase the
portability, thread and process safety of gecko, i suggest the following rules regarding the use of each of our string class derivatives: <center> string class</center> <center> where to use</center> nsstrimpl use to pass strings between modules who have linked the nsstrimpl function library.
...our minimalistic nsimemoryagent interface is just rich enough to sup
port the nsstring idiom, and could be extended to serve as the general memory allocation idiom.
...And 2 more matches
Learn XPI Installer Scripting by Example - Archive of obsolete content
this installer script is relatively short, but it exercises most of the im
portant features of the xpinstall api, and it can easily be used as a template for other more general software installations.
... in this article, we use the unix install file, but the installers for all the platforms are quite similar, and you can easily take what you learn here and apply it to installations on any platform that mozilla sup
ports.
..."program" represents the directory where software itself is installed (e.g., c:\program files\ on win32 systems), as opposed to sup
porting directories like "components", "chrome", or "temporary" (see getfolder in the xpinstall api reference for a list of keywords).
...And 2 more matches
textbox (Toolkit autocomplete) - Archive of obsolete content
autocomplete a textbox that sup
ports autocomplete.
... selectionend type: integer get or set the end of the selected
portion of the field's text.
... selectionstart type: integer get or set the beginning of the selected
portion of the field's text.
...And 2 more matches
Textbox (XPFE autocomplete) - Archive of obsolete content
autocomplete a textbox that sup
ports autocomplete.
... selectionend type: integer get or set the end of the selected
portion of the field's text.
... selectionstart type: integer get or set the beginning of the selected
portion of the field's text.
...And 2 more matches
SeaMonkey - making custom toolbar (SM ver. 1.x) - Archive of obsolete content
sup
ported applications you can use the steps on this page only with seamonkey 1.x versions.
... seamonkey 2 is being reworked to sup
port the same process as firefox, thunderbird and others.
... note: for a similar tutorial that applies to seamonkey 2, firefox, thunderbird and sunbird, see: custom toolbar button earlier versions and other mozilla applications also sup
port extensions, but some parts of this tutorial are not appropriate for them.
...And 2 more matches
Creating a Window - Archive of obsolete content
this is the syntax that xml files use to im
port style sheets.
... in this case, we im
port the styles found in the global part of a skin package.
...in this case, the all-im
portant global.css file is selected.
...And 2 more matches
Document Object Model - Archive of obsolete content
the various dom objects have functions which may be accessed in script, however, it is im
portant to note that the dom is an api that is accessible by javascript.
...it is im
portant to note, however, that the open() method returns before the window has fully loaded, so functions will not typically be available yet.
... it is im
portant to note that attributes and properties are separate things.
...And 2 more matches
Introduction - Archive of obsolete content
java, for example, has
portability as a main selling point.
... xul is one such language designed specifically for building
portable user interfaces.
... xul is sup
ported in mozilla and browsers that are also based upon on the gecko engine, such as netscape 6 or later and mozilla firefox.
...And 2 more matches
XPCOM Interfaces - Archive of obsolete content
second, we query the file component and get the
portion of it that implements the nsilocalfile interface.
...all interfaces inherit from a top-level interface called nsisup
ports.
...because the interface nsisup
ports is implemented by all components, the function queryinterface() function is available in every component.
...And 2 more matches
Using nsIXULAppInfo - Archive of obsolete content
this is useful, for example, for extensions that sup
port several mozilla-based applications or several versions of a single application.
... note that while firefox 1.5, thunderbird 1.5, and xulrunner 1.8-based applications sup
port nsixulappinfo, older applications, such as firefox and thunderbird 1.0, do not sup
port it.
...the latter is useful if you're trying to sup
port nightly development builds of the application, and the former can be useful if you only sup
port official releases, and to distinguish between branch and trunk builds.
...And 2 more matches
textbox - Archive of obsolete content
autocomplete a textbox that sup
ports autocomplete.
... selectionend type: integer get or set the end of the selected
portion of the field's text.
... selectionstart type: integer get or set the beginning of the selected
portion of the field's text.
...And 2 more matches
window - Archive of obsolete content
this is used to prevent the find bar from being displayed when it's not sup
ported by the content (such as in the add-ons manager tab).
...this is sup
ported only from window elements, and is ignored on platforms that don't sup
port drawing into the title bar.
...sup
ported on mac os x 10.7 lion and later and on windows.
...And 2 more matches
Dialogs in XULRunner - Archive of obsolete content
for instance, windows has sup
ported built-in file open and file save dialogs for many years, and the macintosh has always had them.
...xul sup
ports native implementations of filepickers (mozilla terminology for file open and save dialogs).
...ts.classes["@mozilla.org/filepicker;1"].createinstance(nsifilepicker); fp.init(window, "open file", nsifilepicker.modeopen); fp.appendfilters(nsifilepicker.filtertext | nsifilepicker.filterall); var res = fp.show(); if (res == nsifilepicker.returnok) { var thefile = fp.file; alert(thefile.leafname); // --- do something with the file here --- } } xul does not currently sup
port any other common dialogs.
...And 2 more matches
calICalendarView - Archive of obsolete content
interface code [scriptable, uuid(3e567ccb-2ecf-4f59-b7ca-bf42b0fbf24a)] interface calicalendarview : nsisup
ports { attribute calicalendar displaycalender; attribute calicalendarviewcontroller controller; void showdate(in calidatetime adate); void setdaterange(in calidatetime astartdate, in calidatetime aenddate); readonly attribute calidatetime startdate; readonly attribute calidatetime enddate; readonly attribute boolean sup
portsdisjointdates; readonly attribute boolean hasdisjointdates;...
... sup
portsdisjointdates consumers of calicalendarview should check this attribute to determine whether or not the implementation allows for calls to setdatelist.
...note: this will likely change to selecteditems and return an array of caliitembases in order to sup
port selecting multiple items at once.
...And 2 more matches
NPWindow - Archive of obsolete content
mac os: window is a pointer to an np_
port.
...mac os: cliprect is the rectangle in
port coordinates to which the plug-in should clip its drawing.
...the window field holds a platform-specific handle to a drawable or an off-screen pixmap, as follows: windows: hdc mac os: pointer to np_
port structure unix/x11: not used.
...And 2 more matches
NPAPI plugin reference - Archive of obsolete content
np_getmimedescription np_getmimedescription returns a sup
ported mime type list for your plugin.
...on windows you have to define sup
ported mimetypes in the dll resource file.
... np_
port contains information required by the window field of an npwindow structure.
...And 2 more matches
Create Your Own Firefox Background Theme - Archive of obsolete content
firefox may reveal more of the lower
portion of the image if another toolbar or other ui element is added to the top of the window.
... the upper right-hand side of the image should have the most im
portant information—as a user increases the width of the browser window, the browser reveals more of the left-hand side of the image.
... firefox may reveal more of the upper
portion of the image if the find bar is open or if an extension adds more height to the bottom of the window.
...And 2 more matches
-ms-filter - Archive of obsolete content
im
portant: as of windows internet explorer 9 this feature was deprecated.
... endcolor the end color, sup
ports only opaque colors in the #rrggbb notation.
... endcolorstr the end color, sup
ports both opaque colors (#rrggbb) and colors with alpha opacity using the #aarrggbb notation.
...And 2 more matches
Processing XML with E4X - Archive of obsolete content
compatibility issues prior to widespread browser sup
port for the <script> element, it was common for javascript embedded in a page to be surrounded by html comment tags to prevent <script> unaware browsers from displaying javascript code to the user.
...they sup
port javascript's regular dot and [] notation, but instead of accessing object properties e4x overloads these operators to access the element's children: var person = <person> <name>bob smith</name> <likes> <os>linux</os> <browser>firefox</browser> <language>javascript</language> <language>python</language> </likes> </person>; alert(person.name); // bob smith alert(person['name...
...despite these similarities to regular arrays, xmllist does not sup
port array methods such as foreach, and array generics such as array.foreach() are not compatible with xmllist objects.
...And 2 more matches
ActiveXObject - Archive of obsolete content
warning: this object is a microsoft extension and is sup
ported in internet explorer only, not in windows 8.x store apps.
...for example, here are a few examples of values you may find there, depending on which programs are installed: excel.application excel.chart scripting.filesystemobject wscript.shell word.document im
portant: activex objects may present security issues.
...excelsheet.application.quit(); requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards, internet explorer 11 standards.
...And 2 more matches
@set - Archive of obsolete content
warning: conditional compilation is not sup
ported in internet explorer 11 standards mode and windows 8.x store apps.
... conditional compilation is sup
ported in internet explorer 10 standards mode and in all earlier versions.
... remarks numeric and boolean variables are sup
ported for conditional compilation.
...And 2 more matches
LiveConnect Overview - Archive of obsolete content
(although this functionality (along with some others) had been broken in gecko 1.9 (see bug 391642) as the mozilla-specific liveconnect code had not been maintained inside mozilla, with java 6 update 11 and 12 building sup
port for reliance on mozilla's implementation of the generic (and cross-browser) npapi plugin code, this has again been fixed.) for example, suppose you are using the java forname method to assign the name of a java class to a variable called theclass.
...java to javascript communication if you want to use javascript objects in java, you must im
port the netscape.javascript package into your java file.
...as shown in the following code, the javadog constructor takes the javascript object jsdog, which is defined as type jsobject, as an argument: im
port netscape.javascript.*; public class javadog{ public string dogbreed; public string dogcolor; public string dogsex; // define the class constructor public javadog(jsobject jsdog){ // use try...catch to handle jsexceptions here this.dogbreed = (string)jsdog.getmember("breed"); this.dogcolor = (string)jsdog.getmember("color"); this.dogsex = (stri...
...And 2 more matches
background-size - Archive of obsolete content
it's hard to get reliable information about its css sup
port without having this browser (read: multiple versions of this browser) installed.
... if so, feel free to change the en/css_reference/property_template and all css property pages ; ) start with -webkit-background-size and investigate sup
port of contain and cover keywords and "omitted second value" behavior.
... [i assume it's the same as safari, since they just back
ported a webkit patch into khtml.
...And 2 more matches
XForms Custom Controls - Archive of obsolete content
custom data types - existing xforms controls are not able to work properly with your data type advanced xforms controls - you need your controls to be able to do more things than traditional xforms controls can do new host language - you'd like to sup
port xforms in host languages other than xhtml or xul custom presentation the mozilla xforms extension cannot anticipate all of the possible use cases that will evolve in web applications and web pages as xforms matures and the user base grows.
...however, the mozilla xforms implementation currently doesn't sup
port this approach.
...tub; </constructor> <property name="ref1" readonly="true" onget="return this.ownerdocument.getanonymouselementbyattribute(this, 'anonid', 'ref1');"/> <property name="ref2" readonly="true" onget="return this.ownerdocument.getanonymouselementbyattribute(this, 'anonid', 'ref2');"/> </implementation> new host language the mozilla xforms implementation currently only sup
ports xforms hosted in xhtml or xul documents.
...And 2 more matches
Mozilla XForms Specials - Archive of obsolete content
limitations repeat using attributes the specifications mentions "creating repeating structures via attributes", this is partially sup
ported.
...pseudo-class sup
port we currently sup
port all the css pseudo-classes in xforms (:enabled, :disabled, etc.
...(limitation tracked in bug 313111)pseudo element sup
port there is no sup
port for the pseudo elements (::value, ::repeat-item, and ::repeat-index ).
...And 2 more matches
Archived open Web documentation - Archive of obsolete content
znerd 04 august 2009 browser detection and cross browser sup
port improper browser detection can lead to web maintenance nightmares.
... browser feature detection an experimental approach to discovering degree of sup
port for standards css obsolete css features displaying notifications (deprecated) firefox offers sup
port for "desktop notifications"; these are notifications that are displayed to the user outside the context of the web content, using the standard notification system provided by the operating system.
... e4x ecmascript for xml (e4x) is a programming language extension that adds native xml sup
port to javascript.
...And 2 more matches
Desktop mouse and keyboard controls - Game development
previous overview: control mechanisms next now when we have our mobile controls in place and the game is playable on touch-enabled devices, it would be good to add mouse and keyboard sup
port, so the game can be playable also on desktop.
... that way we can broaden the list of sup
ported platforms.
... } } if you'd like to differentiate the mouse buttons being pressed, there are three defaults you can pick from: this.game.input.mousepointer.leftbutton.isdown; this.game.input.mousepointer.moddlebutton.isdown; this.game.input.mousepointer.rightbutton.isdown; keep in mind that instead of mousepointer, it's better to use activepointer for platform independent input if you want to keep the sup
port for mobile touch interactions.
...And 2 more matches
Implementing controls using the Gamepad API - Game development
api status and browser sup
port the gamepad api is still at the working draft stage in the w3c process, which means its implementation might still change, but saying that the browser sup
port is already quite good.
... firefox 29+ and chrome 35+ sup
port it out of the box.
... opera sup
ports the api in version 22+ (not surprising given that they now use chrome's blink engine.) and microsoft implemented sup
port for the api in edge recently, which means four main browsers now sup
porting the gamepad api.
...And 2 more matches
Accessible multimedia - Learn web development
for example (see native-controls.html source code and live): <audio controls> <source src="viper.mp3" type="audio/mp3"> <source src="viper.ogg" type="audio/ogg"> <p>your browser doesn't sup
port html5 audio.
... here is a <a href="viper.mp3">link to the audio</a> instead.</p> </audio> <br> <video controls> <source src="rabbit320.mp4" type="video/mp4"> <source src="rabbit320.webm" type="video/webm"> <p>your browser doesn't sup
port html5 video.
... first of all, let's look at the html for the video player, in the html: <section class="player"> <video controls> <source src="rabbit320.mp4" type="video/mp4"> <source src="rabbit320.webm" type="video/webm"> <p>your browser doesn't sup
port html5 video.
...And 2 more matches
Pseudo-classes and pseudo-elements - Learn web development
once again the relevant mdn page for each selector is helpful in explaining browser sup
port.
...modern browsers sup
port the early pseudo-elements with single- or double-colon syntax for backwards compatibility.
... ::grammar-error matches a
portion of the document containing a grammar error as flagged by the browser.
...And 2 more matches
How CSS works - Learn web development
it will do this if you have made an error and misspelled a property or value, or if the property or value is just too new and the browser doesn't yet sup
port it.
...coupled with the way that the cascade works, and the fact that browsers will use the last css they come across in a stylesheet when you have two rules with the same specificity you can also offer alternatives for browsers that don't sup
port new css.
... this works particularly well when you want to use a value that is quite new and not sup
ported everywhere.
...And 2 more matches
CSS FAQ - Learn web development
it is im
portant to remember that a rule applied to a descendent overrides the style of the parent, in spite of any specificity or priority of css rules.
... explicitly re-defined style rule in css stylesheets, order is im
portant.
...</div> in the previous example the problem occurred on rules belonging to different elements, but it could happen also for the same element, because rule order is im
portant.
...And 2 more matches
Styling links - Learn web development
previous overview: styling text next when styling links, it is im
portant to understand how to make use of pseudo-classes to style link states effectively, and how to style links for use in common varied interface features such as navigation menus and tabs.
... to start off with, we'll write out our empty rulesets: a { } a:link { } a:visited { } a:focus { } a:hover { } a:active { } this order is im
portant because the link styles build on one another, for example the styles in the first rule will apply to all the subsequent ones, and when a link is being activated, it is also being hovered over.
... finally, a:active is used to give the links an inverted color scheme while they are being activated, to make it clear something im
portant is happening!
...And 2 more matches
Sending form data - Learn web development
the two most im
portant attributes are action and method.
...this can be very im
portant for two reasons: if you need to send a password (or any other sensitive piece of data), never use the get method or you risk displaying it in the url bar, which would be very insecure.
... from flask im
port flask, render_template, request app = flask(__name__) @app.route('/', methods=['get', 'post']) def form(): return render_template('form.html') @app.route('/hello', methods=['get', 'post']) def hello(): return render_template('greeting.html', say=request.form['say'], to=request.form['to']) if __name__ == "__main__": app.run() the two templates referenced in the above code are as f...
...And 2 more matches
Tips for authoring fast-loading HTML pages - Learn web development
it is just as im
portant for broadband content and can lead to dramatic improvements even for your visitors with the fastest connections.
... tips reduce page weight page weight is by far the most im
portant factor in page-load performance.
...switching to lazy loading of images tells the browser to hold off on loading images until they're about to be needed to draw the visual view
port.
...And 2 more matches
Creating hyperlinks - Learn web development
previous overview: introduction to html next hyperlinks are really im
portant — they are what makes the web a web.
... adding sup
porting information with the title attribute another attribute you may want to add to your links is title.
...if a title's information is truly im
portant to the usability of page, then you should present it in a manner that will be accessible to all users, for example by putting it in the regular text.
...And 2 more matches
Getting started with HTML - Learn web development
to get you started, this article defines elements, attributes, and all the other im
portant terms you may have heard.
...you will learn how html elements are structured, how a typical html page is structured, and other im
portant basic language features.
... along the way, there will be an op
portunity to play with html too!
...And 2 more matches
Measuring performance - Learn web development
previous overview: performance next meauring performance provides an im
portant metric to help you asses the success of your app, site, or web service.
... general performance re
porting tools tools like pagespeed insights can measure a website’s performance.
... you can enter a url and get a performance re
port in seconds.
...And 2 more matches
Web performance resources - Learn web development
lazy loading parts of your application outside the view
port.
... if you do, have a backup plan for seo (e.g render full page for bot traffic); for example, by using the loading attribute on the <img> element it is also crucial to realize what is really im
portant to your users.
...the following snippet includes an onload attribute, requiring javascript, so it is im
portant to include a noscript tag with a traditional fallback.
...And 2 more matches
Client-Server Overview - Learn web development
in order to "keep things real" we'll use the context of a s
ports-team manager website where a coach can select their team name and team size in an html form and get back a suggested "best lineup" for their next game.
... one of the most im
portant operations they perform is providing simple mechanisms to map urls for different resources/pages to specific handler functions.
... # file: best/urls.py # from django.conf.urls im
port url from .
...And 2 more matches
Getting started with Ember - Learn web development
most im
portantly, it is a superset of html — meaning that anyone who knows html can make meaningful contributions to any ember project with minimal fear of breaking code.
... we will however add lines to the ember-cli-build.js file to im
port our shared css files, so that they become part of our build without having to explicitly @im
port them into the app.css file (this would require url rewrites at build time and therefore be less efficient and more complicated to set up).
... in ember-cli-build.js, find the following code: let app = new emberapp(defaults, { // add options here }); add the following lines underneath it before saving the file: app.im
port('node_modules/todomvc-common/base.css'); app.im
port('node_modules/todomvc-app-css/index.css'); for more information on what ember-cli-build.js does, and for other ways in which you can customize your build / pipeline, the ember guides have a page on addons and dependencies.
...And 2 more matches
Vue conditional rendering: editing existing todos - Learn web development
im="newlabel" /> </div> <div class="btn-group"> <button type="button" class="btn" @click="oncancel"> cancel <span class="visually-hidden">editing {{label}}</span> </button> <button type="submit" class="btn btn__primary"> save <span class="visually-hidden">edit for {{label}}</span> </button> </div> </form> </template> <script> ex
port default { props: { label: { type: string, required: true }, id: { type: string, required: true } }, data() { return { newlabel: this.label }; }, methods: { onsubmit() { if (this.newlabel && this.newlabel !== this.label) { this.$emit("item-edited", this.newlabel); } }, oncancel() { this.$emit("edi...
... it's im
portant to note that v-else and v-else-if blocks need to be the first sibling of a v-if/v-else-if block, otherwise vue will not recognize them.
... first of all add v-if="!isediting" to the root <div> in your todoitem component, <div class="stack-small" v-if="!isediting"> next, below that <div>'s closing tag add the following line: <to-do-item-edit-form v-else :id="id" :label="label"></to-do-item-edit-form> we also need to im
port and register the todoitemeditform component, so we can use it inside this template.
...And 2 more matches
Command line crash course - Learn web development
many tutorials and tools that exist on the web today sup
port (and sadly assume) unix-based systems, but not to worry — they are available on most systems.
... have a play with them in a test directory you’ve created somewhere so that you don’t accidentally delete anything im
portant, using the example commands below for guidance: mkdir — this creates a new directory inside the current directory you are in, with the name you provide after the command name.
...if you are not careful, then you might end up deleting something im
portant, losing you a load of your work in the process.
...And 2 more matches
Client-side tooling overview - Learn web development
often linters can be configured to not only re
port errors, but also re
port any violations of a specified style guide that you team might be using (for example code that is using the wrong number of spaces for indentation, or using template literals rather than regular string literals).
... transformation this stage of your web app lifecycle typically allows you to code in either "future code" (such as the latest css or javascript features that might not have native sup
port in browsers yet) or code using another language entirely, such as typescript.
...for example, you might want to write javascript using cutting-edge new language features, but still have your final production code work on older browsers that don’t sup
port those features.
...And 2 more matches
Accessibility/LiveRegionDevGuide
this developer's guide lays out general guidelines that assistive technology (at) developers can use in developing live region sup
port.
... this guide was written from an atk/at-spi point of view as part of the orca live region sup
port project.
...for more information about live regions, please read the aria properties spec or the live region re
port to learn about aria live region markup and the live region api sup
port document for the latest firefox api with regards to live regions.
...And 2 more matches
Multiprocess on Windows
its headers are ex
ported to mozilla/mscom.
... ensuring that the interceptor sup
ports your interfaces this information is current, but is likely to change when bug 1346957 is landed.
...typelib metadata is limited to sup
porting the same language features which were sup
ported by vb at that time.
...And 2 more matches
Theme concepts
you do not need to
port your theme.
...additionally, firefox color can be used to preview customizations to the browser's theme with options to share and ex
port a theme.
... 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.
...And 2 more matches
Windows SDK versions
mozilla, from time to time, might sup
port building against multiple versions of the windows sdk as a compatibility/transitional measure.
...older versions some of the older version are no longer sup
ported, further information is available at obsolete build caveats and tips [en-us] under the windows sdk article.
... windows 8 sdk (official) features that depend on this sdk include: metro firefox front end gamepad api sup
port you can download the sdk from the microsoft download center [web setup].
...And 2 more matches
Performance best practices for Firefox front-end engineers
it's also im
portant to note that most of our javascript runs on the main thread, so it's easy for script to cause delays in event processing or painting.
...this allows you to put all of your dom writes (most im
portantly, anything that could change the size or position of things in the dom) just before the style and layout steps of the pipeline, combining all the style and layout calculations into a single batch so it all happens once, in a single frame tick, instead of across multiple frames.
...because styles are normally scoped to the entire document, the cost of doing these style calculations is pro
portional to the number of dom nodes in the document (and the number of styles being applied).
...And 2 more matches
Implementing Download Resuming
introduction various protocols sup
port getting partial files.
...the necko implementations of http 1.1 (rfc 2616) as well as ftp sup
port this feature.
... not only is the ability to specify a start position im
portant, but it's also im
portant to have some assurance that the file did not change since the initial download attempt.
...And 2 more matches
Downloads.jsm
to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/downloads.jsm"); method overview promise<download> createdownload(object aproperties); promise<void> fetch(asource, atarget, [optional] object aoptions); promise<downloadlist> getlist(atype); promise<downloadsummary> getsummary(atype); constants constant description public work on downloads that were not started from a private browsing window.
... components.utils.im
port("resource://gre/modules/downloads.jsm"); components.utils.im
port("resource://gre/modules/osfile.jsm") components.utils.im
port("resource://gre/modules/task.jsm"); task.spawn(function () { yield downloads.fetch("http://www.mozilla.org/", os.path.join(os.constants.path.tmpdir, "example-download.html")); console.log("example-download...
....html has been downloaded."); }).then(null, components.utils.re
porterror); observing downloads this example logs a message every time a change occurs in one of the global download lists.
...And 2 more matches
Following the Android Toasts Tutorial from a JNI Perspective
this article teaches developers how to
port java code to jni by reading the java and android documentation.
...in jni, there is the all-im
portant property called sig.
... let sig = { context: 'landroid/content/context;', charsequence; 'ljava/lang/charsequence;', int: 'i', toast: 'landroid/widget/toast;', void: 'v', }; get java environment before we go on to declare the other im
portant features, we need to load our environment variable.
...And 2 more matches
Promise
you don't need to im
port the promise.jsm module to use a promise object to which you already have a reference.
... note: you should always handle, forward, or re
port errors (rejection reasons).
... to help with debugging, only when inspecting a promise object manually, you can see more information as special properties that are inaccessible from code (this, at present, is implemented by randomizing the property name, for the lack of more sophisticated language or debugger sup
port).
...And 2 more matches
Task.jsm
to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/task.jsm"); introduction for an introduction to tasks, you may start from the task.js documentation, keeping in mind that only the core subset is implemented in this module.
... examples general example cu.im
port("resource://gre/modules/task.jsm"); task.spawn(function* () { // this is our task.
... we can inspect or re
port the exception.
...And 2 more matches
Power profiling overview
this article covers im
portant background information about power profiling, with an emphasis on intel processors used in desktop and laptop machines.
... the im
portant points are as follows.
...and many tools re
port c-states using the latter names.
...And 2 more matches
McCoy
it's im
portant that the update information retrieved has not been tampered with since being written by the add-on author.
...this is located in: %appdata%\mozilla\mccoy (windows) ~/.mozilla/mccoy (linux) ~/library/application sup
port/mccoy (mac os x) it is highly recommended that you back up your profile folder and store it in a safe location whenever you create a new key; without a backup, there is no way to recover your private keys if they are lost!
... signing from command line currently there is no sup
port to run mccoy from command line under windows, but it is planned to add this sup
port in the future.
...And 2 more matches
Encrypt Decrypt MAC Keys As Session Objects
} rv = filetoitem(&filedata, file); nonbody = (char *)filedata.data; if (!nonbody) { pr_fprintf(pr_stderr, "unable to read data from input file\n"); rv = secfailure; goto cleanup; } /* check for headers and trailers and remove them */ if ((body = strstr(nonbody, header)) != null) { char *trail = null; nonbody = body; body =
port_strchr(body, '\n'); if (!body) body =
port_strchr(nonbody, '\r'); /* maybe this is a mac file */ if (body) trail = strstr(++body, trailer); if (trail != null) { *trail = '\0'; } else { pr_fprintf(pr_stderr, "input has header but no trailer\n");
port_free(filedata.data); return secfailure; ...
...pr_fprintf(pr_stderr, "write error\n"); rv = secfailure; break; } /* save last block of ciphertext */ memcpy(iv, decbuf, decbuflen); ivlen = decbuflen; blocknumber++; } if (rv != secsuccess) { goto cleanup; } rv = macfinal(ctxmac, newmac, &newmaclen, sizeof(newmac)); if (rv != secsuccess) { goto cleanup; } if (
port_memcmp(macitem->data, newmac, newmaclen) == 0) { rv = secsuccess; } else { pr_fprintf(pr_stderr, "check mac : failure\n"); pr_fprintf(pr_stderr, "extracted : "); printashex(pr_stderr, macitem->data, macitem->len); pr_fprintf(pr_stderr, "computed : "); printashex(pr_stderr, newmac, newmaclen); rv = secfailure; } cleanup: if (ctxm...
... * open output file * loop until eof(input): * read a buffer of ciphertext from input file, * save last block of ciphertext * decrypt ciphertext buffer using cbc and iv, * compute and check mac, then remove mac from plaintext * replace iv with saved last block of ciphertext * write the plain text to output file * close files * re
port success */ secstatus rv; secitem ivitem; secitem enckeyitem; secitem mackeyitem; secitem cipheritem; secitem macitem; secitem paditem; pk11symkey *enckey = null; pk11symkey *mackey = null; /* open intermediate file, read in hea...
...And 2 more matches
Encrypt and decrypt MAC using token
} rv = filetoitem(&filedata, file); nonbody = (char *)filedata.data; if (!nonbody) { pr_fprintf(pr_stderr, "unable to read data from input file\n"); rv = secfailure; goto cleanup; } /* check for headers and trailers and remove them */ if ((body = strstr(nonbody, header)) != null) { char *trail = null; nonbody = body; body =
port_strchr(body, '\n'); if (!body) body =
port_strchr(nonbody, '\r'); /* maybe this is a mac file */ if (body) trail = strstr(++body, trailer); if (trail != null) { *trail = '\0'; } else { pr_fprintf(pr_stderr, "input has header but no trailer\n");
port_free(filedata.data); return secfailure; ...
...pr_fprintf(pr_stderr, "write error\n"); rv = secfailure; break; } /* save last block of ciphertext */ memcpy(iv, decbuf, decbuflen); ivlen = decbuflen; blocknumber++; } if (rv != secsuccess) { goto cleanup; } rv = macfinal(ctxmac, newmac, &newmaclen, sizeof(newmac)); if (rv != secsuccess) { goto cleanup; } if (
port_memcmp(macitem->data, newmac, newmaclen) == 0) { rv = secsuccess; } else { pr_fprintf(pr_stderr, "check mac : failure\n"); pr_fprintf(pr_stderr, "extracted : "); printashex(pr_stderr, macitem->data, macitem->len); pr_fprintf(pr_stderr, "computed : "); printashex(pr_stderr, newmac, newmaclen); rv = secfailure; } cleanup: if (ctxm...
... * open output file * loop until eof(input): * read a buffer of ciphertext from input file, * save last block of ciphertext * decrypt ciphertext buffer using cbc and iv, * compute and check mac, then remove mac from plaintext * replace iv with saved last block of ciphertext * write the plain text to output file * close files * re
port success */ secstatus rv; secitem ivitem; secitem enckeyitem; secitem mackeyitem; secitem cipheritem; secitem macitem; secitem paditem; pk11symkey *enckey = null; pk11symkey *mackey = null; /* open intermediate file, read in hea...
...And 2 more matches
HTTP delegation
http uris consist of host:
port and a path, e.g.
...the http server session object is logically associated with host and
port destination information, in our example this is "host ocsp.provider.com
port 80".
...the application must sup
port both strategies.) the logical http server session object is expected to remain valid until explicitly destroyed (sec_httpserver_freesessionfcn).
...And 2 more matches
HTTP delegation
http uris consist of host:
port and a path, e.g.
...the http server session object is logically associated with host and
port destination information, in our example this is "host ocsp.provider.com
port 80".
...the application must sup
port both strategies.) the logical http server session object is expected to remain valid until explicitly destroyed (sec_httpserver_freesessionfcn).
...And 2 more matches
4.3 Release Notes
release date: 01 april 2009 introduction network security services for java (jss) 4.3 is a minor release with the following new features: sqlite-based shareable certificate and key databases libpkix: an rfc 3280 compliant certificate path validation library pkcs11 needslogin method sup
port hmacsha256, hmacsha384, and hmacsha512 sup
port for all nss 3.12 initialization options jss 4.3 is tri-licensed under mpl 1.1/gpl 2.0/lgpl 2.1.
... libpkix: an rfc 3280 compliant certificate path validation library (see pkixverify) pk11token.needslogin method (see needslogin) sup
port hmacsha256, hmacsha384, and hmacsha512 (see hmactest.java) sup
port for all nss 3.12 initialization options (see initializationvalues) new ssl error codes (see http://mxr.mozilla.org/security/sour...util/sslerrs.h) ssl_error_unsup
ported_extension_alert ssl_error_certificate_unobtainable_alert ssl_error_unrecognized_name_alert ssl_error_bad_cert_status_response_alert ssl_err...
... jss only sup
ports the native threading model (no green threads).
...And 2 more matches
JSS 4.4.0 Release Notes
jss 4.4.0 requires netswork security services (nss) 3.29.1 and netscape
portable runtime (nspr) 4.13.1 or newer.
... sup
port for ipv6.
... sup
port for tls v1.1 and tls v1.2 via nss though jss.
...And 2 more matches
NSS 3.12.5 release_notes
see the following struct in nss.h for details: nssinitparametersstr other new functions in secmod.h: secmod_getskipfirstflag secmod_getdefaultmoddbflag in prlink.h nss_securememcmp
port_loadlibraryfromorigin modified functions sgn_update (see cryptohi.h) the parameter "input" of this function is changed from unsigned char * to const unsigned char *.
...the caller of pk11_readrawattribute should free the data buffer pointed to by item using a secitem_freeitem(item, pr_false) or
port_free(item->data) call.
...if pool is null but dest is not null, the caller should free the data buffer pointed to by dest with a secitem_freeitem(dest, pr_false) or
port_free(dest->data) call.
...And 2 more matches
NSS 3.12.6 release notes
new in nss 3.12.6 ssl3 & tls renegotiation indication extension (rfc 5746) by default, nss 3.12.6 uses the new tls renegotiation indication extension for tls renegotiation but allows simple ssl/tls connections (without renegotiation) with peers that don't sup
port the tls renegotiation indication extension.
...if true, a connection will be dropped at initial handshake if the peer server or client does not sup
port safe renegotiation.
... bug 275744: sup
port for tls compression rfc 3749 bug 494603: update nss's copy of sqlite3 to 3.6.22 to get numerous bug fixes bug 496993: add accessor functions for ssl_implementedciphers bug 515279: cert_pkixverifycert considers a certificate revoked if cert_processocspresponse fails for any reason bug 515870: gcc compiler warnings in nss 3.12.4 bug 518255: the input buf...
...And 2 more matches
NSS 3.16.2.3 release notes
nss 3.16.2.3 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_16_2_3_rtm/src/ new in nss 3.16.2.3 this patch release fixes a bug and contains a back
port of the tls_fallback_scsv feature, which was originally made available in nss 3.17.1.
... notable changes in nss 3.16.2.3 bug 1057161: check that an im
ported elliptic curve public key is valid.
...now ec public keys are validated at im
port time.
...And 2 more matches
NSS 3.17.1 release notes
a new symbol, _sgn_verifypkcs1digestinfo is ex
ported in this release.
... as with all ex
ported nss symbols that have a leading underscore '_', this is an internal symbol for nss use only.
... added sup
port for linux on little-endian powerpc64.
...And 2 more matches
NSS 3.19.1 release notes
notable changes in nss 3.19.1 nss re
ports the bit length of keys more accurately.
... thus, the seckey_publickeystrength and seckey_publickeystrengthinbits functions could re
port smaller values for values that have leading zero values.
... this affects the key strength values that are re
ported by ssl_getchannelinfo.
...And 2 more matches
NSS 3.47 release notes
notable changes in nss 3.47 bug 1152625 - sup
port aes hw acceleration on armv8 bug 1267894 - allow per-socket run-time ordering of the cipher suites presented in clienthello bug 1570501 - add cmac to freebl and pkcs #11 libraries bugs fixed in nss 3.47 bug 1459141 - make softoken cbc padding removal constant time bug 1589120 - more cbc padding tests bug 1465613 - add ability to distrust certificates issued after a certain date for a spe...
...cified root cert bug 1588557 - bad debug statement in tls13con.c bug 1579060 - mozilla::pkix tag definitions for issueruniqueid and subjectuniqueid shouldn't have the constructed bit set bug 1583068 - nss 3.47 should pick up fix from bug 1575821 (nspr 4.23) bug 1152625 - sup
port aes hw acceleration on armv8 bug 1549225 - disable dsa signature schemes for tls 1.3 bug 1586947 - pk11_im
portandreturnprivatekey does not store nickname for ec keys bug 1586456 - unnecessary conditional in pki3hack, pk11load and stanpcertdb bug 1576307 - check mechanism param and param length before casting to mechanism-specific structs bug 1577953 - sup
port longer (up to rfc maximum) hkdf outputs bug 1508776 - remove refcounting from sftk_freesession (cve-2019-11756) bug 1494063 - sup
port tls ex
porter in t...
... ckm_aes_gcm bug 1576295 - check all bounds when encrypting with seed_cbc bug 1580286 - nss rejects tls 1.2 records with large padding with sha384 hmac bug 1577448 - create additional nested s/mime test messages for thunderbird bug 1399095 - allow nss-try to be used to test nspr changes bug 1267894 - libssl should allow selecting the order of cipher suites in clienthello bug 1581507 - fix un
portable grep expression in test scripts bug 1234830 - [cid 1242894][cid 1242852] unused values bug 1580126 - fix build failure on aarch64_be while building freebl/gcm bug 1385039 - build nspr tests as part of nss continuous integration bug 1581391 - fix build on openbsd/arm64 after bug #1559012 bug 1581041 - mach-commands -> mach-completion bug 1558313 - code bugs found by clang scanners.
...And 2 more matches
NSS Sample Code Sample_3_Basic Encryption and MACing
} rv = filetoitem(&filedata, file); nonbody = (char *)filedata.data; if (!nonbody) { pr_fprintf(pr_stderr, "unable to read data from input file\n"); rv = secfailure; goto cleanup; } /* check for headers and trailers and remove them */ if ((body = strstr(nonbody, header)) != null) { char *trail = null; nonbody = body; body =
port_strchr(body, '\n'); if (!body) body =
port_strchr(nonbody, '\r'); /* maybe this is a mac file */ if (body) trail = strstr(++body, trailer); if (trail != null) { *trail = '\0'; } else { pr_fprintf(pr_stderr, "input has header but no trailer\n");
port_free(filedata.data); return secfailure; ...
...pr_fprintf(pr_stderr, "write error\n"); rv = secfailure; break; } /* save last block of ciphertext */ memcpy(iv, decbuf, decbuflen); ivlen = decbuflen; blocknumber++; } if (rv != secsuccess) { goto cleanup; } rv = macfinal(ctxmac, newmac, &newmaclen, sizeof(newmac)); if (rv != secsuccess) { goto cleanup; } if (
port_memcmp(macitem->data, newmac, newmaclen) == 0) { rv = secsuccess; } else { pr_fprintf(pr_stderr, "check mac : failure\n"); pr_fprintf(pr_stderr, "extracted : "); printashex(pr_stderr, macitem->data, macitem->len); pr_fprintf(pr_stderr, "computed : "); printashex(pr_stderr, newmac, newmaclen); rv = secfailure; } cleanup: if (ctxm...
... * open output file * loop until eof(input): * read a buffer of ciphertext from input file * save last block of ciphertext * decrypt ciphertext buffer using cbc and iv * compute and check mac, then remove mac from plaintext * replace iv with saved last block of ciphertext * write the plain text to output file * close files * re
port success */ secstatus rv; secitem ivitem; secitem enckeyitem; secitem mackeyitem; secitem cipheritem; secitem macitem; secitem paditem; pk11symkey *enckey = null; pk11symkey *mackey = null; /* open intermediate file, read in hea...
...And 2 more matches
EncDecMAC using token object - sample 3
ase pad: strcpy(header, pad_header); strcpy(trailer, pad_trailer); break; } rv = filetoitem(&filedata, file); nonbody = (char *)filedata.data; if (!nonbody) { pr_fprintf(pr_stderr, "unable to read data from input file\n"); rv = secfailure; goto cleanup; } /* check for headers and trailers and remove them */ if ((body = strstr(nonbody, header)) != null) { char *trail = null; nonbody = body; body =
port_strchr(body, '\n'); if (!body) body =
port_strchr(nonbody, '\r'); /* maybe this is a mac file */ if (body) trail = strstr(++body, trailer); if (trail != null) { *trail = '\0'; } else { pr_fprintf(pr_stderr, "input has header but no trailer\n");
port_free(filedata.data); return secfailure; } } else { body = nonbody; } cleanup: pr_close(file); hextobuf(body, item, ishexdata); return secsuccess; } /...
...xt to out file */ temp = pr_write(outfile, decbuf, decbuflen); if (temp != decbuflen) { pr_fprintf(pr_stderr, "write error\n"); rv = secfailure; break; } /* save last block of ciphertext */ memcpy(iv, decbuf, decbuflen); ivlen = decbuflen; blocknumber++; } if (rv != secsuccess) { goto cleanup; } rv = macfinal(ctxmac, newmac, &newmaclen, sizeof(newmac)); if (rv != secsuccess) { goto cleanup; } if (
port_memcmp(macitem->data, newmac, newmaclen) == 0) { rv = secsuccess; } else { pr_fprintf(pr_stderr, "check mac : failure\n"); pr_fprintf(pr_stderr, "extracted : "); printashex(pr_stderr, macitem->data, macitem->len); pr_fprintf(pr_stderr, "computed : "); printashex(pr_stderr, newmac, newmaclen); rv = secfailure; } cleanup: if (ctxmac) { pk11_destroycontext(ctxmac, pr_true); } if (ctxenc) { pk11_dest...
... iv and cka_ids of two keys from it * find those keys in the db token * open output file * loop until eof(input): * read a buffer of ciphertext from input file, * save last block of ciphertext * decrypt ciphertext buffer using cbc and iv, * compute and check mac, then remove mac from plaintext * replace iv with saved last block of ciphertext * write the plain text to output file * close files * re
port success */ secstatus rv; secitem ivitem; secitem enckeyitem; secitem mackeyitem; secitem cipheritem; secitem macitem; secitem paditem; pk11symkey *enckey = null; pk11symkey *mackey = null; /* open intermediate file, read in header, get iv and cka_ids of two keys * from it */ rv = getivandckaidsfromheader(headerfilename, &ivitem, &enckeyitem, &mackeyitem); if (rv != secsuccess) { goto cleanup; } /...
...And 2 more matches
NSPR functions
nss uses nspr internally as the
porting layer.
... pr_cleanup error re
porting nss uses nspr's thread-specific error code to re
port errors.
...the nss functions
port_geterror and
port_seterror are simply wrappers of pr_geterror and pr_seterror.
...And 2 more matches
FIPS mode of operation
fc_createobject fc_copyobject fc_destroyobject fc_getobjectsize fc_getattributevalue fc_setattributevalue fc_findobjectsinit fc_findobjects fc_findobjectsfinal encryption functions these functions sup
port triple des and aes in ecb and cbc modes.
... fc_encryptinit fc_encrypt fc_encryptupdate fc_encryptfinal decryption functions these functions sup
port triple des and aes in ecb and cbc modes.
... fc_decryptinit fc_decrypt fc_decryptupdate fc_decryptfinal message digesting functions these functions sup
port sha-1, sha-256, sha-384, and sha-512.
...And 2 more matches
NSS tools : ssltab
name ssltap — tap into ssl connections and display the data going by synopsis libssltap [-vhfsxl] [-p
port] [hostname:
port] description the ssl debugging tool ssltap is an ssl-aware command-line proxy.
...-p
port change the default rendezvous
port (1924) to another
port.
... the following are well-known
port numbers: * http 80 * https 443 * smtp 25 * ftp 21 * imap 143 * imaps 993 (imap over ssl) * nntp 119 * nntps 563 (nntp over ssl) usage and examples you can use the ssl debugging tool to intercept any connection information.
...And 2 more matches
NSS tools : ssltap
name ssltap — tap into ssl connections and display the data going by synopsis libssltap [-vhfsxl] [-p
port] [hostname:
port] description the ssl debugging tool ssltap is an ssl-aware command-line proxy.
...-p
port change the default rendezvous
port (1924) to another
port.
... the following are well-known
port numbers: * http 80 * https 443 * smtp 25 * ftp 21 * imap 143 * imaps 993 (imap over ssl) * nntp 119 * nntps 563 (nntp over ssl) usage and examples you can use the ssl debugging tool to intercept any connection information.
...And 2 more matches
gtstd.html
before running the sample programs, it's im
portant to understand the relationships between the ssl interface, the pkcs #11 interface, pkcs #11 modules, and the default netscape security databases.
...any pkcs #11 module that sup
ports pkcs #11 can be used with the nss libraries.
... >mkdir server_db >certutil -n -d server_db im
port the new ca certificate into the server's certificate database, and mark it trusted for issuing certificates for ssl client and server authentication.
...And 2 more matches
SSL functions
in addition to the functions listed here, applications that sup
port ssl use some of the certificate functions, crypto functions, and utility functions described below on this page.
... other sources of information: the nss_reference documents the functions most commonly used by applications to sup
port ssl.
...the nss version column indicates which versions of nss sup
port the function.
...And 2 more matches
NSS Tools modutil
see the section jar installation file for information on creating the special script needed to perform an installation through a server or with the security module database tool (that is, in environments without javascript sup
port).
... for general installation instructions and to install a module in environments where javascript sup
port is available (as in netscape communicator), see the document using the jar installation manager to install a pkcs #11 cryptographic module.
... creating a set of security management database files (key3.db, cert8.db, and secmod.db): -create displaying basic module information or detailed information about the contents of a given module: -list [modulename] adding a pkcs #11 module, which includes setting a sup
porting library file, enabling ciphers, and setting default provider status for various security mechanisms: -add modulename -libfile library-file [-ciphers cipher-enable-list] [-mechanisms mechanism-list] adding a pkcs #11 module from an existing jar file: -jar jar-file -installdir root-installation-directory [-tempdir temporary-directory] deleting a specific pkcs #11 module from a securit...
...And 2 more matches
NSS tools : ssltap
name ssltap — tap into ssl connections and display the data going by synopsis libssltap [-vhfsxl] [-p
port] [hostname:
port] description the ssl debugging tool ssltap is an ssl-aware command-line proxy.
... -p
port change the default rendezvous
port (1924) to another
port.
... the following are well-known
port numbers: * http 80 * https 443 * smtp 25 * ftp 21 * imap 143 * imaps 993 (imap over ssl) * nntp 119 * nntps 563 (nntp over ssl) usage and examples you can use the ssl debugging tool to intercept any connection information.
...And 2 more matches
Rhino overview
internationalization the messages re
ported by the javascript engine are by default retrieved from the property file org/mozilla/javascript/resources/messages.properties.
...first, every context that is created must be supplied an instance of an object that implements the securitysup
port interface.
... this will provide rhino the sup
port functionality it needs to perform security-related tasks.
...And 2 more matches
Shumway
the project is not exactly a developer tool but it is something that content creators should test against (and re
port bugs or performance issues to).
... there are a few situations where a user may use shumway to view your content: their platform does not sup
port adobe flash player.
... there might be a time where users want to experience your content but flash is no longer sup
ported by adobe.
...And 2 more matches
JSAPI Cookbook
*/ js::rootedvalue constructor_val(cx); if (!js_getproperty(cx, js_getglobalobject(cx), "person", &constructor_val)) return false; if (!constructor_val.isobject()) { js_re
porterror(cx, "person is not a constructor"); return false; } js::rootedobject constructor(cx, &constructor_val.toobject()); /* step 2 - set up the arguments.
...js_re
porterror does this.
... // javascript throw new error("failed to grow " + varietal + ": too many greenflies."); /* jsapi */ js_re
porterror(cx, "failed to grow %s: too many greenflies.", varietal); return false; to internationalize your error messages, and to throw other error types, such as syntaxerror or typeerror, use js_re
porterrornumber instead.
...And 2 more matches
JS_GetInstancePrivate
args js::callargs * optional argument, used for error re
porting.
... added in spidermonkey 32 argv jsval * optional argument vector, used for error re
porting.
...if you pass a non-null argument vector, argv, to js_getinstanceprivate, and obj is not an instance of clasp, this function re
ports a class mismatch error before returning null.
...And 2 more matches
SpiderMonkey 1.8.8
—insert-actual-release-date-here platform sup
port spidermonkey 1.8.8 is sup
ported on all the platforms where firefox insert-actual-firefox-version-number-here runs.
...it is sup
ported on x86, x86_64, and arm architectures.
... on some other platforms (sparc, mips), the jit is provided but not sup
ported.
...And 2 more matches
SpiderMonkey 17
— 25 march 2013 platform sup
port spidermonkey 17 is sup
ported on all the platforms where firefox 17 runs.
...it is sup
ported on x86, x86_64, and arm architectures.
... on some other platforms (sparc, mips), the jit is provided but not sup
ported.
...And 2 more matches
Thread Sanitizer
adjusting the build configuration create the build configuration file .mozconfig with the following content in your mozilla-central directory: mk_add_options moz_objdir=@topsrcdir@/objdir-ff-tsan mk_add_options moz_make_flags=-j12 # enable llvm specific code and build workarounds ac_add_options --enable-thread-sanitizer # if clang is already in your $path, then these can simply be: # ex
port cc=clang # ex
port cxx=clang++ ex
port cc="/path/to/clang" ex
port cxx="/path/to/clang++" # llvm-symbolizer displays much more complete backtraces when data races are detected.
... # if it's not already in your $path, then uncomment this next line: #ex
port llvm_symbolizer="/path/to/llvm-symbolizer" # add tsan to our compiler flags ex
port cflags="-fsanitize=thread -fpic -pie" ex
port cxxflags="-fsanitize=thread -fpic -pie" # additionally, we need the tsan flag during linking.
...# note: the use of this flag causes clang to automatically link the tsan runtime :) ex
port ldflags="-fsanitize=thread -fpic -pie" # these three are required by tsan ac_add_options --disable-jemalloc ac_add_options --disable-crashre
porter ac_add_options --disable-elf-hack # keep symbols to symbolize tsan traces ex
port moz_debug_symbols=1 ac_add_options --enable-debug-symbols ac_add_options --disable-install-strip # settings for an opt build ac_add_options --enable-optimize="-o2 -gline-tables-only" ac_add_options --disable-debug starting the build process now you start the build process using the regular make -f client.mk command.
...And 2 more matches
Animated PNG graphics
authors the apng specification was authored by: stuart parmenter <pavlov@pavlov.net> vladimir vukicevic <vladimir@pobox.com> andrew smith <asmith15@littlesvr.ca> overview apng is an extension of the
portable network graphics (png) format, adding sup
port for animated images.
... it is intended to be a replacement for simple animated images that have traditionally used the gif format, while adding sup
port for 24-bit images and 8-bit transparency.
... terminology the default image is the image described by the standard 'idat' chunks, and is the image that is displayed by decoders that do not sup
port apng.
...And 2 more matches
Generic factory
*/ class nsigenericfactory : public nsifactory { public: static const nsiid& iid() { static nsiid iid = ns_igenericfactory_iid; return iid; } typedef ns_callback(constructorprocptr) (nsisup
ports *aouter, refnsiid aiid, void **aresult); /** * establishes the generic factory's constructor function, which will be called * by createinstance.
... examples class nsicomponent : public nsisup
ports { public: ns_imethod dosomething() = 0; }; class mycomponent : public nsicomponent { public: mycomponent(); virtual ~mycomponent(); static ns_method create(nsisup
ports *aouter, refnsiid aiid, void **aresult); ns_impl_isup
ports ns_imethod dosomething(); }; to create a factory for this class, simply write the following: nsifactory* newcomponentfactory(nsirepository* repository) ...
... #include "nsifactory.h" class nsgenericfactory : public nsifactory { public: typedef nsresult (*creatorprocptr) (nsisup
ports *aouter, refnsiid aiid, void **aresult); nsgenericfactory(creatorprocptr creator); virtual ~nsgenericfactory(); ns_decl_isup
ports ns_imethod createinstance(nsisup
ports *aouter, refnsiid aiid, void **aresult); ns_imethod lockfactory(prbool alock); private: creatorprocptr mcreator; }; nsgenericfactory::nsgenericfactory(creato...
...And 2 more matches
How to build an XPCOM component in JavaScript
here's the xpidl definition for our helloworld component: helloworld.idl #include "nsisup
ports.idl" [scriptable, uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)] interface nsihelloworld : nsisup
ports { string hello(); }; note that you must generate a new uuid for each xpcom component that you create.
...e = dom_apps # set to 1 if the module should be part of the gecko runtime common to all applications gre_module = 1 # the idl sources xpidlsrcs = \ helloworld.idl \ $(null) include $(topsrcdir)/config/rules.mk xpidl_flags += \ -i$(topsrcdir)/dom/interfaces/base \ -i$(topsrcdir)/dom/interfaces/events \ $(null) creating the component using xpcomutils in firefox 3 and later you can use im
port xpcomutils.jsm using components.utils.im
port to simplify the process of writing your component slightly.
... the im
ported library contains functions for generating the module, factory, and the nsgetmodule and queryinterface functions for you.
...And 2 more matches
Inheriting from implementation classes
ns_decl_isup
ports ns_decl_ia } a.cpp, as usual: ns_impl_isup
ports1(a, ia) ns_imethodimp a::funca() { ...
... ns_decl_isup
ports_inherited ns_forward_ia(a::) // need to disambiguate ns_decl_ib } b.cpp: ns_impl_isup
ports_inherited1(b, a, ib) // this, superclass,added ifaces ns_imethodimp b::funcb() { ...
... ns_decl_isup
ports_inherited ns_forward_ia(b::) ns_forward_ib(b::) ns_decl_ic } c.cpp: ns_impl_isup
ports_inherited1(c, b, ic) ns_imethodimp c::funcc() { ...
...And 2 more matches
Components.utils.Sandbox
wantex
porthelpers a boolean: if true, then createobjectin(), evalinwindow(), and ex
portfunction() are available in the sandbox.
... the following objects are sup
ported: -promise (removed in firefox 37) css indexeddb (web worker only) xmlhttprequest textencoder textdecoder url urlsearchparams atob btoa blob file crypto rtcidentityprovider fetch (added in firefox 41) ca...
... im
porting functions or objects into the sandbox you can im
port functions or objects into the sandbox simply by assigning them to the sandbox object.
...And 2 more matches
XPCshell Test Manifest Expressions
only decimal integers are sup
ported.
...no escape sequences are sup
ported.
... variables variables are sup
ported as a series of letters, digits or underscores beginning with a letter or an underscore.
...And 2 more matches
imgIContainer
66 introduced gecko 1.0 inherits from: nsisup
ports last changed in gecko 14.0 (firefox 14.0 / thunderbird 14.0 / seamonkey 2.11) implemented by: ?????????????????????????????????????.
... void decodingcomplete(); obsolete since gecko 2.0 void draw(in gfxcontext acontext, in gfxgraphicsfilter afilter, [const] in gfxmatrix auserspacetoimagespace, [const] in gfxrect afill, [const] in nsintrect asubimage, [const] in nsintsize aview
portsize, in pruint32 aflags); native code only!
...void draw( in gfxcontext acontext, in gfxgraphicsfilter afilter, [const] in gfxmatrix auserspacetoimagespace, [const] in gfxrect afill, [const] in nsintrect asubimage, [const] in nsintsize aview
portsize, in pruint32 aflags ); parameters acontext the thebes context to draw the image to.
...And 2 more matches
mozIRegistry
it's not really about any "registry interface" so much as it's about how mozilla sup
ports a more dynamic binding between interface clients and the code that actually provides the implementation of those interfaces.
... there's another component that turns out to also be real im
portant when you go to hook up your code with other mozilla components.
...in addition, it likely will have a couple of minor extensions: sup
port for specifying the .reg file name on initialize().
...And 2 more matches
nsIAccessibleEditableText
the operations it sup
ports includes setting text attributes and text contents while also replacing old text of an object with new text.
... it also includes and sup
port basic operations such as, inserting text, copying text, cutting text, pasting text and deleting text at the specified position.
... inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) method overview void copytext(in long startpos, in long endpos); void cuttext(in long startpos, in long endpos); void deletetext(in long startpos, in long endpos); void inserttext(in astring text, in long position); void pastetext(in long position); void setattributes(in long startpos, in long endpos, in nsisup
ports attributes); unimplemented void settextcontents(in astring text); attributes attribute type description associatededitor nsieditor returns an editor associated with the accessible.
...And 2 more matches
nsIAccessibleStates
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) prior to gecko 1.9, these constants were implemented in nsiaccessible.
... state_multiselectable 0x01000000 sup
ports multiple selection.
... state_extselectable 0x02000000 sup
ports extended selection.
...And 2 more matches
nsIAppShellService
inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) implemented by: @mozilla.org/appshell/appshellservice;1 as a service: var appshellservice = components.classes["@mozilla.org/appshell/appshellservice;1"] .getservice(components.interfaces.nsiappshellservice); method overview void closetoplevelwindow(in nsixulwindow awindow); obsolete since gecko 1.8 void createhiddenwindow(in nsiappshell aappshell); native code only!
... void hidesplashscreen(); obsolete since gecko 1.8 void initialize(in nsicmdlineservice acmdlineservice, in nsisup
ports nativeappsup
portorsplashscreen); obsolete since gecko 1.8 void quit(in pruint32 aferocity); obsolete since gecko 1.8 void registertoplevelwindow(in nsixulwindow awindow); void run(); obsolete since gecko 1.8 void toplevelwindowismodal(in nsixulwindow awindow, in boolean amodal); obsolete since gecko 1.9.1 void unregistertoplevelwindow(in nsixulwindow ...
... nativeappsup
port nsinativeappsup
port getter for "native application sup
port." read only.
...And 2 more matches
nsIClassInfo
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview nsisup
ports gethelperforlanguage(in pruint32 language); void getinterfaces(out pruint32 count, [array, size_is(count), retval] out nsiidptr array); attributes attribute type description classdescription string a human readable string naming the class, or null.
... for example, if asked for the helper for nsiprogramminglanguage::javascript this might return an object that can be nsisup
ports.queryinterface()'d into the nsixpcscriptable interface to assist xpconnect in supplying javascript specific behavior to callers of the instance object.
... nsisup
ports gethelperforlanguage( in pruint32 language ); parameters language this parameter selects the language mapping specific helper object to be returned.
...And 2 more matches
nsIContentView
content/base/public/nsiframeloader.idlscriptable represents a scrollable content view whose contents are actually drawn by a separate process; this is part of the electrolysis multi-process sup
port framework.
... 1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) see working with content views for details on how to use this api.
...sup
port for using this api for all scrollable elements is coming; see bug 618975 for details.
...And 2 more matches
nsIContentViewer
inherits from: nsisup
ports last changed in gecko 10.0 (firefox 10.0 / thunderbird 10.0 / seamonkey 2.7) implemented by: ?????????????????????????????????????.
... void loadcomplete(in unsigned long astatus); void loadstart(in nsisup
ports adoc); void move(in long ax, in long ay); void open(in nsisup
ports astate, in nsishentry ashentry); void pagehide(in boolean isunload); boolean permitunload([optional] in boolean acallercloseswindow); boolean requestwindowclose(); void resetclosewindow(); void setbounds([const] in nsintrectref abounds); native code only!
... [noscript,notxpcom,nostdcall] void setnavigationtiming(in nsdomnavigationtimingptr atiming); void setpagemode(in boolean apagemode, in nsiprintsettings aprintsettings); void show(); void stop(); void unload(); obsolete since gecko 1.8 attributes attribute type description container nsisup
ports domdocument nsidomdocument enablerendering boolean obsolete since gecko 2.0 historyentry nsishentry get the history entry that this viewer will save itself into when destroyed.
...And 2 more matches
nsIFile
inherits from: nsisup
ports last changed in gecko 30.0 (firefox 30.0 / thunderbird 30.0 / seamonkey 2.27) nsifile is the correct platform-agnostic way to specify a file; you should always use this instead of a string to ensure compatibility.
...using the native form limits the ability of your code to deal with the full unicode sup
port on windows 2000 or later where the os itself does not have such a limitation.
... to create an nsifile from a path you can use fileutils.jsm: var fileutils = cu.im
port("resource://gre/modules/fileutils.jsm").fileutils var nsifile = new fileutils.file( filename ) note: nsilocalfile was merged with this interface in gecko 14.
...And 2 more matches
nsIHttpActivityDistributor
netwerk/protocol/http/nsihttpactivityobserver.idlscriptable this interface is used to register and unregister clients that wish to observe http trans
port activity.
...r httpactivitydistributor = components.classes["@mozilla.org/network/http-activity-distributor;1"] .getservice(components.interfaces.nsihttpactivitydistributor); method overview void addobserver(in nsihttpactivityobserver aobserver); void removeobserver(in nsihttpactivityobserver aobserver); methods addobserver() begins delivery of notifications of http trans
port activity.
... void addobserver( in nsihttpactivityobserver aobserver ); parameters aobserver the nsihttpactivityobserver that should receive notifications of http trans
port activity; this object's nsihttpactivityobserver.observeactivity() method will be called each time activity occurs.
...And 2 more matches
nsIMsgProtocolInfo
inherits from: nsisup
ports implemented by: @mozilla.org/messenger/protocol/info;1?type=acct, where acct is the account type that are you are interested in.
... method overview long getdefaultserver
port(in boolean issecure); attributes attribute type description candelete boolean true if an account of this type may be deleted.
... methods getdefaultserver
port() returns the default
port for a connection to a server of this account type.
...And 2 more matches
nsIPrincipal
on the web, for example, a typical principal is comprised of an url scheme, host, and
port.
... void checkmayload(in nsiuri uri, in boolean re
port); void disablecapability(in string capability, inout voidptr annotation); native code only!
... boolean subsumes(in nsiprincipal other); attributes attribute type description certificate nsisup
ports the certificate associated with this principal, if any.
...And 2 more matches
nsIProxyInfo
last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits from: nsisup
ports attributes attribute type description failoverproxy nsiproxyinfo this attribute specifies the proxy to failover to when this proxy fails.
...if a nsiproxyinfo is re
ported as failed via nsiprotocolproxyservice.getfailoverforproxy(), then the failed proxy will not be used again for this many seconds.
...this is used to sup
port proxy failover.
...And 2 more matches
nsIPushService
inherits from: nsisup
ports last changed in gecko 46.0 (firefox 46.0 / thunderbird 46.0 / seamonkey 2.43) push lets a remote server send payloads to a web site, add-on, or component running in the browser.
... nsipushservice sup
ports the push api implementation in firefox, and can be used directly from privileged code to create system subscriptions.
...ozilla.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.re
porterror("error creating subscription: " + code); return; } // `subscription` implements `nsipushsubscription`.
...And 2 more matches
nsIServiceManager
inherits from: nsisup
ports last changed in gecko 1.0 method overview void getservice(in nscidref aclass, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result); void getservicebycontractid(in string acontractid, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result); boolean isserviceinstantiated(in nscidref aclass, in nsiidref aiid); boolean isserviceinstantiatedbycontractid(in string acontractid, in nsiidref aiid); methods getservice() this method returns a reference to a particular xpcom ser...
... ns_nointerface indicates that the iid given isn't sup
ported.
... ns_nointerface indicates that the iid given isn't sup
ported.
...And 2 more matches
nsIWorkerScope
1.0 66 introduced gecko 1.9.1 inherits from: nsiworkerglobalscope last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview void postmessage(in domstring amessage, [optional] in nsiworkermessage
port amessage
port); void close(); attributes attribute type description onclose nsidomeventlistener a listener object to be called when the worker stops running.
... onmessage nsidomeventlistener a listener object to be called when a message is posted on the
port.
...void postmessage( in domstring amessage, in nsiworkermessage
port amessage
port optional ); parameters amessage the message to post.
...And 2 more matches
XPCOM primitive
(however, if you are designing that kind of api today, you should probably use nsivariant instead.) idl data type interface component idl nsidptr nsisup
portsid @mozilla.org/sup
ports-id;1 [scriptable, uuid(d18290a0-4a1c-11d3-9890-006008962422)] interface nsisup
portsid : nsisup
portsprimitive { attribute nsidptr data; string tostring(); }; astring nsisup
portsstring @mozilla.org/sup
ports-string;1 [scriptable, uuid(d79dc970-4a1c-11d3-9890-006008962422)] interface nsisup
portsstring : nsisup
portsprimitive { attribute astring data; wstring ...
...tostring(); }; prbool nsisup
portsprbool @mozilla.org/sup
ports-prbool;1 [scriptable, uuid(ddc3b490-4a1c-11d3-9890-006008962422)] interface nsisup
portsprbool : nsisup
portsprimitive { attribute prbool data; string tostring(); }; pruint8 nsisup
portspruint8 @mozilla.org/sup
ports-pruint8;1 [scriptable, uuid(dec2e4e0-4a1c-11d3-9890-006008962422)] interface nsisup
portspruint8 : nsisup
portsprimitive { attribute pruint8 data; string tostring(); }; pruint16 nsisup
portspruint16 @mozilla.org/sup
ports-pruint16;1 [scriptable, uuid(dfacb090-4a1c-11d3-9890-006008962422)] interface nsisup
portspruint16 : nsisup
portsprimitive { attribute pruint16 data; string tostring(); }; pruint32 nsisup
portspruint32 @mozilla.org/sup
ports-pruint32;1 [scriptable, uuid(e01dc470-4a1c-11d3-9890-00600...
...8962422)] interface nsisup
portspruint32 : nsisup
portsprimitive { attribute pruint32 data; string tostring(); }; pruint64 nsisup
portspruint64 @mozilla.org/sup
ports-pruint64;1 [scriptable, uuid(e13567c0-4a1c-11d3-9890-006008962422)] interface nsisup
portspruint64 : nsisup
portsprimitive { attribute pruint64 data; string tostring(); }; prtime nsisup
portsprtime @mozilla.org/sup
ports-prtime;1 [scriptable, uuid(e2563630-4a1c-11d3-9890-006008962422)] interface nsisup
portsprtime : nsisup
portsprimitive { attribute prtime data; string tostring(); }; char nsisup
portschar @mozilla.org/sup
ports-char;1 [scriptable, uuid(e2b05e40-4a1c-11d3-9890-006008962422)] interface nsisup
portschar : nsisup
portsprimitive { attribute char data; string tostring(); }; print16 nsisup
ports...
...And 2 more matches
XPCOM tasks
5.1 3rd party code that doesn't use any services from our tree should be below xpcom; particularly, code xpcom could exploit, e.g., expat berkeley db changes to apis, functionality, and implementations the following items are listed (very) roughly in their order of im
portance, i.e., fixing observers is the first thing i want to do.
...macros in "nsisup
portsutils.h".
... 5.1 should we provide type-safe templatized containers, e.g., over nsisup
portsarray?
...And 2 more matches
wrappedJSObject
there are two kinds of xpconnect wrappers that sup
port the wrappedjsobject property: xpcnativewrappers which are used to protect the chrome code working with content objects.
... this article focuses on the latter kind of wrappers, which hide any properties or methods on the component that are not part of the sup
ported interfaces as declared in xpidl.
... // constructor function helloworld() { }; helloworld.prototype = { hello: function() { return "hello world!"; }, queryinterface: function(aiid) { if (!aiid.equals(components.interfaces.nsisup
ports) && !aiid.equals(components.interfaces.nsihelloworld)) throw components.results.ns_error_no_interface; return this; } }; xpconnect wrapping now let's get a reference to our component.
...And 2 more matches
MailNews fakeserver
it utilizes utf-8 as its trans
port mechanism and is capable of performing proper pipelining of commands.
...the outline of a test looks like this: var daemon = setupdaemon(); // check with your local fakeserver docs var handlers = [ /* some set of handlers */ ]; for (var handler in handlers) { // this sets up the fake server var server = new nsmailserver(new handler(daemon)); //
port to use.
... i tend to like using 1024 + default
port number myself.
...And 2 more matches
Streams - Plugins
in general, this mode is more expensive, because the entire stream must be downloaded to a temporary file before use unless the stream comes from a local file or an http server that sup
ports the byte-range extension to http.
...seekable streams sup
port random access (for example, local files or http servers that sup
port byte-range requests).
... as an example, suppose that a plug-in (and the http server) sup
ports byte-range requests, and that the browser is in the process of pushing data to the plug-in.
...And 2 more matches
Browser Console - Firefox Developer Tools
one ex
ported symbol from console.jsm is "console".
... components.utils.im
port("resource://gre/modules/console.jsm"); console.log("hello from firefox code"); //output messages to the console learn more: console api reference console.jsm source code in the mozilla dxr hudservice there is also the hudservice which allows access to the browse console.
... here is an example on how to clear the contents of the browser console: components.utils.im
port("resource://devtools/shared/loader.jsm"); var hudservice = devtools.require("devtools/client/webconsole/hudservice"); var hud = hudservice.getbrowserconsole(); hud.jsterm.clearoutput(true); if you would like to access the content document of the browser console this can be done with the hudservice.
...And 2 more matches
Deprecated tools - Firefox Developer Tools
starting firefox 72, you can im
port a javascript file content in the console input with ctrl + o (cmd + o on macos), as well as saving the console input content to a file using ctrl + s (cmd + s on macos).
...it was also intended to sup
port application development for firefox os.
...features not
ported to about:debugging are: wifi debugging for firefox for android, application development.
...And 2 more matches
CSSRule - Web APIs
"h1,h2 { font-size: 16pt }" or "@im
port 'url'".
...the relationships between these constants and the interfaces are: type value rule-specific interface comments and examples cssrule.style_rule 1 cssstylerule the most common kind of rule: selector { prop1: val1; prop2: val2; } cssrule.im
port_rule 3 cssim
portrule an @im
port rule.
... (until the documentation is completed, see the interface definition in the mozilla source code: nsidomcssim
portrule.) cssrule.media_rule 4 cssmediarule cssrule.font_face_rule 5 cssfontfacerule cssrule.page_rule 6 csspagerule cssrule.keyframes_rule 7 csskeyframesrule cssrule.keyframe_rule 8 csskeyframerule reserved for future use 9 should be used to define color profiles in the future cssrule.namespace_rule 10 cssnamespacerule cssrule.counter_style_rule 11 csscounterstylerule cssrule.sup
ports_rule 12 csssup
portsrule cssrule.document_rule 13 cssdocumentrule cssrule.font_feature_values_rule...
...And 2 more matches
CSSStyleSheet - Web APIs
for example, one rule might be a cssstylerule object containing a style such as: h1, h2 { font-size: 16pt; } another rule might be an at-rule such as @im
port or @media, and so forth.
... ownerrule read only if this stylesheet is im
ported into the document using an @im
port rule, the ownerrule property returns the corresponding cssim
portrule; otherwise, this property's value is null.
...a specific style sheet can also be accessed from its owner object (node or cssim
portrule), if any.
...And 2 more matches
Managing screen orientation - Web APIs
this lets content adjust its layout using css, based on whether the browser window is in landscape mode (that is, its width is greater than its height) or
portrait mode (its height is greater than its width).
...1em sans-serif; margin : 0; padding: .5em; } ul { list-style: none; font : 1em monospace; margin : 0; padding: .5em; -moz-box-sizing: border-box; box-sizing: border-box; background: black; } li { display: inline-block; margin : 0; padding: 0.5em; background: white; } once we have some common styles we can start defining a special case for the orientation /* for
portrait, we want the tool bar on top */ @media screen and (orientation:
portrait) { #toolbar { width: 100%; } } /* for landscape, we want the tool bar stick on the left */ @media screen and (orientation: landscape) { #toolbar { position: fixed; width: 2.65em; height: 100%; } p { margin-left: 2em; } li + li { margin-top: .5em; } } and here's the result ...
...
portrait landscape note: the orientation media query actually applies based on the orientation of the browser window (or iframe) not the orientation of the device.
...And 2 more matches
A basic ray-caster - Web APIs
after realizing, to my delight, that the nifty <canvas> element i'd been reading about was not only soon to be sup
ported in firefox, but was already sup
ported in the current version of safari, i had to try a little experiment.
... the canvas overview and tutorial i found here at mdn are great, but nobody had written about animation yet, so i thought i'd try a
port of a basic raycaster i'd worked on a while ago, and see what sort of performance we can expect from a javascript-controlled pixel buffer.
... also, it leaves a lot to be desired in terms of trying to be any sort of game engine—there are no wall textures, no sprites, no doors, not even any tele
porters to get to another level.
...And 2 more matches
DOMException() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdomexception() constructorchrome full sup
port yesedge full sup
port 79firefox ?
... opera full sup
port yessafari ?
... webview android full sup
port yeschrome android full sup
port yesfirefox android ?
...And 2 more matches
Detecting device orientation - Web APIs
increasingly, web-enabled devices are capable of determining their orientation; that is, they can re
port data indicating changes to their orientation with relation to the pull of gravity.
...by receiving and processing the data re
ported by these orientation events, it's possible to interactively respond to rotation and elevation changes caused by the user moving the device.
...this is useful for overcoming some of the differences in device sup
port for device orientation.
...And 2 more matches
DirectoryReaderSync - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdirectoryreadersync non-standardchrome full sup
port 13prefixed full sup
port 13prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 79prefixed full sup
port 79prefixed prefixed implemented with the vendor prefix: webkitfirefox no sup
port ...
... noie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port 37prefixed full sup
port 37prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 18prefixed full sup
port 18prefixed prefixed implemented with the vendor prefix: webkitfirefox android no sup
port noopera android no sup
port nosafari ios no supp...
...ort nosamsung internet android full sup
port 1.0prefixed full sup
port 1.0prefixed prefixed implemented with the vendor prefix: webkitlegend full sup
port full sup
port no sup
port no sup
portnon-standard.
...And 2 more matches
Document.adoptNode() - Web APIs
syntax const im
portednode = document.adoptnode(externalnode); parameters externalnode the node from another document to be adopted.
... return value the copied im
portednode in the scope of the im
porting document.
... after calling this method, im
portednode and externalnode are the same object.
...And 2 more matches
Document.cookie - Web APIs
if not specified, this defaults to the host
portion of the current document location.
... when user privacy is a concern, it's im
portant that any web app implementation invalidate cookie data after a certain timeout instead of relying on the browser to do it.
... some user agent implementations sup
port the following cookie prefixes: __secure- signals to the browser that it should only include the cookie in requests transmitted over a secure channel.
...And 2 more matches
Element.getBoundingClientRect() - Web APIs
the element.getboundingclientrect() method returns the size of an element and its position relative to the view
port.
...properties other than width and height are relative to the top-left of the view
port.
... the amount of scrolling that has been done of the view
port area (or any other scrollable element) is taken into account when computing the bounding rectangle.
...And 2 more matches
FeaturePolicy.features() - Web APIs
the features() method of the featurepolicy interface returns a list of names of all features sup
ported by the user agent.
... syntax const sup
portedfeatures = featurepolicy.features() parameters none.
... return value a list of strings that represent names of all feature policy directives sup
ported by the user agent.
...And 2 more matches
FileEntrySync - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfileentrysync non-standardchrome full sup
port 13prefixed full sup
port 13prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port ≤79prefixed full sup
port ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox no sup
port ...
... noie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port 37prefixed full sup
port 37prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 18prefixed full sup
port 18prefixed prefixed implemented with the vendor prefix: webkitfirefox android no sup
port noopera android no sup
port nosafari ios n...
...o sup
port nosamsung internet android full sup
port 1.0prefixed full sup
port 1.0prefixed prefixed implemented with the vendor prefix: webkitlegend full sup
port full sup
port no sup
port no sup
portnon-standard.
...And 2 more matches
FileList - Web APIs
note: prior to gecko 1.9.2, the input element only sup
ported a single file being selected at a time, meaning that the filelist would contain only one file.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilelistchrome full sup
port 1edge full sup
port 12firefox full sup
port 3ie full sup
port 10opera full sup
port 11.1safari full sup
port 4webview android full sup...
...
port 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 11.1safari ios full sup
port 3.2samsung internet android full sup
port 1.0itemchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie ?
...And 2 more matches
FileSystemDirectoryEntry.removeRecursively() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetremoverecursively deprecatednon-standardchrome full sup
port 8edge full sup
port 79firefox no sup
port 50 — 52notes no sup
port 50 — 52notes notes while the removerecursively() method existed, it immediately called the error callback with ns_error_dom_security_err.ie no sup
port noopera ...
... no sup
port nosafari no sup
port nowebview android full sup
port ≤37chrome android full sup
port 18firefox android no sup
port 50 — 52notes no sup
port 50 — 52notes notes while the removerecursively() method existed, it immediately called the error callback with ns_error_dom_security_err.opera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yeslegend full sup
port ...
... full sup
port no sup
port no sup
portnon-standard.
...And 2 more matches
FileSystemEntry.toURL() - Web APIs
return value a domstring containing a url that can then be used as a document reference in html content, or an empty string if the url can't be generated (such as if the file system implementation doesn't sup
port tourl()).
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettourl experimentaldeprecatednon-standardchrome full sup
port 8edge full sup
port 79firefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port ...
... ≤37chrome android full sup
port 18firefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
...And 2 more matches
FileSystemFileEntry.createWriter() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreatewriter deprecatednon-standardchrome full sup
port 8edge full sup
port 79firefox no sup
port 50 — 52notes no sup
port 50 — 52notes notes while the createwriter() method existed, it immediately called errorcallback with the ns_error_dom_security_err error.ie no sup
port noopera ...
... no sup
port nosafari no sup
port nowebview android full sup
port ≤37chrome android full sup
port 18firefox android no sup
port 50 — 52notes no sup
port 50 — 52notes notes while the createwriter() method existed, it immediately called errorcallback with the ns_error_dom_security_err error.opera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yeslegend full sup
port ...
... full sup
port no sup
port no sup
portnon-standard.
...And 2 more matches
FontFaceSetLoadEvent.FontFaceSetLoadEvent() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfontfacesetloadevent() constructor experimentalchrome full sup
port 57edge full sup
port ≤79firefox ?
... opera full sup
port 44safari ?
... webview android no sup
port nochrome android full sup
port 57firefox android ?
...And 2 more matches
HTMLAnchorElement - Web APIs
htmlhyperlinkelementutils.host is a usvstring representing the hostname and
port (if it's not the default
port) in the referenced url.
... htmlhyperlinkelementutils.origin read only returns a usvstring containing the origin of the url, that is its scheme, its domain and its
port.
... htmlhyperlinkelementutils.
port is a usvstring representing the
port component, if any, of the referenced url.
...And 2 more matches
HTMLAreaElement - Web APIs
htmlhyperlinkelementutils.host is a usvstring containing the hostname and
port (if it's not the default
port) in the referenced url.
... htmlhyperlinkelementutils.origin read only returns a usvstring containing the origin of the url, that is its scheme, its domain and its
port.
... htmlhyperlinkelementutils.
port is a usvstring containing the
port component, if any, of the referenced url.
...And 2 more matches
HTMLIFrameElement.csp - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcsp experimentalchrome full sup
port 61edge full sup
port ≤79firefox ?
... opera full sup
port 48safari ?
... webview android full sup
port 61chrome android full sup
port 61firefox android ?
...And 2 more matches
HTMLImageElement.height - Web APIs
further, the sizes attribute is provided to specify the width at which the image should be drawn given the view
port's width.
... html specifically, for view
ports up to 400px wide, the image is drawn at a width of 200px; otherwise, it's drawn at 300px.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetheightchrome full sup
port 1edge full sup
port 12firefox full sup
port yesie .html?
...And 2 more matches
HTMLImageElement.sizes - Web APIs
it may be specified using font-relative units (such as em or ex), absolute units (such as px or cm), or the vw unit, which lets you specify the width as a percentage of the view
port width (1vw being 1% of the view
port width).
...tica, sans-serif; } article img { display: block; max-width: 100%; border: 1px solid #888; box-shadow: 0 0.5em 0.3em #888; margin-bottom: 1.25em; } javascript the javascript code handles the two buttons that let you toggle the third width option between 40em and 50em; this is done by handling the click event, using the javascript string object method replace() to replace the relevant
portion of the sizes string.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsizes experimentalchrome full sup
port 45edge full sup
port 13firefox full sup
port 38 full sup
port 38 no sup
port 33 — 52disabled disabled from version 33 until version 52 (exclusive): this feature is behind the dom.image.picture.enabled preference...
...And 2 more matches
HTMLInputElement.webkitdirectory - Web APIs
ic1000.jpg pic1004.jpg pic1044.jpg don's 40th birthday pic2343.jpg pic2344.jpg pic2355.jpg pic2356.jpg vacations mars pic5533.jpg pic5534.jpg pic5556.jpg pic5684.jpg pic5712.jpg if the user chooses photoalbums, then the list re
ported by files will contain file objects for every file listed above—but not the directories.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetwebkitdirectory non-standardchrome full sup
port 13edge full sup
port 13firefox full sup
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full supp...
...ort yeschrome android full sup
port yesfirefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portnon-standard.
...And 2 more matches
HTMLMediaElement.controlsList - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontrolslistchrome full sup
port 58edge full sup
port ≤79firefox ?
... opera full sup
port 45safari ?
... webview android full sup
port 58chrome android full sup
port 58firefox android ?
...And 2 more matches
HTMLMediaElement.onwaitingforkey - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonwaitingforkeychrome full sup
port 55edge full sup
port 79firefox full sup
port yesie ?
... opera full sup
port 42safari ?
... webview android full sup
port 55chrome android full sup
port 55firefox android ?
...And 2 more matches
HTMLMediaElement.srcObject - Web APIs
note: as of march 2020, only safari sup
ports setting objects other than mediastream.
... syntax var sourceobject = htmlmediaelement.srcobject; htmlmediaelement.srcobject = sourceobject; value a mediastream, mediasource, blob, or file object (though see the compatibility table for what is actually sup
ported).
... const mediasource = new mediasource(); const video = document.createelement('video'); video.srcobject = mediasource; sup
porting fallback to the src property the examples below sup
port older browser versions that require you to create an object url and assign it to src if srcobject isn't sup
ported.
...And 2 more matches
Dragging and Dropping Multiple Items - Web APIs
mozilla sup
ports the ability to drag multiple items using some additional non-standard methods.
...if a particular drop target only sup
ports dropping a single item, it could either reject the dragged items or it could just use just the first item.
...this is convenient as drop targets which only need to sup
port a single item do not need to do anything extra.
...And 2 more matches
IDBCursor.key - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetkeychrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yesbinary keyschrome full sup
port ...
... 58edge full sup
port ≤79firefox full sup
port 51ie ?
...And 2 more matches
IDBDatabase.createObjectStore() - Web APIs
the method takes the name of the store as well as a parameter object that lets you define im
portant optional properties.
...// this handler is only sup
ported in recent browsers.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreateobjectstorechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
...And 2 more matches
IDBDatabaseException - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidbdatabaseexception deprecatednon-standardchrome full sup
port 12prefixed full sup
port 12prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port ≤79prefixed full sup
port ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox no sup
port ...
... 4 — 14ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android no sup
port 4 — 14opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port ...
... no sup
portnon-standard.
...And 2 more matches
IDBIndex.name - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnamechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5renaming with name setterchrome full sup
port yesedge full sup
port ≤79firefox full sup
port 49ie ?
...And 2 more matches
IDBVersionChangeEvent.version - Web APIs
see the compatibility table to know what browsers sup
port them.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetversion deprecatednon-standardchrome full sup
port 12edge full sup
port ≤18firefox full sup
port 16 full sup
port 16 full sup
port 10prefixed prefixed implemented with the vendor prefix: mozie no sup
port ...
... noopera no sup
port nosafari no sup
port nowebview android full sup
port yeschrome android full sup
port 18firefox android full sup
port 22opera android full sup
port 22safari ios no sup
port nosamsung internet android full sup
port 1.0legend full sup
port full sup
port no sup
port no sup
portnon-standard.
...And 2 more matches
KeyboardEvent.getModifierState() - Web APIs
windows linux (gtk) mac android 2.3 android 3.0 or latter "alt" either alt key or altgr key pressed alt key pressed ⌥ option key pressed alt key or option key pressed "altgraph" both alt and ctrl keys are pressed, or altgr key is pressed level 3 shift key (or level 5 shift key ) pressed ⌥ option key pressed not sup
ported "capslock" during led for ⇪ caps lock turned on not sup
ported while capslock is locked "control" either ctrl key or altgr key pressed ctrl key pressed control key pressed menu key pressed.
... "fn" not sup
ported function key is pressed, but we're not sure what key makes the modifier state active.
... "fnlock" not sup
ported "hyper" not sup
ported "meta" not sup
ported meta key pressed ⌘ command key pressed not sup
ported ⊞ windows logo key or command key pressed "numlock" during led for num lock turned on a key on numpad pressed not sup
ported while numlock is locked "os" ⊞ windows logo key pressed super key or hyper key pressed (typically, mapped to ⊞ windows logo key) not sup
ported "scrolllock" during led for scroll lock turned on during led for scroll lock turned on, but typically this isn't sup
ported by platform not sup
ported while scrolllock is locked "shift" ⇧ shift key pressed "super" not suppo...
...And 2 more matches
MIDIAccess - Web APIs
properties midiaccess.inputs read only returns an instance of midiinputmap which provides access to any available midi input
ports.
... midiaccess.outputs read only returns an instance of midioutputmap which provides access to any available midi output
ports.
... midiaccess.sysexenabled read only a boolean attribute indicating whether system exclusive sup
port is enabled on the current midiaccess instance.
...And 2 more matches
MediaKeyStatusMap.entries() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetentries experimentalchrome full sup
port 42edge full sup
port 16firefox ?
... opera full sup
port 29safari ?
... webview android full sup
port 43chrome android full sup
port 42firefox android ?
...And 2 more matches
MediaKeyStatusMap.forEach() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetforeach experimentalchrome full sup
port 42edge full sup
port 13firefox ?
... opera full sup
port 29safari ?
... webview android full sup
port 43chrome android full sup
port 42firefox android ?
...And 2 more matches
MediaKeyStatusMap.keys() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetkeys experimentalchrome full sup
port 42edge full sup
port 16firefox ?
... opera full sup
port 29safari ?
... webview android full sup
port 43chrome android full sup
port 42firefox android ?
...And 2 more matches
MediaKeyStatusMap.values() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetvalues experimentalchrome full sup
port 42edge full sup
port 16firefox ?
... opera full sup
port 29safari ?
... webview android full sup
port 43chrome android full sup
port 42firefox android ?
...And 2 more matches
MediaRecorder.ignoreMutedMedia - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetignoremutedmedia deprecatednon-standardchrome no sup
port 49 — 57edge no sup
port nofirefox ?
... ie no sup
port noopera no sup
port 36 — 44safari no sup
port nowebview android no sup
port 49 — 57chrome android no sup
port 49 — 57firefox android ?
... opera android no sup
port 36 — 44safari ios no sup
port nosamsung internet android no sup
port 5.0 — 7.0legend no sup
port no sup
port compatibility unknown compatibility unknownnon-standard.
...And 2 more matches
Transcoding assets for Media Source Extensions - Web APIs
getting started the first and most im
portant step is to ensure that your files are comprised of a container and codec that users' browsers sup
port.
... container and codec sup
port as specified in section 1.1 of the mse spec: goals, mse is designed not to require sup
port for any particular media format or codec.
... while this is true on paper, browser sup
port varies for specific container/codec combinations.
...And 2 more matches
Media Source API - Web APIs
while browser sup
port for the various media containers with mse is spotty, usage of the h.264 video codec, aac audio codec, and mp4 container format is a common baseline.
... mse also provides an api for runtime detection of container and codec sup
port.
...while there are other protocols available (such as http live streaming (hls)), dash has the most platform sup
port.
...And 2 more matches
MessageChannel() - Web APIs
the messagechannel() constructor of the messagechannel interface returns a new messagechannel object with two new message
port objects.
...when the iframe has loaded, we pass
port2 to the iframe using message
port.postmessage along with a message.
... the handlemessage handler then responds to a message being sent back from the iframe (using message
port.onmessage), putting it into a paragraph.
...And 2 more matches
Metadata.size - Web APIs
workingdirectory.getfile("log/im
portant.log", {}, function(fileentry) { fileentry.getmetadata(function(metadata) { if (metadata.size > 1048576) { fileentry.remove(function() { /* log file removed; do something clever here */ }); } }); }, handleerror); this api has no official w3c or whatwg specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsize experimentalnon-standardchrome full sup
port 13edge full sup
port ≤79firefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android full sup
port yesfirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
...And 2 more matches
NonDocumentTypeChildNode.nextElementSibling - Web APIs
s div-02</div> <script type="text/javascript"> var el = document.getelementbyid('div-01').nextelementsibling; console.log('siblings of div-01:'); while (el) { console.log(el.nodename); el = el.nextelementsibling; } </script> this example outputs the following into the console when it loads: siblings of div-01: div script polyfill for internet explorer 8 this property is unsup
ported prior to ie9, so the following snippet can be used to add sup
port to ie8: // source: https://github.com/alhadis/snippets/blob/master/js/polyfills/ie8-child-elements.js if(!("nextelementsibling" in document.documentelement)){ object.defineproperty(element.prototype, "nextelementsibling", { get: function(){ var e = this.nextsibling; while(e && 1 !== e.nodetype...
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnextelementsiblingchrome full sup
port 4edge full sup
port 12notes full sup
port 12notes notes before edge 79, this property was only implemented for element, not for characterdata.firefox full sup
port 3.5ie partial sup
port 9notes par...
...tial sup
port 9notes notes only implemented for element, not for characterdata.
...And 2 more matches
PaymentRequest.onshippingoptionchange - Web APIs
var request = new paymentrequest(sup
portedinstruments, details, options); // when user selects a shipping address request.addeventlistener('shippingaddresschange', e => { e.updatewith(((details, addr) => { var shippingoption = { id: '', label: '', amount: { currency: 'usd', value: '0.00' }, selected: true }; // shipping to us is sup
ported if (addr.country === 'us') { shippingoption.id = '...
...us'; shippingoption.label = 'standard shipping in us'; shippingoption.amount.value = '0.00'; details.total.amount.value = '55.00'; // shipping to jp is sup
ported } else if (addr.country === 'jp') { shippingoption.id = 'jp'; shippingoption.label = 'international shipping'; shippingoption.amount.value = '10.00'; details.total.amount.value = '65.00'; // shipping to elsewhere is unsup
ported } else { // empty array indicates rejection of the address details.shippingoptions = []; return promise.resolve(details); console.log(details.error); } // hardcode for simplicity if (details.displayitems.length === 2) { details.displayitems[2] = shippingoption; } else { details.displayitems.push(shippin...
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonshippingoptionchangechrome full sup
port 61edge full sup
port 15firefox full sup
port 55notes disabled full sup
port 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...
...And 2 more matches
PaymentResponse.complete() - Web APIs
var payment = new paymentrequest(sup
portedinstruments, details, options); payment.show().then(function(paymentresponse) { var fetchoptions = { method: 'post', credentials: include, body: json.stringify(paymentresponse) }; var serverpaymentrequest = new request('secure/payment/endpoint'); fetch(serverpaymentrequest, fetchoptions).then( response => { if (response.status < 400) { paymentresponse.complete("suc...
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcomplete()chrome full sup
port 61edge full sup
port 15firefox full sup
port 56notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port yeswebview android no sup
port nochrome android full sup
port 56 full sup
port 56 no sup
port 53 — 56disabled disabled from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
...And 2 more matches
PaymentResponse.shippingAddress - Web APIs
var payment = new paymentrequest(sup
portedinstruments, details, options); request.addeventlistener('shippingaddresschange', function(evt) { evt.updatewith(new promise(function(resolve) { updatedetails(details, request.shippingaddress, resolve); })); }); payment.show().then(function(paymentresponse) { // processing of paymentresponse exerpted for the same of brevity.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetshippingaddresschrome full sup
port 61edge full sup
port 15firefox full sup
port 56notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port yeswebview android no sup
port nochrome android full sup
port 56 full sup
port 56 no sup
port 53 — 56disabled disabled from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
...And 2 more matches
PaymentResponse.shippingOption - Web APIs
var payment = new paymentrequest(sup
portedinstruments, details, options); request.addeventlistener('shippingoptionchange', function(evt) { evt.updatewith(new promise(function(resolve, reject) { updatedetails(details, request.shippingoption, resolve, reject); })); }); payment.show().then(function(paymentresponse) { // processing of paymentresponse exerpted for the same of brevity.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetshippingoptionchrome full sup
port 61edge full sup
port 15firefox full sup
port 56notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port yeswebview android no sup
port nochrome android full sup
port 56 full sup
port 56 no sup
port 53 — 56disabled disabled from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
...And 2 more matches
Using Performance Timeline - Web APIs
the performance timeline standard defines extensions to the performance interface to sup
port client-side latency measurements within applications.
...performance.mark not sup
ported"); return; } // create some performance entries via the mark() and measure() methods performance.mark("begin"); do_work(50000); performance.mark("end"); do_work(50000); performance.measure("measure1", "begin", "end"); // use getentries() to iterate all entries var p = performance.getentries(); for (var i=0; i < p.length; i++) { log("all entry[" + i + "]"); prin...
...pe", "starttime", "duration"]; // create a few performance entries performance.mark("start"); do_work(50000); performance.mark("stop"); performance.measure("measure-1"); var p = performance.getentries(); for (var i=0; i < p.length; i++) { log("perfentry[" + i + "]"); for (var j=0; j < properties.length; j++) { // check each property in window.performance var sup
ported = properties[j] in p[i]; if (sup
ported) { var pe = p[i]; log("...
...And 2 more matches
PhotoCapabilities.fillLightMode - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilllightmode experimentalchrome full sup
port 59edge full sup
port ≤79firefox ?
... opera full sup
port 46safari ?
... webview android full sup
port 59chrome android full sup
port 59firefox android ?
...And 2 more matches
PhotoCapabilities.redEyeReduction - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetredeyereduction experimentalchrome full sup
port 59edge full sup
port ≤79firefox ?
... opera full sup
port 46safari ?
... webview android full sup
port 59chrome android full sup
port 59firefox android ?
...And 2 more matches
Pinch zoom gestures - Web APIs
the source code is available on github; pull requests and bug re
ports are welcome.
... <style> div { margin: 0em; padding: 2em; } #target { background: white; border: 1px solid black; } </style> global state sup
porting a two-pointer gesture requires preserving a pointer's event state during various event phases.
... // this event is cached to sup
port 2-finger gestures evcache.push(ev); log("pointerdown", ev); } pointer move the pointermove event handler detects if a user is invoking a two-pointer pinch/zoom gesture.
...And 2 more matches
PublicKeyCredentialCreationOptions.extensions - Web APIs
as of june 2020, only appid (used during creation with publickeycredentialrequestoptions.extensions) is sup
ported by chrome and edge.
... firefox does not seem to sup
port any extension.
... also chrome doesn't plan to sup
port any other extension in future extension identifier type description authnsel array of buffersource authenticator selection.
...And 2 more matches
RTCDataChannel.readyState - Web APIs
syntax var state = adatachannel.readystate; values a string which is one of the values in the rtcdatachannelstate enum, indicating the current state of the underlying data trans
port.
... constant description "connecting" the user agent (browser) is in the process of creating the underlying data trans
port; that is, whatever network level connection is used to link the two peers together is in the process of being set up.
... "open" the underlying data trans
port has been established and data can be transferred bidirectionally across it.
...And 2 more matches
RTCDataChannel.send() - Web APIs
this can be done any time except during the initial process of creating the underlying trans
port channel.
... exceptions invalidstateerror since the data channel uses a separate trans
port channel from the media content, it must establish its own connection; if it hasn't finished doing so (that is, its readystate is "connecting"), this error occurs without sending or buffering the data.
...in this scenario, the underlying trans
port is immediately closed.
...And 2 more matches
RTCIceCandidate.protocol - Web APIs
the rtcicecandidate interface's read-only protocol property is a string which indicates whether the candidate uses udp or tcp as its trans
port protocol.
...these values are defined by the enumerated type rtciceprotocol: tcp the candidate, if selected, would use tcp as the trans
port protocol for its data.
... udp the candidate will use the udp trans
port protocol for its data.
...And 2 more matches
RTCIceCandidate - Web APIs
properties candidate read only a domstring representing the trans
port address for the candidate that can be used for connectivity checks.
...this is used to help optimize ice performance while prioritizing and correlating candidates that appear on multiple rtcicetrans
port objects.
...
port read only an integer value indicating the candidate's
port number.
...And 2 more matches
RTCIceCandidatePairStats.selected - Web APIs
in any other browser, you can determine the selected candidate pair by looking for a stats object of type trans
port, which is an rtctrans
portstats object.
... that object's selectedcandidatepairid property indicates whether or not the specified trans
port is the one being used.
... example the function shown in this example identifies the currently-selected candidate pair from a statistics re
port by first iterating over each re
port, looking for a trans
port re
port; when one is found, that trans
port's selectedcandidatepairid is used to get the rtcicecandidatepair describing the connection.
...And 2 more matches
RTCIceGathererState - Web APIs
the rtcicegathererstate enumerated type provides the string values which can be returned by an rtcicetrans
port object's gatheringstate.
... values "new" the rtcicetrans
port is newly created and has not yet started to gather ice candidates.
... "gathering" the trans
port is in the process of gathering candidates.
...And 2 more matches
RTCPeerConnection.canTrickleIceCandidates - Web APIs
ideally, your signaling protocol provides a way to detect trickling sup
port, so that you don't need to rely on this property.
... a webrtc browser will always sup
port trickle ice.
... if trickling isn't sup
ported, or you aren't able to tell, you can check for a falsy value for this property and then wait until the value of icegatheringstate changes to "completed" before creating and sending the initial offer.
...And 2 more matches
RTCPeerConnection.createOffer() - Web APIs
the sdp offer includes information about any mediastreamtracks already attached to the webrtc session, codec, and options sup
ported by the browser, and any candidates already gathered by the ice agent, for the purpose of being sent over the signaling channel to a potential peer to request a connection or to update the configuration of an existing connection.
... offertoreceiveaudio optional (legacy) a legacy boolean option which used to control whether or not to offer to the remote peer the op
portunity to try to send audio.
... offertoreceivevideo optional (legacy) a legacy boolean option which used to control whether or not to offer to the remote peer the op
portunity to try to send video.
...And 2 more matches
RTCRtpContributingSource.source - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsourcechrome full sup
port 59edge full sup
port ≤79firefox full sup
port 59disabled full sup
port 59disabled disabled from version 59: this feature is behind the media.peerconnection.rtpsourcesapi.enable preference (needs to be set to true).
... to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari ?
... webview android full sup
port 59chrome android full sup
port 59firefox android full sup
port 59disabled full sup
port 59disabled disabled from version 59: this feature is behind the media.peerconnection.rtpsourcesapi.enable preference (needs to be set to true).
...And 2 more matches
RTCRtpReceiver.getCapabilities() static function - Web APIs
the static function rtcrtpreceiver.getcapabilities() returns an rtcrtpcapabilities object describing the codecs and capabilities sup
ported by rtcrtpreceivers on the current device.
...all browsers sup
port the primary media kinds: audio and video.
...if the browser doesn't have any sup
port for the given media kind, the returned value is null.
...And 2 more matches
RTCRtpSender.getCapabilities() static function - Web APIs
the static function rtcrtpsender.getcapabilities() returns an rtcrtpcapabilities object describing the codecs and capabilities sup
ported by the rtcrtpsender.
...all browsers sup
port the primary media kinds: audio and video.
...if the browser doesn't have any sup
port for the given media kind, the returned value is null.
...And 2 more matches
Slottable: assignedSlot - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetassignedslot experimentalchrome full sup
port 53edge full sup
port 79firefox full sup
port 63 full sup
port 63 no sup
port 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled ...
... no sup
port ?
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 40safari full sup
port 10.1webview android full sup
port 53chrome android full sup
port 53firefox android full sup
port 63 full sup
port 63 no sup
port 59...
...And 2 more matches
Detect WebGL - Web APIs
« previousnext » this example demonstrates how to detect a webgl rendering context and re
ports the result to the user.
... feature-detecting webgl in this first example we are going to check whether the browser sup
ports webgl.
... var gl = canvas.getcontext("webgl") || canvas.getcontext("experimental-webgl"); // re
port the result.
...And 2 more matches
Using WebGL extensions - Web APIs
webgl, like its sister apis (opengl and opengl es), sup
ports extensions.
... canonical extension names, vendor prefixes and preferences extensions may be sup
ported by browser vendors before being officially ratified (but only when they are in draft stage).
... querying available extensions the webgl context sup
ports querying what extensions are available.
...And 2 more matches
Establishing a connection: The WebRTC perfect negotiation pattern - Web APIs
because webrtc doesn't mandate a specific trans
port mechanism for signaling during the negotiation of a new peer connection, it's highly flexible.
... however, despite that flexibility in trans
port and communication of signaling messages, there's still a recommended design pattern you should follow when possible, known as perfect negotiation.
... an im
portant thing to keep in mind is this: the roles of caller and callee can switch during perfect negotiation.
...And 2 more matches
Improving compatibility using WebRTC adapter.js - Web APIs
the adapter is a javascript shim which lets your code to be written to the specification so that it will "just work" in all browsers with webrtc sup
port.
... note: since there is ongoing fluidity in functionality and naming of api terms in webrtc and sup
porting browsers, use of this adapter is generally recommended.
... what adapter.js does for each version of each browser that sup
ports webrtc, adapter.js implements the needed polyfills, establishes the non-prefixed names of apis, and applies any other changes needed to make the browser run code written to the webrtc specification.
...And 2 more matches
Window.customElements - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcustomelementschrome full sup
port 54edge full sup
port 79firefox full sup
port 63 full sup
port 63 no sup
port 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.customelements.ena...
... no sup
port ?
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 41safari full sup
port 10.1webview android full sup
port 54chrome android full sup
port 54firefox android full sup
port 63 full sup
port 63 no sup
port ...
...And 2 more matches
Window.minimize() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetminimize non-standardchrome no sup
port noedge no sup
port nofirefox no sup
port noie ?
... webview android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android ?
... samsung internet android no sup
port nolegend no sup
port no sup
port compatibility unknown compatibility unknownnon-standard.
...And 2 more matches
Window.openDialog() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetopendialog non-standardchrome no sup
port noedge no sup
port nofirefox no sup
port noie ?
... webview android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android ?
... samsung internet android no sup
port nolegend no sup
port no sup
port compatibility unknown compatibility unknownnon-standard.
...And 2 more matches
Window.prompt() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpromptchrome full sup
port 1notes full sup
port 1notes notes starting with chrome 46, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.edge full sup
port 12firefox full sup
port 1ie full sup
port ...
... 4notes full sup
port 4notes notes this function has no effect in the modern ui/metro version of internet explorer for windows 8.
...desktop versions of ie do implement this function.opera full sup
port 3notes full sup
port 3notes notes starting with opera 33, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.safari full sup
port 1webview android full sup
port 1notes full sup
port 1notes notes starting with webview 46, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.chrome androi...
...And 2 more matches
Window.requestFileSystem() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetrequestfilesystem experimentalnon-standardchrome full sup
port 13prefixed full sup
port 13prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port ≤18prefixed full sup
port ≤18prefixed prefixed implemented with the vendor prefix: webkitfirefox no sup
port ...
... noie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port 37prefixed full sup
port 37prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitfirefox android no sup
port noopera android no sup
port nosafari ios ...
... no sup
port nosamsung internet android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitlegend full sup
port full sup
port no sup
port no sup
portexperimental.
...And 2 more matches
Window.routeEvent() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetrouteevent deprecatednon-standardchrome no sup
port noedge no sup
port nofirefox no sup
port noie ?
... webview android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android ?
... samsung internet android no sup
port nolegend no sup
port no sup
port compatibility unknown compatibility unknownnon-standard.
...And 2 more matches
Window.scrollY - Web APIs
in more technical terms, scrolly returns the y coordinate of the top edge of the current view
port.
... if there is no view
port, the returned value is 0.
...additionally, older versions of internet explorer (< 9) do not sup
port either property and must be worked around by checking other non-standard properties.
...And 2 more matches
Window.setCursor() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsetcursor non-standardchrome no sup
port noedge no sup
port nofirefox no sup
port noie ?
... webview android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android ?
... samsung internet android no sup
port nolegend no sup
port no sup
port compatibility unknown compatibility unknownnon-standard.
...And 2 more matches
Window.showModalDialog() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetshowmodaldialog deprecatednon-standardchrome no sup
port ?
... — 43edge no sup
port nofirefox no sup
port 3 — 56ie full sup
port 4opera no sup
port nosafari full sup
port 5.1notes full sup
port 5.1notes notes see webkit bug 151885 for possible future removal from safari.webview android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios no sup
port ...
... nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portnon-standard.
...And 2 more matches
Window.updateCommands() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetupdatecommands non-standardchrome no sup
port noedge no sup
port nofirefox full sup
port yesie ?
... webview android no sup
port nochrome android no sup
port nofirefox android full sup
port yesopera android ?
... samsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownnon-standard.
...And 2 more matches
How to check the security state of an XMLHTTPRequest over SSL - Web APIs
// adapted from the patch for moztcpsocket error re
porting (bug 861196).
...ifference let sslerr = math.abs(nsinsserrorsservice.nss_ssl_error_base) - (status & 0xffff); switch (sslerr) { case 3: // ssl_error_no_certificate, ssl(3) errname = 'securitynocertificateerror'; break; case 4: // ssl_error_bad_certificate, ssl(4) errname = 'securitybadcertificateerror'; break; case 8: // ssl_error_unsup
ported_certificate_type, ssl(8) errname = 'securityunsup
portedcertificatetypeerror'; break; case 9: // ssl_error_unsup
ported_version, ssl(9) errname = 'securityunsup
portedtlsversionerror'; break; case 12: // ssl_error_bad_cert_domain, ssl(12) errname = 'securitycertificatedomainmismatcherror'; break; default: ...
... errname = 'securityerror'; break; } } } else { errtype = 'network'; switch (status) { // connect to host:
port failed case 0x804b000c: // ns_error_connection_refused, network(13) errname = 'connectionrefusederror'; break; // network timeout error case 0x804b000e: // ns_error_net_timeout, network(14) errname = 'networktimeouterror'; break; // hostname lookup failed case 0x804b001e: // ns_error_unknown_host, network(30) errname = 'domainnotfounderror'; break; case 0x804b0047: // ns_error_net_interrupt, network(71) errname = 'networkinterrupterror'; break; default: errname = 'networkerror'; break; } } // xxx we have no tcperror impl...
...And 2 more matches
XRSessionInit - Web APIs
optionalfeatures optional an array of values identifying features which the returned xrsession may optionally sup
port.
... requiredfeatures optional an array of values which the returned xrsession must sup
port.
... default features immersive sessions all immersive (both immersive-vr and immersive-ar) sessions sup
port both the viewer and local reference spaces.
...And 2 more matches
XRSessionMode - Web APIs
im
portant: the immersive-ar mode is defined by the webxr augmented reality module, which is not yet stable and should not be used other than for testing and experimentation.
...inline sessions don't require special hardware and should be avalable on any user agent offering webxr api sup
port.
... usage notes the xrsessionmode type indicates the values that can be specified when calling xr.issessionsup
ported() to determine whether or not the specified session type is sup
ported and available to be used, and by requestsession() to attempt to open a new webxr session.
...And 2 more matches
XRSystem - Web APIs
methods in addition to inheriting methods from its parent interface, eventtarget, the xrsystem interface includes the following methods: issessionsup
ported() returns a promise which resolves to true if the browser sup
ports the given xrsessionmode.
... resolves to false if the specified mode isn't sup
ported.
... examples the following example shows how to use both issessionsup
ported() and requestsession().
...And 2 more matches
XRWebGLLayer - Web APIs
in particular, it provides access to the webgl framebuffer and view
port to ease access to the context.
... although xrwebgllayer is currently the only type of framebuffer layer sup
ported by webgl, it's entirely possible that future updates to the webxr specification may allow for other layer types and corresponding image sources.
... properties antialias read only a boolean value indicating whether or not the webgl context's framebuffer sup
ports anti-aliasing.
...And 2 more matches
XSLTProcessor - Web APIs
new xsltprocessor() methods [throws] void xsltprocessor.im
portstylesheet(node stylesheet) im
ports the xslt stylesheet.
... [throws] documentfragment xsltprocessor.transformtofragment(node source, document owner) transforms the node source by applying the stylesheet im
ported using the xsltprocessor.im
portstylesheet() function.
... [throws] document xsltprocessor.transformtodocument(node source) transforms the node source applying the stylesheet given im
porting using the xsltprocessor.im
portstylesheet() function.
...And 2 more matches
ARIA: switch role - Accessibility
the switch role does not sup
port the value mixed for the aria-checked attribute; assigning a value of mixed to a switch instead sets the value to false.
...a value of true represents the "on" state; false represents the "off" state; a value of mixed is not sup
ported by the switch role, and is treated as false.
... aria-readonly attribute the aria-readonly attribute is sup
ported by the switch role.
...And 2 more matches
ARIA: listbox role - Accessibility
if an option or item is focused within the list, it gets announced next, followed by an indication of the item's position with the list if the screen reader sup
ports this.
...sup
porting this key is strongly recommended for lists with more than five options.
...sup
porting this key is strongly recommended for lists with more than five options.
...And 2 more matches
Accessibility: What users can do to browse more safely - Accessibility
this article discusses making web content accessible for those with vestibular disorders, and those who sup
port them, by taking advantage of personalization and accessibility settings built into the operating systems.
...learn personalization and accessibility settings firefox 73 and above (dekstop) firefox added sup
port for css prefers-reduced-motion in october 2018.
... chrome 74 and above (desktop) chrome 74 added sup
port for reduced-motion-query, it has even added sup
port to detect whether the user has requested a reduced motion experience.
...And 2 more matches
Web accessibility for seizures and physical reactions - Accessibility
the point is, seizures most definitely can be and are fatal, and developers and designers are incredibly im
portant to making the web a safer place for those with sensitivities to photosensitive or musicogenic triggers.
... prefers-reduced-motion sup
port for prefers-reduced-motion in modern browsers is growing.
...sup
port is emerging.
...And 2 more matches
:has() - CSS: Cascading Style Sheets
/* selects any <a>, as long as it has an <img> element directly inside it */ /* note that this is not sup
ported in any browser yet */ let test = document.queryselector('a:has(> img)'); syntax :has( <relative-selector-list> )where <relative-selector-list> = <relative-selector>#where <relative-selector> = <combinator>?
...instead, browsers currently only sup
port the use of :has() within stylesheets.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:has()chrome no sup
port nonotes no sup
port nonotes notes see bug 669058edge no sup
port nonotes no sup
port nonotes notes see bug 669058firefox no sup
port nonotes no sup
port ...
...And 2 more matches
-webkit-transition - CSS: Cascading Style Sheets
the -webkit-transition boolean css media feature is a chrome extension whose value is true if the browsing context sup
ports css transitions.
... it was never sup
ported in browsers not based on webkit or blink.
...use an @sup
ports feature query instead.
...And 2 more matches
aspect-ratio - CSS: Cascading Style Sheets
the aspect-ratio css media feature can be used to test the aspect ratio of the view
port.
... syntax the aspect-ratio feature is specified as a <ratio> value representing the width-to-height aspect ratio of the view
port.
... examples the example below is contained in an <iframe>, which creates its own view
port.
...And 2 more matches
orientation - CSS: Cascading Style Sheets
the orientation css media feature can be used to test the orientation of the view
port (or the page box, for paged media).
...opening the soft keyboard on many devices in
portrait orientation will cause the view
port to become wider than it is tall, thereby causing the browser to use landscape styles instead of
portrait.
... keyword values
portrait the view
port is in a
portrait orientation, i.e., the height is greater than or equal to the width.
...And 2 more matches
Color picker tool - CSS: Cascading Style Sheets
er-box; box-sizing: border-box; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; } /** * resize handle */ .resize-handle { width: 10px; height: 10px; background: url('https://mdn.mozillademos.org/files/6083/resize.png') center center no-repeat; position: absolute; bottom: 0; right: 0; } [data-resize='both']:hover { cursor: nw-resize !im
portant; } [data-resize='width']:hover { cursor: w-resize !im
portant; } [data-resize='height']:hover { cursor: n-resize !im
portant; } [data-hidden='true'] { display: none; } [data-collapsed='true'] { height: 0 !im
portant; } .block { display: table; } /** * container */ #container { width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; d...
...ound-position: left 35px top 60%; text-align: right; border: 3px dashed rgb(221, 221, 221); border-radius: 15px; position: absolute; top: 50px; left: 20%; } #canvas[data-tutorial='drop']:after { content: "adjust, change or modify"; width: 40%; font-size: 24px; position: absolute; top: 130px; left: 32%; z-index: 2; } #canvas [data-tutorial='dblclick'] { background-color: #999 !im
portant; } #canvas [data-tutorial='dblclick']:before { content: "double click to activate"; width: 80px; color: #fff; position: absolute; top: 10%; left: 20%; z-index: 2; } #canvas .sample { width: 100px; height: 100px; min-width: 20px; min-height: 20px; position: absolute; border: 1px solid rgba(255, 255, 255, 0.3); } #canvas .sample:hover { cursor: move; } #canvas .sample[data-acti...
...ve='true']:after { content: ""; position: absolute; background: url('https://mdn.mozillademos.org/files/6065/arrow.png') center no-repeat; width: 100%; height: 12px; top: -12px; z-index: 2; } #canvas .sample:hover > * { cursor: pointer; display: block !im
portant; } #canvas .sample .resize-handle { display: none; } #canvas .sample .pick { width: 10px; height: 10px; margin: 5px; background: url('https://mdn.mozillademos.org/files/6079/pick.png') center no-repeat; position: absolute; top: 0; left: 0; display: none; } #canvas .sample .delete { width: 10px; height: 10px; margin: 5px; background: url('https://mdn.mozillademos.org/files/6069/close.png') center no-repeat; position: absolute; top: 0; right: 0; display: none; } /** * canvas controls */ #canvas .toggle-...
...And 2 more matches
Basic concepts of flexbox - CSS: Cascading Style Sheets
understanding which axis is which is im
portant when we start to look at aligning and justifying flex items; flexbox features properties that align and justify content along one axis or the other.
...this concept of available space is also im
portant when we come to look at aligning items.
...this will cause the item to stretch and take up any available space on that axis, or a pro
portion of the available space if other items are allowed to grow too.
...And 2 more matches
Typical use cases of Flexbox - CSS: Cascading Style Sheets
in a perfect world of browser sup
port, the reason you'd choose to use flexbox is because you want to lay a collection of items out in one direction or another.
...you can change how the space is distributed using the space-around value, or where sup
ported, space-evenly.
...in this case we would use the flex properties to allow items to grow and shrink in pro
portion to one another as described in controlling ratios of flex items along the main axis.
...And 2 more matches
OpenType font features guide - CSS: Cascading Style Sheets
you can visit wakamaifondue.com, drop your font file on the circle where instructed and in a few moments you'll have a full re
port on all the capabilities and features of your font.
...pro
portional spacing is the normal setting, whereas tabular spacing lines up numerals evenly regardless of character width, making it more appropriate for lining up tables of numbers in financial tables.
... there are two types of fractions sup
ported through this property: diagonal slashed fractions.
...And 2 more matches
Syntax - CSS: Cascading Style Sheets
it is im
portant to note that even if a ruleset characterized by a group of selectors is a kind of shorthand replacing rulesets with a single selector each, this doesn't apply to the validity of the ruleset itself.
... this leads to an im
portant consequence: if one single basic selector is invalid, like when using an unknown pseudo-element or pseudo-class, the whole selector is invalid and therefore the entire rule is ignored (as invalid too).
...but there is other information that a web author wants to convey in the style sheet, like the character set, other external style sheets to im
port, font face or list counter descriptions and many more.
...And 2 more matches
Visual formatting model - CSS: Cascading Style Sheets
external information (e.g., view
port size, intrinsic dimensions of images, etc.).
... the role of the view
port in continuous media, the view
port is the viewing area of the browser window.
... user agents can change the layout of the page when the view
port size changes — for example, if you resize your window, or change the orientation of a mobile device.
...And 2 more matches
background-position - CSS: Cascading Style Sheets
candidate recommendation adds sup
port for multiple backgrounds and the four-value syntax.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbackground-positionchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 4opera full sup
port 3.5safari full sup
port 1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0multiple backgroundschrome full sup
port 1edge full sup
port 12firefox full sup
port 3.6ie full sup
port 9opera full sup
port 10.5safari full sup
port ...
...And 2 more matches
<color> - CSS: Cascading Style Sheets
this is because most devices are not calibrated, and some browsers do not sup
port output devices' color profiles.
... although various colors not in the specification (mostly adapted from the x11 colors list) were sup
ported by early browsers, it wasn't until svg 1.0 and css colors level 3 that they were formally defined.
... functional notation: rgb[a](r g b[ / a]) css colors level 4 adds sup
port for space-separated values in the functional notation.
...And 2 more matches
column-count - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcolumn-countchrome full sup
port 50 full sup
port 50 full sup
port 1prefixed prefixed implemented with the vendor prefix: -webkit-edge full sup
port 12 full sup
port 12 full sup
port ...
...12prefixed prefixed implemented with the vendor prefix: -webkit-firefox full sup
port 52 full sup
port 52 no sup
port 1.5 — 74prefixed notes prefixed implemented with the vendor prefix: -moz-notes prior to version 37, multiple columns didn't work with display: table-caption elements.ie full sup
port 10opera full sup
port 11.1 full sup
port 11.1 full sup
port 15prefixed prefixed implemented with the vendor prefix: -webkit-safari full sup
port 9 full ...
...sup
port 9 full sup
port 3prefixed prefixed implemented with the vendor prefix: -webkit-webview android full sup
port 50 full sup
port 50 full sup
port ≤37prefixed prefixed implemented with the vendor prefix: -webkit-chrome android full sup
port 50 full sup
port 50 full sup
port 18prefixed prefixed implemented with the vendor prefix: -webkit-firefox android full sup
port 52 full sup
port ...
...And 2 more matches
element() - CSS: Cascading Style Sheets
examples these examples can be viewed live in builds of firefox that sup
port -moz-element().
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetelement() experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 57prefixed full sup
port 57prefixed prefixed implemented with the vendor prefix: -moz- no sup
port 29 — 57prefixed notes prefixed implemented with the vendor prefix: -...
... no sup
port 4 — 29prefixed notes prefixed implemented with the vendor prefix: -moz-notes -moz-element() is limited to background-image and background.ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android full sup
port 60prefixed full sup
port 60prefixed prefixed implemented with th...
...And 2 more matches
filter - CSS: Cascading Style Sheets
the value of amount defines the pro
portion of the conversion.
...the value of amount defines the pro
portion of the conversion.
...the value of amount defines the pro
portion of the conversion.
...And 2 more matches
<image> - CSS: Cascading Style Sheets
if sup
ported, the browser-defined size matching the usual cursor size on the client's system content for a pseudo-element (::after/::before) a 300px × 150px rectangle the concrete object size is calculated using the following algorithm: if the specified size defines both the width and the height, these values are used as the concrete object size.
... note: not all browsers sup
port every type of image on every property.
...this is im
portant primarily for screen readers, as a screen reader will not announce its presence and therefore convey nothing to its users.
...And 2 more matches
<length> - CSS: Cascading Style Sheets
depending on the unit, this can be the size of a specific character, the line height, or the size of the view
port.
... view
port-percentage lengths view
port-percentage lengths define the <length> value relative to the size of the view
port, i.e., the visible
portion of the document.
... view
port lengths are invalid in @page declaration blocks.
...And 2 more matches
Constraint validation - Developer guides
validation-related attributes in addition to the type attribute described above, the following attributes are used to describe basic constraints: attribute input types sup
porting the attribute possible values constraint description associated violation pattern text, search, url, tel, email, password a javascript regular expression (compiled with the ecmascript 5 global, ignorecase, and multiline flags disabled) the value must match the pattern.
...the constraint validation is done in the following ways: by a call to the checkvalidity() or re
portvalidity() method of a form-associated dom interface, (htmlinputelement, htmlselectelement, htmlbuttonelement, htmloutputelement or htmltextareaelement), which evaluates the constraints only on this element, allowing a script to get this information.
...(this is typically done by the user-agent when determining which of the css pseudo-classes, :valid or :invalid, applies.) in contrast, the re
portvalidity() method re
ports any constraint failures to the user.
...And 2 more matches
Using HTML sections and outlines - Developer guides
im
portant: there are no implementations of the proposed outline algorithm in web browsers nor assistive technology; it was never part of a final w3c specification.
...it is im
portant for developers to use these semantic elements in line with their intended purposes.
... html5 semantic elements don't need a special dom interface, but they will need a specific css styling in older browser that don't sup
port them explicitly.
...And 2 more matches
disabled - HTML: Hypertext Markup Language
the disabled attribute is sup
ported by <button>, <command>, <fieldset>, <keygen>, <optgroup>, <option>, <select>, <textarea> and <input>.
... when a sup
porting element has the disabled attribute applied, the :disabled pseudo-class also applies to it.
... conversely, elements that sup
port the disabled attribute but don't have the attribute set match the :enabled pseudo-class.
...And 2 more matches
HTML attribute: readonly - HTML: Hypertext Markup Language
the readonly attribute is sup
ported by text, search, url, tel, email, password, date, month, week, time, datetime-local, and number<input> types and the <textarea> form control elements.
... the attribute is not sup
ported or relevant to <select> or input types that are already not mutable, such as checkbox and radio or cannot, by definition, start with a value, such as the file input type.
...it is also not sup
ported on hidden as it can not be expected that a user to fill out a form that is hidden.
...And 2 more matches
<details>: The Details disclosure element - HTML: Hypertext Markup Language
events in addition to the usual events sup
ported by html elements, the <details> element sup
ports the toggle event, which is dispatched to the <details> element whenever its state changes between open and closed.
... an input device as well as some form of output device is recommended.</p> </details> result customizing the disclosure widget the disclosure triangle itself can be customized, although this is not as broadly sup
ported.
... there are variations in how browsers sup
port this customization due to experimental implementations as the element was standardized, so we'll have to use multiple approaches for a while.
...And 2 more matches
<input type="file"> - HTML: Hypertext Markup Language
events change and input sup
ported common attributes required additional attributes accept, capture, files, multiple idl attributes files and value dom interface htmlinputelement properties properties that apply only to elements of type file methods select() value a file input's value attribute contains a domstring that represents the path t...
... additional attributes in addition to the common attributes shared by all <input> elements, inputs of type file also sup
port the following attributes: attribute description accept one or more unique file type specifiers describing file types to allow capture what source to use for capturing image or video data files a filelist listing the chosen files multiple a boolean which, if present, indicates that the user may choose more than one file accept...
...however, even though it has relatively broad sup
port, it is still not standard and should not be used unless you have no alternative.
...And 2 more matches
<input type="search"> - HTML: Hypertext Markup Language
events change and input sup
ported common attributes autocomplete, list, maxlength, minlength, pattern, placeholder, required, size.
... additional attributes in addition to the attributes that operate on all <input> elements regardless of their type, search field inputs sup
port the following attributes: attribute description list the id of the <datalist> element that contains the optional pre-defined autocomplete options maxlength the maximum number of characters the input should accept minlength the minimum number of characters long the input can be and still be considered valid pattern a regular expressi...
... incremental the boolean attribute incremental is a webkit and blink extension (so sup
ported by safari, opera, chrome, etc.) which, if present, tells the user agent to process the input as a live search.
...And 2 more matches
<mark>: The Mark Text element - HTML: Hypertext Markup Language
the html mark text element (<mark>) represents text which is marked or highlighted for reference or notation purposes, due to the marked passage's relevance or im
portance in the enclosing context.
... usage notes typical use cases for <mark> include: when used in a quotation (<q>) or block quote (<blockquote>), it generally indicates text which is of special interest but is not marked in the original source material, or material which needs special scrutiny even though the original author didn't think it was of particular im
portance.
... otherwise, <mark> indicates a
portion of the document's content which is likely to be relevant to the user's current activity.
...And 2 more matches
<template>: The Content Template element - HTML: Hypertext Markup Language
content categories metadata content, flow content, phrasing content, script-sup
porting element permitted content no restrictions tag omission none, both the starting and ending tag are mandatory.
... permitted parents any element that accepts metadata content, phrasing content, or script-sup
porting elements.
... examples first we start with the html
portion of the example.
...And 2 more matches
Evolution of HTTP - HTTP
http/0.9 is extremely simple: requests consist of a single line and start with the only possible method get followed by the path to the resource (not the url as both the protocol, server, and
port are unnecessary once connected to the server).
... chunked responses are now also sup
ported.
... during the same time, the need for an encrypted trans
port layer raised: the web left the relative trustiness of a mostly academic network, to a jungle where advertisers, random individuals or criminals compete to get as much private information about people, try to impersonate them or even to replace data transmitted by altered ones.
...And 2 more matches
Compression in HTTP - HTTP
compression is an im
portant way to increase the performance of a web site.
...over the years, algorithms also got more efficient, and new ones are sup
ported by clients and servers.
... all modern browsers and servers do sup
port it and the only thing to negotiate is the compression algorithm to use.
...And 2 more matches
Public-Key-Pins - HTTP
the http public-key-pins response header used to associate a specific cryptographic public key with a certain web server to decrease the risk of mitm attacks with forged certificates, however, it has been removed from modern browsers and is no longer sup
ported.
... header type response header forbidden header name no syntax public-key-pins: pin-sha256="<pin-value>"; max-age=<expire-time>; includesubdomains; re
port-uri="<uri>" directives pin-sha256="<pin-value>" the quoted string is the base64 encoded subject public key information (spki) fingerprint.
... re
port-uri="<uri>" optional if this optional parameter is specified, pin validation failures are re
ported to the given url.
...And 2 more matches
Want-Digest - HTTP
if want-digest does not include any digest algorithms that the server sup
ports, the server may respond with: a digest calculated using a different digest algorithm, or a 400 bad request error, and include another want-digest header with that response, listing the algorithms that it does sup
port.
... header type general header forbidden header name no syntax want-digest: <digest-algorithm> // multiple algorithms, weighted with the quality value syntax: want-digest: <digest-algorithm><q-value>,<digest-algorithm><q-value> directives <digest-algorithm> sup
ported digest algorithms are defined in rfc 3230 and rfc 5843, and include sha-256 and sha-512.
... some of the sup
ported algorithms, including unixsum and md5 are subject to collisions and are thus not suitable for applications in which collision-resistance is im
portant.
...And 2 more matches
X-Frame-Options - HTTP
the added security is provided only if the user accessing the document is using a browser that sup
ports x-frame-options.
... note: the content-security-policy http header has a frame-ancestors directive which obsoletes this header for sup
porting browsers.
...also see browser compatibility for sup
port details.
...And 2 more matches
501 Not Implemented - HTTP
the hypertext transfer protocol (http) 501 not implemented server error response code means that the server does not sup
port the functionality required to fulfill the request.
... this status can also send a retry-after header, telling the requester when to check back to see if the functionality is sup
ported by then.
... 501 is the appropriate response when the server does not recognize the request method and is incapable of sup
porting it for any resource.
...And 2 more matches
HTTP response status codes - HTTP
208 already re
ported (webdav) used inside a <dav:propstat> response element to avoid repeatedly enumerating the internal members of multiple bindings to the same collection.
... 415 unsup
ported media type the media format of the requested data is not sup
ported by the server, so the server is rejecting the request.
... 501 not implemented the request method is not sup
ported by the server and cannot be handled.
...And 2 more matches
Date.prototype.toLocaleDateString() - JavaScript
the tolocaledatestring() method returns a string with a language sensitive representation of the date
portion of this date.
... return value a string representing the date
portion of the given date instance according to language-specific conventions.
... var date = new date(date.utc(2012, 11, 12, 3, 0, 0)); // tolocaledatestring() without arguments depends on the implementation, // the default locale, and the default time zone console.log(date.tolocaledatestring()); // → "12/11/2012" if run in en-us locale with time zone america/los_angeles checking for sup
port for locales and options arguments the locales and options arguments are not sup
ported in all browsers yet.
...And 2 more matches
Date.prototype.toLocaleTimeString() - JavaScript
the tolocaletimestring() method returns a string with a language sensitive representation of the time
portion of this date.
... return value a string representing the time
portion of the given date instance according to language-specific conventions.
... var date = new date(date.utc(2012, 11, 12, 3, 0, 0)); // tolocaletimestring() without arguments depends on the implementation, // the default locale, and the default time zone console.log(date.tolocaletimestring()); // → "7:00:00 pm" if run in en-us locale with time zone america/los_angeles checking for sup
port for locales and options arguments the locales and options arguments are not sup
ported in all browsers yet.
...And 2 more matches
WebAssembly.Global() constructor - JavaScript
a webassembly.global() constructor creates a new global object representing a global variable instance, accessible from both javascript and im
portable/ex
portable across one or more webassembly.module instances.
... the value of the global is then changed, first to 42 using the global.value property, and then to 43 using the incglobal() function ex
ported out of the global.wasm module (this adds 1 to whatever value is given to it and then returns the new value).
...got: ${got}<br>`; } asserteq("webassembly.global exists", typeof webassembly.global, "function"); const global = new webassembly.global({value:'i32', mutable:true}, 0); webassembly.instantiatestreaming(fetch('global.wasm'), { js: { global } }) .then(({instance}) => { asserteq("getting initial value from wasm", instance.ex
ports.getglobal(), 0); global.value = 42; asserteq("getting js-updated value from wasm", instance.ex
ports.getglobal(), 42); instance.ex
ports.incglobal(); asserteq("getting wasm-updated value from js", global.value, 43); }); note: you can see the example running live on github; see also the source code.
...And 2 more matches
WebAssembly.Module() constructor - JavaScript
syntax im
portant: since compilation for large modules can be expensive, developers should only use the module() constructor when synchronous compilation is absolutely required; the asynchronous webassembly.compilestreaming() method should be used at all other times.
... examples synchronously compiling a webassembly module var im
portobject = { im
ports: { im
ported_func: function(arg) { console.log(arg); } } }; function createwasmmodule(bytes) { return new webassembly.module(bytes); } fetch('simple.wasm').then(response => response.arraybuffer() ).then(bytes => { let mod = createwasmmodule(bytes); webassembly.instantiate(mod, im
portobject) .then(result => result.ex
ports.ex
ported_func() ); }) specifications specification webassembly javascript interfacethe definition of 'webassembly.module()' in that specification.
... desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsmodule() constructorchrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
...And 2 more matches
JavaScript
javascript is a prototype-based, multi-paradigm, single-threaded, dynamic language, sup
porting object-oriented, imperative, and declarative (e.g.
...as of 2012, all modern browsers fully sup
port ecmascript 5.1.
... older browsers sup
port at least ecmascript 3.
...And 2 more matches
Autoplay guide for media and Web Audio APIs - Web media technologies
the audio is muted or its volume is set to 0 the user has interacted with the site (by clicking, tapping, pressing keys, etc.) if the site has been whitelisted; this may happen either automatically if the browser determines that the user engages with media frequently, or manually through preferences or other user interface features if the autoplay feature policy is used to grant autoplay sup
port to an <iframe> and its document.
... example: the autoplay attribute an <audio> element using the autoplay attribute might look like this: <audio id="musicplayer" autoplay> <source src="/music/chapter1.mp4"> </audio> example 2: detecting autoplay failure if you rely on autoplay for anything im
portant, or if autoplay failure will impact your app in any way, you will probably want to be able to tell when it autoplay didn't begin.
... note: it is strongly recommended that you use the autoplay attribute whenever possible, because sup
port for autoplay preferences are more widespread for the autoplay attribute than for other means of playing media automatically.
...And 2 more matches
Lazy loading - Web Performance
entry point splitting: separates code by entry point(s) in the app dynamic splitting: separates code where dynamic im
port() statements are used javascript script type module any script tag with type="module" is treated like a javascript module and is deferred by default.
... <link href="style.css" rel="stylesheet" media="all"> <link href="
portrait.css" rel="stylesheet" media="orientation:
portrait"> <link href="print.css" rel="stylesheet" media="print"> it is possible to perform some css optimizations to achieve that.
... <img src="image.jpg" loading="lazy" alt="..." /> <iframe src="video-player.html" loading="lazy"></iframe> the load event fires when the eagerly-loaded content has all been loaded; at that time, it's entirely possible (or even likely) that there may be lazily-loaded images that are within the visual view
port that haven't yet loaded.
...And 2 more matches
Performance Monitoring: RUM vs synthetic monitoring - Web Performance
synthetic monitoring involves deploying scripts to simulate the path an end user might take through a web application, re
porting back the performance the simulator experiences.
... synthetic monitoring can be an im
portant component of regression testing and production site monitoring.
...generally, a third party script injects a script on each page to measure and re
port back on page load data for every request made.
...And 2 more matches
Installing and uninstalling web apps - Progressive web apps (PWAs)
what browsers sup
port installation?
... installation is sup
ported 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.
...some parts of the pwa ecosystem are sup
ported, while others are not.
...And 2 more matches
Features restricted to secure contexts - Web security
note: only the browsers that actually sup
port secure contexts are listed in this document.
... see here for information on secure contexts sup
port.
... api chrome/opera edge safari firefox async clipboard api 66 not sup
ported not sup
ported 63 background sync (see syncmanager, for example) 49 not sup
ported not sup
ported not sup
ported cache-control: immutable not sup
ported 15 11 49 credential management api 51 not sup
ported not sup
ported not sup
ported generic sensor api 67 not sup
ported not sup
ported not sup
ported payment request api (and basic card payment).
...And 2 more matches
Compiling a New C/C++ Module to WebAssembly - WebAssembly
u should have: the binary wasm module code (hello.wasm) a javascript file containing glue code to translate between the native c functions, and javascript/wasm (hello.js) an html file to load, compile, and instantiate your wasm code, and display its output in the browser (hello.html) running your example now all that remains is for you to load the resulting hello.html in a browser that sup
ports webassembly.
...ripten requires a large variety of javascript "glue" code to handle memory allocation, memory leaks, and a host of other problems calling a custom function defined in c if you have a function defined in your c code that you want to call as needed from javascript, you can do this using the emscripten ccall() function, and the emscripten_keepalive declaration (which adds your functions to the ex
ported functions list (see why do functions in my c/c++ source code vanish when i compile to javascript, and/or i get no functions to process?)).
...you also need to im
port the emscripten.h library to use emscripten_keepalive.
...And 2 more matches
self - Archive of obsolete content
self provides: access to the options object access to the
port object access to a mostly deprecated messaging api for an overview of content scripts, see the main article.
...if you do this, the data is available to the content script in the options property of self: // main.js const tabs = require("sdk/tabs"); tabs.open({ url: "./page.html", onready: function(tab) { tab.attach({ contentscriptfile: "./content-script.js", contentscriptoptions: { a: "blah" } }); } }); // content-script.js alert(self.options.a);
port you can use
port to receive messages from, and send messages to, the main add-on code.
... see the documentation for
port.
... this is an older api than the api provided by
port, and for most purposes the
port api is a better choice.
SDK API Lifecycle - Archive of obsolete content
at the same time, developers maintaining and extending the sdk's apis need to be able to introduce new apis that aren't yet fully proven, and to retire old apis when they're no longer optimal or sup
ported by the underlying platform.
... stable the module is a fully-sup
ported part of the sdk.
...the sdk team will track usage of deprecated modules on addons.mozilla.org and sup
port developers migrating their code.
... if it's not ok to remove it, the team will continue to sup
port migration and aim to remove the module in the next release.
Two Types of Scripts - Archive of obsolete content
minimally you'll have a single module implemented by a script called "main.js", but you can include additional modules in lib, and im
port them using the require() function.
... to learn how to implement and im
port your own modules, see the tutorial on implementing reusable modules.
... ✔ ✔ the require() and ex
ports globals defined by version 1.0 of the commonjs module specification.
... you use require() to im
port functionality from another module, and ex
ports to ex
port functionality from your module.
page-mod - Archive of obsolete content
/lib/main.js: var tag = "p"; var data = require("sdk/self").data; var pagemod = require("sdk/page-mod"); pagemod.pagemod({ include: "*.mozilla.org", contentscriptfile: data.url("element-getter.js"), onattach: function(worker) { worker.
port.emit("getelements", tag); worker.
port.on("gotelement", function(elementcontent) { console.log(elementcontent); }); } }); /data/element-getter.js: self.
port.on("getelements", function(tag) { var elements = document.getelementsbytagname(tag); for (var i = 0; i < elements.length; i++) { self.
port.emit("gotelement", elements[i].innerhtml); } }); when the user loads a docu...
... to learn much more about communicating with content scripts, see the guide to content scripts and in particular the chapter on communicating using
port.
...e the user loads: var data = require("sdk/self").data; var pagemod = require("sdk/page-mod"); pagemod.pagemod({ include: "*", contentscriptfile: data.url("eaten.js") }); the content script replaces the page contents, but restores the original contents when it receives detach: // eaten.js var oldinnerhtml = window.document.body.innerhtml; window.document.body.innerhtml = "eaten!"; self.
port.on("detach", function() { window.document.body.innerhtml = oldinnerhtml; }); try running the add-on, loading some pages, and then disabling the add-on in the add-ons manager.
... to learn more about private windows, how to opt into private browsing, and how to sup
port private browsing, refer to the documentation for the private-browsing module.
passwords - Archive of obsolete content
you should omit anything after the hostname and (optional)
port.
...you should omit anything after the hostname and (optional)
port.
...label>username:</label> <input type="text" name="uname"> <label>password:</label> <input type="password" name="pword"> </form> the corresponding values for the credential (excluding username and password) should be: url: "http://www.example.com" formsubmiturl: "http://login.example.com" usernamefield: "uname" passwordfield: "pword" note that for both url and formsubmiturl, the
portion of the url after the hostname is omitted.
...you should omit anything after the hostname and (optional)
port.
core/heritage - Archive of obsolete content
class module ex
ports class utility function for making constructor functions with a proper prototype chain setup in declarative manner: var { class } = require('sdk/core/heritage'); var dog = class({ initialize: function initialize(name) { this.name = name; }, type: 'dog', bark: function bark() { return 'ruff!
...ialize.call(this, color); point.prototype.initialize.call(this, x, y); }, tostring: function tostring() { return this.hex() + '@' + point.prototype.tostring.call(this) } }); var pixel = pixel(11, 23, 'cc3399'); pixel.tostring(); // => #cc3399@11:23 pixel instanceof pixel // => true pixel instanceof point // => true extend module ex
ports extend utility function, that is useful for creating objects that inherit from other objects, without associated classes.
... var { extend } = require('sdk/core/heritage'); var base = { a: 1 }; var derived = extend(base, { b: 2 }); derived.a // => 1 derived.b // => 2 base.isprototypeof(derived) // => true mix module ex
ports mix utility function that is useful for mixing properties of multiple objects into a single one.
... var { mix } = require('sdk/core/heritage'); var object = mix({ a: 1, b: 1 }, { b: 2 }, { c: 3 }); json.stringify(object) // => { "a": 1, "b": 2, "c": 3 } obscure module ex
ports obscure utility function that is useful for defining non-enumerable properties.
core/promise - Archive of obsolete content
module ex
ports promised function to do exactly that: const { promised } = require('sdk/core/promise'); function sum(x, y) { return x + y }; var asyncsum = promised(sum); var c = sum(a, b); var casync = asyncsum(aasync(), basync()); promised takes normal function and composes new promise-aware version of it.
... defer module ex
ports defer function, which is where all promises ultimately come from.
...such use cases are also sup
ported.
...module ex
ports reject to do exactly that.
Storing annotations - Archive of obsolete content
first, im
port the simple-storage module with a declaration like: var simplestorage = require('sdk/simple-storage'); in the module scope, initialize an array which will contain the stored annotations: if (!simplestorage.storage.annotations) simplestorage.storage.annotations = []; now we'll add a function to the module scope which deals with a new annotation.
... finally we need to connect this to the widget's right-click message: var widget = widgets.widget({ id: 'toggle-switch', label: 'annotator', contenturl: data.url('widget/pencil-off.png'), contentscriptwhen: 'ready', contentscriptfile: data.url('widget/widget.js') }); widget.
port.on('left-click', function() { console.log('activate/deactivate'); widget.contenturl = toggleactivation() ?
... data.url('widget/pencil-on.png') : data.url('widget/pencil-off.png'); }); widget.
port.on('right-click', function() { console.log('show annotation list'); annotationlist.show(); }); this time execute cfx xpi to build the xpi for the add-on, and install it in firefox.
...add the following to your add-on's main function: simplestorage.on("overquota", function () { notifications.notify({ title: 'storage space exceeded', text: 'removing recent annotations'}); while (simplestorage.quotausage > 1) simplestorage.storage.annotations.pop(); }); because we use a notification to alert the user, we need to im
port the notifications module: var notifications = require("sdk/notifications"); (it should be obvious that this is an incredibly unhelpful way to deal with the problem.
Display a Popup - Archive of obsolete content
text_entry.on("show", function() { text_entry.
port.emit("show"); }); // listen for messages called "text-entered" coming from // the content script.
...text_entry.
port.on("text-entered", function (text) { console.log(text); text_entry.hide(); }); the content script "get-text.js" looks like this: // when the user hits return, send the "text-entered" // message to main.js.
... text = textarea.value.replace(/(\r\n|\n|\r)/gm,""); self.
port.emit("text-entered", text); textarea.value = ''; } }, false); // listen for the "show" event being sent from the // main add-on code.
...self.
port.on("show", function onshow() { textarea.focus(); }); finally, the "text-entry.html" file defines the <textarea> element: <html> <head> <style type="text/css" media="all"> textarea { margin: 10px; } body { background-color: gray; } </style> </head> <body> <textarea rows="13" cols="33" id="edit-box"></textarea> </body> </html> finally, save these three icon files to the "data" directory: icon-16.png icon-32.png icon-64.png try it out: "index.js" is saved in the top level, and the other five files go in your add-on's data directory: my-addon/ ...
Getting started (cfx) - Archive of obsolete content
to build an xpi, just execute the command cfx xpi from the add-on's directory: cfx xpi you should see a message like: ex
porting extension to my-addon.xpi.
...an alternative development model is to use the extension auto-installer add-on: this listens for new xpi files on a specified
port and installs them automatically.
... that way you can test new changes without needing to restart the browser: make a change to your add-on run cfx xpi post the add-on to the
port specified you could even automate this workflow with a simple script.
... another example using grunt and grunt-shell: module.ex
ports = function(grunt) { 'use strict'; require('matchdep').filterdev('grunt-!(cli)').foreach(grunt.loadnpmtasks); grunt.initconfig({ shell: { xpi: { command: [ 'cd pluginpath', 'cfx xpi', 'wget --post-file=pluginname.xpi http://localhost:8888/ || echo>/dev/null' ].join('&&') } }, watch: { xpi: { files: ['pluginp...
Miscellaneous - Archive of obsolete content
var osstring = services.appinfo.os; detecting the host application and version // get the name of the application running us services.appinfo.name; // returns "firefox" for firefox services.appinfo.version; // returns "2.0.0.1" for firefox version 2.0.0.1 retrieving the version of an extension as specified in the extension's install.rdf components.utils.im
port("resource://gre/modules/addonmanager.jsm"); addonmanager.getaddonbyid("extension-guid@example.org", function(addon) { // this is an asynchronous callback function that might not be called immediately alert("my extension's version is " + addon.version); }); restarting firefox/thunderbird/seamonkey_2.0 for firefox 3 see onwizardfinish around here: http://mxr.mozilla.org/seamonkey/sou...pdat...
...this event is mozilla-only; other browsers may sup
port window.onmousewheel.
...put this code in the components/certsservice.js file: const cc = components.classes; const ci = components.interfaces; components.utils.im
port("resource://gre/modules/xpcomutils.jsm"); const gobserver = cc['@mozilla.org/observer-service;1'].getservice(ci.nsiobserverservice); const gioservice = cc["@mozilla.org/network/io-service;1"].getservice(ci.nsiioservice); function certsservice() {} certsservice.prototype = { observe: function(asubject, atopic, adata) { switch(atopic) { case "app-startup": ...
... window.addeventlistener('fullscreen', function(){ alert('fullscreen mode on or off') }, false) getting addon install path first one using addon manager: components.utils.im
port('resource://gre/modules/addonmanager.jsm'); addonmanager.getaddonbyid('example@addon', function(addon) { let path = addon.getresourceuri().path; // something like /home/username/....
Adding Toolbars and Toolbar Buttons - Archive of obsolete content
tooltips are very im
portant for users that want to know what a button does before clicking it.
...this is very im
portant because the toolbar customization dialog won't work correctly without this.
...the way icons are handled in firefox changed considerably after firefox 4, so sup
porting older versions is not mentioned here (you can check this document's change history for older revisions, though).
...all of this is very im
portant to test because, when the dialog is opened, firefox changes the dom of the toolbar, adding wrapper elements that allow the customization.
Underscores in class and ID Names - Archive of obsolete content
note: browser sup
port for underscores in css has greatly improved since this article was originally published in 2001 and the following recommendation is no longer accurate for most circumstances.
... the css1 specification, published in its final form in 1996, did not allow for the use of underscores in class and id names unless they were "escaped." an escaped underscore would look something like this: p.urgent\_note {color: maroon;} this was not well sup
ported by browsers at the time, however, and the practice has never caught on.
... sup
port realities between mistakes in implementation and changes to the specification, browser behavior with regard to underscores is rather convoluted.
... recommendation because sup
port is so inconsistent between current browsers as well as older releases, authors are strongly advised to avoid using underscores in class and id names.
XUL user interfaces - Archive of obsolete content
information: user interfaces although html has some sup
port for user interfaces, it does not sup
port all the features that you need to make a standalone application.
...this wiki does not sup
port xul and javascript in pages, so it is not possible to show the demonstration here.
... the script is not im
portant in this demonstration.
...mozilla also sup
ports a specialized graphics language for creating shapes, using css stylesheets to specify the style.
List of Mozilla-Based Applications - Archive of obsolete content
abstract accounting tool adobe acrobat and adobe reader
portable document format (pdf) software uses mozilla spidermonkey adobe flash player popular browser plug-in uses nss in linux version adwatch content management system uses xul and xpcom aicpcu/iia exam app exam delivery software aliwal geocoder geocoding & data on a map amarok xul remote remote control for amarok music play...
... desktop 2 internal browser and
portal client expeditors international of washington, inc.
...r moznet .net control embeddable gecko for .net applications wraps xulrunner for use in .net applications my internet browser localized browser uses gecko myna application server javascript application server for java uses mozilla rhino nextcms (fr) cms nightingale music player community run effort to continue songbird sup
port for linux olpc web browser browser oneteam jabber client opendocument viewer viewer opengate's tools cd burner, file browser, and hardware diagnostic softwares opengate is the opensource side of the easyneuf project, “a free software computer, easy and preinstalled” open mashups development tool openoffice...
...roid device seamonkey suite a volunteer community legally backed by mozilla foundation with 2.5 million downloads secure browser browser that uses virtualization created by dell sept cms for lemonde.fr web site more information here (in english) and here (in french) skyfire mobile browser sipear im client smartre
port supervision appliance network monitoring and performance management smartre
port is an appliance created by acipia (france).
Compiling The npruntime Sample Plugin in Visual Studio - Archive of obsolete content
build create a new project in visual studio for a win32 gui library (dll) (in .net 2003: win32 template, then switch to dll in application settings in the following dialog, ex
port symbols too?)(in visual studio 2008, it is visualc++|win32|win32 project, then check dll in the wizard).
... add the following preprocessor definitions to project properties|(all configurations)|c++|preprocessor|preprocessor definitions: win32;_windows;xp_win32;xp_win;_x86_;npsimple_ex
ports disable precompiled headers using project properties|(all configurations)|c++|precompiled headers|create/use precompiled header.
... define the function ex
ports by adding the .def filename (e.g.
... visual c++ 2008 express don't sup
port c99 standard about int32_t, uint32_t.
Drag and Drop Example - Archive of obsolete content
« previous gecko 1.9.1 (firefox 3.5) and later sup
ports a newer and simpler api.
...the boardobserver will need three functions, getsup
portedflavours, ondragover and ondrop.
...var boardobserver = { getsup
portedflavours : function () { var flavours = new flavourset(); flavours.appendflavour("text/unicode"); return flavours; }, ondragover: function (event, flavour, session) {}, ondrop: function (event, dropdata, session) { if (dropdata.data != "") { var elem = document.createelement(dropdata.data); event.target.appendchild(elem); elem.setattribute("left", "" + event.pagex); elem.setattribute("top", "" + event.pagey); elem.setattribute("label", dropdata.data); } } } the getsup
portedflavours function needs only to return a list of flavours that the stack can accept to be dropped on it.
...t box" elem="textbox" ondraggesture="nsdraganddrop.startdrag(event, listobserver)"/> </vbox> </window> var listobserver = { ondragstart: function (event, transferdata, action) { var txt = event.target.getattribute("elem"); transferdata.data = new transferdata(); transferdata.data.adddataforflavour("text/unicode", txt); } }; var boardobserver = { getsup
portedflavours : function () { var flavours = new flavourset(); flavours.appendflavour("text/unicode"); return flavours; }, ondragover: function (event, flavour, session) {}, ondrop: function (event, dropdata, session) { if (dropdata.data != "") { var elem = document.createelement(dropdata.data); event.target.appendchild(elem); elem.setattribute("left", "" + e...
GRE - Archive of obsolete content
the mozilla suite never sup
ported a gre on mac.
...xulrunner sup
ports or is planned to sup
port embedding on all three major platforms (windows, mac, and linux).
...if you link directly against xpcom.dll/libxpcom.so (xpcom.lib im
port lib), your application will not launch unless xpcom.dll is in your path.
... find a compatible gre note: sup
port for locating a standalone glue was removed in gecko 6.0.
generateCRMFRequest() - Archive of obsolete content
though some browsers may still sup
port it, it is in the process of being dropped.
... warning: the features mentioned in this article are deleted proprietary mozilla extensions, and are not sup
ported in any other browser.
... "keygenalgn" which algorithm the generated key will sup
port.
...the dialog describes the key generation process and gives the user the op
portunity to cancel the operation.
Settings - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
...because it is still under development, the api currently lives in the future and must be im
ported before it is used: jetpack.future.im
port("storage.settings"); specifying settings in a manifest to specify its settings, a jetpack defines a variable named manifest in its global namespace before it im
ports the settings api.
...cebook", type: "group", label: "facebook", settings: [ { name: "username", type: "text", label: "username", default: "jdoe" }, { name: "password", type: "password", label: "secret" } ] }, { name: "music", type: "boolean", label: "music", default: true }, { name: "volume", type: "range", label: "volume", min: 0, max: 10, default: 5 } ] }; // im
port after defining manifest!
... jetpack.future.im
port("storage.settings"); this definition will result in a user interface with an input field for each setting defined above.
Simple Storage - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
...the namespace currently lives in the future and must be im
ported before it is used: jetpack.future.im
port("storage.simple"); methods sync()as described above, the jetpack.storage.simple object is automatically written to disk, but a feature may force flush by calling jetpack.storage.simple.sync().
...examples this code persistently stores some data: jetpack.future.im
port("storage.simple");var mystorage = jetpack.storage.simple;mystorage.fribblefrops = [1, 3, 3, 7];mystorage.heimelfarbs = { bar: "baz" }; and this code -- pretend it's in the same jetpack as the code above -- simply uses that data: mystorage.fribblefrops.foreach(function (elt) console.log(elt));var bar = mystorage.heimelfarbs.bar;jetpack.notifications.show(bar.baz); that's all there is to it!
...jetpack.future.im
port("menu");jetpack.future.im
port("selection");jetpack.future.im
port("storage.simple");// create the persistent notes array if it doesn't already exist.jetpack.storage.simple.notes = jetpack.storage.simple.notes || [];var notes = jetpack.storage.simple.notes;// updates the jetpack menu with the current notes.
Menu - Archive of obsolete content
because it is still under development, the api currently lives in the future and must be im
ported before it is used: jetpack.future.im
port("menu"); menus all menus in jetpack are jetpack.menu objects, including both built-in firefox menus and menus that features create.
...note that some environments, notably gnome 2.28, do not sup
port menuitem icons either by default or at all.
... type string currently only "separator" is sup
ported.
...examples before running any examples, im
port the api from the future: jetpack.future.im
port("menu"); snippets add a single, static menuitem to the jetpack menu that doesn't do anything: jetpack.menu.add("two drink holders and a captain's chair"); add a menuitem to the jetpack menu that displays the current date and time each time it's opened: jetpack.menu.add(function () new date().tostring()); click an item in the jetpack menu to be not...
Selection - Archive of obsolete content
this api currently lives in the future and must be im
ported for use: jetpack.future.im
port("selection"); getting and setting the selection the current version of jetpack.selection includes these formats: .text and .html getting the selection the following is an example of getting the selection from the user.
... jetpack.im
port.future("selection"); var textofsel = jetpack.selection.text; var htmlofsel = jetpack.selection.html; setting the selection the following is an example of getting the selection from the user.
... jetpack.im
port.future("selection"); jetpack.selection.text = 'hello'; jetpack.selection.html = '<b>hello</b>'; methods onselection(func function)this method allows you to execute an event function when a selection is made.
...jetpack.im
port.future("selection"); jetpack.selection.onselection(function(){ var html = jetpack.selection.html; jetpack.selection.html = "<b>" + html + "</b>"; }); ...
Selection - Archive of obsolete content
this api currently lives in the future and must be im
ported for use: jetpack.future.im
port("selection"); getting and setting the selection the current version of jetpack.selection includes these formats: .text and .html getting the selection the following is an example of getting the selection from the user.
... jetpack.im
port.future("selection"); var textofsel = jetpack.selection.text; var htmlofsel = jetpack.selection.html; setting the selection the following is an example of getting the selection from the user.
... jetpack.im
port.future("selection"); jetpack.selection.text = 'hello'; jetpack.selection.html = '<b>hello</b>'; methods onselection(func function)this method allows you to execute an event function when a selection is made.
...jetpack.im
port.future("selection"); jetpack.selection.onselection(function(){ var html = jetpack.selection.html; jetpack.selection.html = "<b>" + html + "</b>"; }); ...
Extensions - Archive of obsolete content
prism has sup
port for extensions.
...to sup
port prism specifically, you'll need to add prism to the list of target applications in the extension's install.rdf file.
...see the prism main window xul file for the actual structure: webrunner.xul
porting an existing extension since there aren't many extensions designed explicitly for prism, you may need to
port your favorite extensions.
...installing prism sup
ports a basic add-on user interface which allows a user to manage extensions.
FAQ - Archive of obsolete content
prism is built on top of the mozilla platform and its gecko rendering engine, just like mozilla firefox, so it provides the same capabilities to web applications that firefox provides, including sup
port for html, javascript, css, and <canvas>.
... at the same time, we're also working to increase the capabilities of those apps by adding features to the web itself, like sup
port for offline data storage and access to 3d graphics hardware, that will be available to web applications in both prism and firefox.
...prism is a simple xulrunner application with the main
portion of the ui consisting of a xul <browser> element.
... what operating systems does prism sup
port?
Table Layout Strategy - Archive of obsolete content
the words the table layout is width oriented and knows the following widths: minimum content width - min the minimum width that is required to layout the content, all linebreak possibilities will be used percent width - pct the cell width specified in percent, fixed width - fix the cell width specified as px, mm etc., pro
portional width - prop the cell width specified via 1*, 2* etc.
...ine min_adj 3 // minimum width + padding due to col spans #define des_adj 4 // desired width + padding due to col spans #define fix_adj 5 // fixed width + padding due to col spans #define pct 6 // percent width of cell or col #define pct_adj 7 // percent width of cell or col from percent colspan #define min_pro 8 // desired width due to pro
portional <col>s or cols attribute #define final 9 // width after the table has been balanced, considering all of the others the priority of allocations for columns is as follows: max(min_con, min_adj) max (pct, pct_adj) fix fix_adj max(des_con, des_adj), but use min_pro if present for a fixed width table, the column may get more space if the sum of the col allocations is insufficie...
...so we specify it (this breaks in some other browsers) <col width="0*"><col><tbody></tbody>foobar <table border width="200px"> <col width="0*"><col> <tbody> <tr><td>foo</td><td>bar</td></tr> </tbody> </table> this shrink wrapping width has usually the suffix 0pro
portional effective columns <tbody></tbody>foobarbazzap <table width="200px" border> <tbody> <tr><td>foo</td><td colspan="2" width="120px">bar</td></tr> <tr><td>baz</td><td>zap</td></tr> </tbody> </table> the colspan here is bogus, so the third column should not get any width.
... original document information author(s): bernd mielke last updated date: september 27, 2003 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Creating XPI Installer Modules - Archive of obsolete content
though the chrome directory still includes subdirectories of uncompressed files by default, a new way to aggregate and distribute the files has improved performance, made the ui components more
portable and easier to install, and made the installation process a much easier one.
...ymaster/gat...re.is.only.xul" width="175" height="375" x="20" y="20" persist="width height x y" orient="vertical" autostretch="always"> <script src="barley.js"/> <image src="barley.gif" /> <box orient="horizontal" autostretch="never"> <button label="barley corn" /> <button label="show aphids" oncommand="bar();" /> </box> </window> the other files that the window im
ports are defined in dark blue.
... note that the stylesheet processing instruction at the top of the xul file does not refer to any new skin, but im
ports communicator.css to make use of that skin's basic widget styles.
...barley/ content/ barley.gif barley.js barley.xul creating the contents.rdf file one of the most im
portant ingredients of the software package is the contents.rdf file that describes the contents of the package in terms that the chrome registry can make sense of.
XPJS Components Proposal - Archive of obsolete content
xpjs components is a (cheesy) name for a system to sup
port xpcom components written in javascript.
... the xpjs component system will sup
port implementing xpcom services, factories, and components in javascript.
... it will sup
port service and factory registration.
... a 'load' or 'im
port' function will also be provided to let the js code im
port other .js files where libraries of code might be stored.
Accessing Files - Archive of obsolete content
file and stream guide: [ nsiscriptableio | accessing files | getting file information | reading from files | writing to files | moving, copying and deleting files | uploading and downloading files | working with directories ] im
portant note: the pages from the file and stream guide use the io object (nsiscriptableio), which was not available in any released version of the platform (pending some fixes).
... there are alternative xpcom apis you can use, your help in updating this pages to use the sup
ported api is very much welcome!
...this allows files to used in a
portable way.
...it is im
portant to note that this file does not have to exist for a file reference to be valid.
Reading from Files - Archive of obsolete content
file and stream guide: [ nsiscriptableio | accessing files | getting file information | reading from files | writing to files | moving, copying and deleting files | uploading and downloading files | working with directories ] im
portant note: the pages from the file and stream guide use the io object (nsiscriptableio), which was not available in any released version of the platform (pending some fixes).
... there are alternative xpcom apis you can use, your help in updating this pages to use the sup
ported api is very much welcome!
...it is im
portant to note that the newline characters themselves are not included in the returned string.
...for a list of sup
ported character encodings, see sup
ported character sets.
Introduction - Archive of obsolete content
several types of datasources are sup
ported by default, rdf, xml and sqlite databases, however, processors may be written to sup
port other types of datasources.
...only local files are sup
ported, so a file url should be used.
... if the datasource type sup
ports it, the template builder can also use multiple datasources which are all combined into a single datasource as if they were all in one datasource to begin with.
... only the built-in rdf type sup
ports this mechanism; the xml and sqlite types do not.
XUL Structure - Archive of obsolete content
it is im
portant to note that when accessing content through a chrome url, it gains the enhanced privileges described above that other kinds of urls do not.
... this distinction is im
portant.
... this distinction between documents is im
portant.
...in addition, another person could supply a separate package that applies a skin or locale to your content part, thus providing sup
port for a new theme or language without having to change the original package.
Debugging a XULRunner Application - Archive of obsolete content
ex
port xre_console_log=/path/to/logfile or set xre_console_log=c:\path\to\logfile.
... to output messages to the javascript console there are two ways to output messages to the js console: components.utils.re
porterror(str) will output str as an "error" (i.e.
...add the following code to your xul app: components.utils.im
port('resource://gre/modules/devtools/dbg-server.jsm'); if (!debuggerserver.initialized) { debuggerserver.init(); // don't specify a window type parameter below if "navigator:browser" // is suitable for your app.
... debuggerserver.addbrowseractors("myxulrunnerappwindowtype"); } debuggerserver.openlistener(6000); for xulrunner version 37+ the code to enable the debugger has changed: components.utils.im
port('resource://gre/modules/devtools/dbg-server.jsm'); if (!debuggerserver.initialized) { debuggerserver.init(); debuggerserver.addbrowseractors(); debuggerserver.allowchromeprocess = 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...
Extentsions FAQ - Archive of obsolete content
however, it's functional and does allow for the explorer to be handling the display of the folder contents, and all of the right-click context menu sup
port is present so it should meet my needs.
... storing files within the extension directory is a no-no because it might break the multi-user sup
port of those mozilla products, as it is possible to install extensions directly within the application directory.
... customizegoogle extension already has sup
port for switching gmail to https (and calendar possibly, too).
...however not all servers sup
port user flags, in which case you get reduced functionality as follows: all flags are stored in your local cache and are lost if your cache gets invalidated, and only "known" properties are copied when messages are copied.
2006-09-29 - Archive of obsolete content
he is looking for an approach to recommend to whom a bug re
port should be assigned (i.e.
... which developer(s) has/have the correct expertise for a particular bug re
port).
... he has a working web-based tool called sibyl for providing both developer and component recommendations for bug re
ports.
...he also created a bug re
port to get rid of the help hooks in page info that lead nowhere.
NPP_HandleEvent - Archive of obsolete content
mac os the browser does not give a windowed plug-in a native window, because the mac os platform does not sup
port child windows.
... instead, the windowed plug-in draws into the graphics
port associated with the the browser window, at the offset that the browser specifies.
...when npp_handleevent is called, the current
port is set up so that its origin matches the top-left corner of the plug-in.
... a plug-in does not need to set up the current
port for mouse coordinate translation.
Tamarin Tracing Build Documentation - Archive of obsolete content
for instructions on tamarin central, please see tamarin build documentation sup
ported platforms operating system processor status windows xp x86 sup
ported, acceptance and performance tests automated in buildbot mac os x 10.4 x86 sup
ported, acceptance and performance tests automated in buildbot linux - ubuntu 8.0.4 x86 sup
ported, acceptance and performance tests automated in buildbot windows mobile (pocket pc 5.0) armv4t sup
ported, acceptance and performance tests automated in buildbot raw image (no os) armv5 sup
ported, acceptance and performance tests not done linux (nokia n810) armv5 sup
ported, acceptance and performance tests not done current build stat...
...the tamarin codebase has the ability to build additional code which sup
ports debugging hooks.
...plus_verbose windows mobile to build for arm: $ python ../configure.py --target=arm-windows --enable-shell; make to build for thumb: $ python ../configure.py --target=thumb-windows --enable-shell; make platform-specific builds project files for specific platforms/ides (microsoft visual studio, xcode, etc) are included in the source tree under tamarin-tracing/platform, but are not formally sup
ported.
...see the latest build performance re
port for the latest results or a weekly performance re
port.
Building a Theme - Archive of obsolete content
it's especially im
portant to install the dom inspector, which we'll be using in later steps.
...and put this inside: <?xml version="1.0"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description about="urn:mozilla:install-manifest"> <em:id>sample@example.net</em:id> <em:version>1.0</em:version> <em:type>4</em:type> <!-- target application this theme can install into, with minimum and maximum sup
ported versions.
... if you get a message that the install.rdf is malformed, it is helpful to load it into firefox using the file->open file command and it will re
port xml errors to you.
...for more information on chrome manifests and the properties they sup
port, see the chrome manifest reference.
Theme changes in Firefox 2 - Archive of obsolete content
global/browser.css revised to sup
port new styles for the main browser window.
... global/globalbindings.xml updated to sup
port changes to the tab bar, including per-tab close buttons.
...updated to sup
port the new features of the firefox 2 add-ons manager.
...the following styles must be implemented to sup
port the window that appears when the user browses to a suspected phishing site: #safebrowsing-dim-area-canvas #safebrowsing-page-canvas #safebrowsing-palm-close #safebrowsing-palm-close-container #safebrowsing-palm-google-logo #safebrowsing-palm-message #safebrowsing-palm-message-actionbox #safebrowsing-palm-message-content #safebrowsing-palm-message-tail #safebrowsing-palm-message-tail-c...
CSS - Archive of obsolete content
this pseudo-element is non-standard, sup
ported only in internet explorer 10, internet explorer 11, and microsoft edge.::-ms-expandthe ::-ms-expand css pseudo-element is a microsoft extension that represents the button of a <select> menu control that opens or closes the drop-down menu.
... typically it is a triangle that points downward.::-ms-fillthe ::-ms-fill css pseudo-element is a microsoft extension that represents a progress bar displayed by <progress>.::-ms-fill-lowerthe ::-ms-fill-lower css pseudo-element represents the lower
portion of the track of a slider control; that is, the
portion corresponding to values less than the value currently selected by the thumb.
... a slider control is one possible representation of <input type="range">.::-ms-fill-upperthe ::-ms-fill-upper css pseudo-element is a microsoft extension that represents the upper
portion of the track of a slider control; that is, the
portion corresponding to values greater than the value currently selected by the thumb.
...this is im
portant in that it provides a natural way to tell several voices apart, as each can be positioned to originate at a different location on the sound stage.
Debug.msTraceAsyncCallbackStarting - Archive of obsolete content
}, function (error) { debug.mstraceasyncoperationcompleted(opid, debug.ms_async_op_status_error); debug.mstraceasynccallbackstarting(opid); }); debug.mstraceasynccallbackcompleted(); } function dosomethingasync() { return winjs.promise.as(true); } asyncwrapperfunction(); requirements sup
ported in the internet explorer 11 standards document mode.
... also sup
ported in store apps (windows 8.1 and windows phone 8.1).
... not sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards.
... not sup
ported in windows 8.
Debug.msTraceAsyncCallbackCompleted - Archive of obsolete content
}, function (error) { debug.mstraceasyncoperationcompleted(opid, debug.ms_async_op_status_error); debug.mstraceasynccallbackstarting(opid); }); debug.mstraceasynccallbackcompleted(); } function dosomethingasync() { return winjs.promise.as(true); } asyncwrapperfunction(); requirements sup
ported in the internet explorer 11 standards document mode.
... also sup
ported in store apps (windows 8.1 and windows phone 8.1).
... not sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards.
... not sup
ported in windows 8.
Debug.msUpdateAsyncCallbackRelation - Archive of obsolete content
requirements sup
ported in the internet explorer 11 standards document mode.
... also sup
ported in store apps (windows 8.1 and windows phone 8.1).
... not sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards.
... not sup
ported in windows 8.
@if - Archive of obsolete content
warning: conditional compilation is not sup
ported in internet explorer 11 standards mode and windows 8.x store apps.
... conditional compilation is sup
ported in internet explorer 10 standards mode and in all earlier versions.
...this enables hosts that do not sup
port conditional compilation to ignore it.
... /*@cc_on @*/ /*@ document.write("javascript version: " + @_jscript_version + "."); document.write("<br />"); @if (@_win32) document.write("running on a 32-bit version of windows."); @elif (@_win16) document.write("running on a 16-bit version of windows."); @else document.write("running on a different operating system."); @end @*/ requirements sup
ported in all versions of internet explorer, but not in windows 8.x store apps.
New in JavaScript - Archive of obsolete content
ecmascript 5 sup
port implementation status for the current standard ecma-262 edition 5.1 in mozilla-based engines and products.
... ecmascript 2015 sup
port implementation status for the draft ecma-262 edition 6 (es2015) in mozilla-based engines and products.
... ecmascript next sup
port implementation status for upcoming ecma-262 features as per the yearly (es2016/es2017/es2018/...) release schedule in mozilla-based engines and products.
... includes the tracemonkey jit and sup
ports native json.
XForms Select Element - Archive of obsolete content
note, some representations of the select element do not sup
port visual grouping.
... single-node binding special selection - isn't currently sup
ported.
... incremental - sup
ported, default value is true properties selection - see corresponding attribute incremental - see corresponding attribute type restrictions the select element can be bound to a node containing simple content capable of holding a sequence.
...characteristics appearance attribute contains the value full there are no analogue widgets in xhtml or in xul visual grouping by choices element is sup
ported if incremental attribute value is false then bound node is updated when item is blurred examples <xf:model> <xf:instance> <data xmlns=""> <values>g</values> </data> </xf:instance> </xf:model> <xf:select ref="/data/values" appearance="full"> <xf:choices> <xf:label>green colors</xf:label> <xf:item> <xf:label>pale green</xf:label> <xf:value>pg</xf:value...
XQuery - Archive of obsolete content
it offers powerful and yet intuitive searching based on xpath, has sql-like syntax for the query
portion, and has scripting features such as function and variable definitions, xml-inclusion, etc.
... while xquery is currently not sup
ported in firefox (whether through javascript to developers or to browser users), at least one extension has been developed to give a preliminary sup
port for xquery for browser users (and serving as a simple model for how xquery can be implemented within extensions).
...other popular native xml databases might also be sup
ported (e.g., exist) in the future, especially now that the extension has added some basic sup
port for the open-standard (xqj) for java and exist is in the midst of getting such an api.
... berkeley db xml was the initial choice by the extension developer for its sup
port across many languages (c++, java, python, perl, php, etc.) (besides its also being open source), but now some problems may exist with bdbxml (unlike saxon).
Anatomy of a video game - Game development
each of these paths will lead to different op
portunities and constraints.
... what most browser games should look like if your game can hit the maximum refresh rate of any hardware you sup
port then your job is fairly easy.
...if a
portion of your update loop is difficult to compute but insensitive to time, you might consider scaling back its frequency and, ideally, spreading it out into chunks throughout that lengthened period.
... an im
portant thing to remember for managed platforms, like the web, is that your loop may stop execution for significant periods of time.
Index - Game development
26 audio for web games audio, games, web audio api, audio sprites, spatialization, syncing tracks audio is an im
portant part of any game; it adds feedback and atmosphere.
... 28 efficient animation for web games animation, games, javascript this article covers techniques and advice for creating efficient animation for web games, with a slant towards sup
porting lower end devices such as mobile phones.
... 33 mobile touch controls controls, games, javascript, mobile, pointer, touch that covers adding touch controls for mobile; in the next article we'll see how to add keyboard and mouse sup
port.
... 38 webrtc data channels api, games, needscontent, network, p2p, webrtc, data channels the webrtc (web real-time communications) api is primarily known for its sup
port for audio and video communications; however, it also offers peer-to-peer data channels.
Building up a basic demo with Three.js - Game development
you should: make sure you are using a modern browser with good webgl sup
port, such as the latest firefox or chrome.
...ead> <body> <script src="three.min.js"></script> <script> var width = window.innerwidth; var height = window.innerheight; /* all our javascript code goes here */ </script> </body> </html> it contains some basic information like the document <title>, and some css to set the width and height of the <canvas> element, that three.js will insert on the page to 100% to fill the entire available view
port space.
...thanks to this approach, a fallback can be used, if a desired technology is not sup
ported by the browser.
...to initialize it, we have to set its field of view and aspect ratio: the former is used to set how much is seen, and the latter is im
portant for the objects on the screen to have the right pro
portions when rendered, and not look stretched.
WebVR — Virtual Reality for the Web - Game development
there are many devices to chose from: desktop ones like oculus rift or htc vive, through consoles with playstation vr (which admittedly doesn't sup
port webvr at this time), to mobile experiences like gear vr or google cardboard.
... browser sup
port and spec status currently browser sup
port 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.
... immersion is more im
portant than gameplay or graphics - you have to feel you're "inside" the experience.
... the future of webvr it's happening — consumer devices are reaching the market right now, and we already have javascript apis to sup
port them on the web.
3D games on the Web - Game development
documentation and browser sup
port the webgl project documentation and specification is maintained by the khronos group, not the w3c as with most of the web apis.
... sup
port on modern browsers is very good, even on mobile, so you don't have to worry about that too much.
... the main browsers are all sup
porting webgl and all you need to focus on is optimizing the performance on the devices you use.
... other tools both unity and unreal can ex
port your game to webgl with asm.js, so you're free to use their tools and techniques to build games that will be ex
ported to the web.
Backgrounds and borders - Learn web development
fixed: it causes an element's background to be fixed to the view
port so that it doesn't scroll when the page or element content is scrolled.
... local: this value was added later on (it is only sup
ported in internet explorer 9+, whereas the others are sup
ported in ie4+) because the scroll value is rather confusing and doesn't really do what you want in many cases.
... screen readers cannot parse background images, therefore they should be purely decoration; any im
portant content should be part of the html page and not contained in a background.
... we have covered a lot in this article, but can you remember the most im
portant information?
Organizing your CSS - Learn web development
there often isn't a right or wrong way to do things, but consistency is im
portant.
... keep it consistent if you get to set the rules for the project or are working alone, then the most im
portant thing to do is to keep things consistent.
... you may have used a css property in a specific way to get around older browser incompatibilities, for example: .box { background-color: red; /* fallback for older browsers that don't sup
port gradients */ background-image: linear-gradient(to right, #ff0000, #aa0000); } perhaps you followed a tutorial to achieve something, and the css is a little non-obvious.
... defining variables css now has native custom properties, making this feature increasingly less im
portant, however one of the reasons you might use sass is to be able to define all of the colors and fonts used in a project as settings, then use that variable around the project.
Styling tables - Learn web development
to do this, add the following css to your style.css file: /* spacing */ table { table-layout: fixed; width: 100%; border-collapse: collapse; border: 3px solid purple; } thead th:nth-child(1) { width: 30%; } thead th:nth-child(2) { width: 20%; } thead th:nth-child(3) { width: 15%; } thead th:nth-child(4) { width: 35%; } th, td { padding: 20px; } the most im
portant parts to note are as follows: a table-layout value of fixed is generally a good idea to set on your table, as it makes the table behave a bit more predictably by default.
...yes, we could have put both the background image and the linear gradient on the <thead> and <tfoot> elements using multiple background images, but we decided to do it separately for the benefit of older browsers that don't sup
port multiple background images or linear gradients.
... lastly, we've given the entire table a solid background color so that browsers that don't sup
port the :nth-child selector still have a background for their body rows.
... we have covered a lot in this article, but can you remember the most im
portant information?
Fundamental text and font styling - Learn web development
this makes doing the maths to work out your font sizes much easier, although if you want to sup
port really old browsers, you might struggle — rem is not sup
ported in internet explorer 8 and below.
...we just wanted to cover the most im
portant ones here.
... direction: define the text direction (this depends on the language and usually it's better to let html handle that part as it is tied to the text content.) hyphens: switch on and off hyphenation for sup
ported languages.
... you've reached the end of this article, and already did some skill testing in our active learning section, but can you remember the most im
portant information going forward?
What is the difference between webpage, website, web server, and search engine? - Learn web development
in fact, you'll sometimes see these terms misused in news re
ports and elsewhere, so getting them mixed up is understandable!
...each web page of a given website provides explicit links—most of the time in the form of clickable
portion of text—that allow the user to move from one page of the website to another.
..."hosting" means that all the web pages and their sup
porting files are available on that computer.
...more im
portantly, since a web server can host multiple websites, the term web server is never used to designate a website, as it could cause great confusion.
How do I start to design my website? - Learn web development
this article covers the all-im
portant first step of every project: define what you want to accomplish with it.
... this is the most im
portant question to answer, since it drives everything else.
...order the goals from most im
portant to least im
portant: find a new girl/boyfriend.
...in sales, for instance, it's far more im
portant and time-consuming to handle supply, payment, and shipment than to build a website where people can place orders.
How to structure a web form - Learn web development
the use case in this example is one of the most im
portant.
...this is the most im
portant element if you want to build accessible forms — when implemented properly, screenreaders will speak a form element's label along with any related instructions, as well as it being useful for sighted users.
...the last one is an <input> element of type date, for entering the expiration date of the card; this one will come up with a date picker widget in sup
porting browsers, and fall back to a normal text input in non-sup
porting browsers.
... you've reached the end of this article, but can you remember the most im
portant information?
Debugging HTML - Learn web development
for example, the following shows an error re
ported when trying to compile a simple program written in the rust language.
... note: html is parsed permissively because when the web was first created, it was decided that allowing people to get their content published was more im
portant than making sure the syntax was absolutely correct.
... <ul> <li>unclosed elements: if an element is <strong>not closed properly, then its effect can spread to areas you didn't intend <li>badly nested elements: nesting elements properly is also very im
portant for code behaving correctly.
...this webpage takes an html document as an input, goes through it, and gives you a re
port to tell you what is wrong with your html.
Fetching data from the server - Learn web development
xhr has been around for a long time now and has very good cross-browser sup
port.
... fetch and promises, on the other hand, are a more recent addition to the web platform, although they're sup
ported well across the browser landscape, with the exception of internet explorer.
... if you need to sup
port older browsers, then an xhr solution might be preferable.
...this error object can be used to re
port the nature of the error that has occurred, in this case we do it with a simple console.log().
Handling text — strings in JavaScript - Learn web development
the power of words words are very im
portant to humans — they are a large part of how we communicate.
... you can include complex expressions inside template literals, for example: let examscore = 45; let examhighestscore = 70; examre
port = `you scored ${ examscore }/${ examhighestscore } (${ math.round((examscore/examhighestscore*100)) }%).
...they are well-sup
ported in modern browsers, and the only place you'll find a lack of sup
port is internet explorer.
... you've reached the end of this article, but can you remember the most im
portant information?
Inheritance in JavaScript - Learn web development
we didn't cover those here, as they are not yet sup
ported very widely across browsers.
... all the other code constructs we discussed in this set of articles are sup
ported as far back as ie9 or earlier, and there are ways to achieve earlier sup
port than that.
... note: this modern way of writing classes is sup
ported in all modern browsers, but it is still worth knowing about the underlying prototypal inheritance in case you work on a project that requires sup
porting a browser that doesn't sup
port this syntax (most notably internet explorer).
... you've reached the end of this article, but can you remember the most im
portant information?
Multimedia: video - Learn web development
objective: to learn about the various video formats, their impact on performance, and how to reduce video impact on overall page load time while serving the smallest video file size based on each browsers file type sup
port.
...compress the video and ex
port to multiple video formats, including webm, mpeg-4/h.264, and ogg/theora.
... see caniuse.com for current browser sup
port of video and other media types.
... depending on your choice of software, you might be able to remove audio during ex
port and compression.
React interactivity: Editing, filtering, conditional rendering - Learn web development
first, im
port usestate into the todo component like we did before with the app component, by updating the first im
port statement to this: im
port react, { usestate } from "react"; we'll now use this to set an isediting state, the default state of which should be false.
... at the top of app.js, beneath our im
ports but above our app() function, let's add an object called filter_map: const filter_map = { all: () => true, active: task => !task.completed, completed: task => task.completed }; the values of filter_map are functions that we will use to filter the tasks data array: the all filter shows all tasks, so we return true for all tasks.
... we know that the <filterbutton /> should re
port whether it is currently pressed, and it should be pressed if its name matches the current value of our filter state.
...properties vue conditional rendering: editing existing todos focus management with vue refs vue resources svelte getting started with svelte starting our svelte todo list app dynamic behavior in svelte: working with variables and props componentizing our svelte app advanced svelte: reactivity, lifecycle, accessibility working with svelte stores typescript sup
port in svelte deployment and next steps ...
Beginning our React todo list - Learn web development
we're not going to write per-component stylesheets, so first delete the app.css im
port from the top of app.js.
... we are also not going to be using the logo.svg file, so remove that im
port too.
...a3c3c; border-color: #bd2130; } .btn__filter { border-color: lightgrey; } .btn__primary { color: #fff; background-color: #000; } .btn-group { display: flex; justify-content: space-between; } .btn-group > * { flex: 1 1 49%; } .btn-group > * + * { margin-left: 0.8rem; } .label-wrapper { margin: 0; flex: 0 0 100%; text-align: center; } .visually-hidden { position: absolute !im
portant; height: 1px; width: 1px; overflow: hidden; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; } [class*="stack"] > * { margin-top: 0; margin-bottom: 0; } .stack-small > * + * { margin-top: 1.25rem; } .stack-large > * + * { margin-top: 2.5rem; } @media screen and (min-width: 550px) { .stack-small > * + * { margin-top: 1.4rem; } .stac...
...properties vue conditional rendering: editing existing todos focus management with vue refs vue resources svelte getting started with svelte starting our svelte todo list app dynamic behavior in svelte: working with variables and props componentizing our svelte app advanced svelte: reactivity, lifecycle, accessibility working with svelte stores typescript sup
port in svelte deployment and next steps ...
ZoomText
it doesn't do us any good to get bug re
ports on older stuff right now.
...you may wish to read through the current issues on this page before re
porting bugs.
... issues for ai squared, from high to low priority docreader and appreader don't respect the structure of the document -- no sup
port for columns.
... comboboxes re
port incorrect bounds, causing zoomtext tracking to move to the wrong area of the screen.
Adding phishing protection data providers
optional preferences browser.safebrowsing.provider.idnum.re
porturl an url used for re
porting when users visit phishing pages and whether or not they decided to heed the warning or to ignore it.
... browser.safebrowsing.provider.idnum.re
portgenericurl not currently used; intended for use in re
porting other issues with the phishing protection service.
... browser.safebrowsing.provider.idnum.re
porterrorurl an url to which the user is directed in order to re
port a safe page that is incorrectly being re
ported as a phishing site.
... browser.safebrowsing.provider.idnum.re
portphishurl an url to which the user is directed in order to re
port a phishing site that isn't detected by the phishing protection system.
Android-specific test suites
running android-test to run android-test, first build firefox for android with your changes; then run ./mach android test this will run the tests and re
port the results to stdout, as well as produce an html re
port.
... running android-checkstyle to run android-checkstyle, first build firefox for android with your changes; then run ./mach android checkstyle this will run the tests and re
port the results to stdout, as well as produce an html re
port.
... running android-findbugs to run android-findbugs, first build firefox for android with your changes; then run ./mach android findbugs this will run the tests and re
port the results to stdout, as well as produce an html re
port.
... running android-lint to run android-lint, first build firefox for android with your changes; then run ./mach android lint this will lint the code and re
port the results to stdout, as well as produce an html re
port.
Debugging JavaScript
you can also start the browser console when you launch firefox, by launching firefox from the command line and passing --jsconsole as a flag: /path/to/firefox --jsconsole log to the browser console using the standard console api after im
porting console.jsm: let console = (cu.im
port("resource://gre/modules/console.jsm", {})).console; console.log("hello from firefox code"); error console this is obsolete and is no longer enabled in firefox by default.
... console.log in browser console you can dump variables in the browser console from addon code, by adding this line to im
port the console utility: const { console } = components.utils.im
port("resource://gre/modules/devtools/console.jsm", {}); this has an advantage over dump in that you can list out properties of an object logged with console.log.
... components.utils.im
port("resource://gre/modules/log.jsm"); "debugger" keyword you can halt venkman or chromebug at a line using the keyword debugger.
...s.push(frame.filename + " (" + frame.linenumber + ")"); } return lines.join("\n"); } see also debugging mozilla with gdb setting up an extension development environment (particularly development preferences and development extensions) original document information author(s): ben bucksch created date: september 12, 2005, last updated date: november 10, 2009 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Debugging a hang on OS X (Archived)
see how to re
port a hung firefox instead.
...below are steps you can use to attach so-called "samples" to bug re
ports.
... when it's done parsing the data, click the "show text re
port" button; a new window will open with a couple of rows with stacktraces for all the threads in the sampled application.
...ex
port it using tools > generate re
port, and attach this as a text file to the bug re
port.
Debugging
advanced debugging techniques understanding crash re
ports how to read crash re
ports, which are full of information yet often not easy to interpret and act on.
... debugging a minidump windows crash re
ports include a minidump, which contains a lot of information about the application when it crashed.
... 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 re
port useful information you can provide about a crash.
... re
porting a performance problem ...using the gecko profiler extension.
Creating Custom Events That Can Pass Data
note that starting with version 6, firefox sup
ports dom level 3 customevent, which lets you dispatch custom events with arbitrary data from javascript.
...mozilla/dom/base/nsdomclassinfoclasses.h the change you make here is really rather small but it is incredibly im
portant.
...mozilla/content/events/src/nseventdispatcher.cpp note: in the mozilla 1.8.x branch this code is actually in mozilla/content/events/src/nseventlistenermanager.cpp this is quite an im
portant file since this holds the createevent method which acts as a factory method dom events.
...you will find that there is a bunch of code like: if (aeventtype.lowercaseequalsliteral("{somethingsomething}event")) return ns_{somethingsomething}event(adomevent, aprescontext, nsnull); you can either have a function like this or write the code straight in nseventlistenermanager::createevent() like this: if (aeventtype.lowercaseequalsliteral("nsmyevent")){ //note: the lowercase is im
portant!
ESLint
for example: in windows 10, if you have installed node.js on "c:\nodejs", then the command should look like: ex
port path=$path:/c/nodejs enabling eslint for a new directory remove the directory from .eslintignore (in the base directory of the repository) fix errors that occur when running ./mach eslint path/to/dir, see also the no-undef rules below.
...here are some common issues: my script is im
ported into the global browser.xul scope.
... foo.jsm ex
ports a symbol, but that is not recognised by eslint check it is listed correctly in tools/lint/eslint/modules.json using services.scriptloader.loadsubscript?
... you'll need to include the following just above it: /* im
port-globals-from relative/path/to/file.js */ do_check_eq, add_task not defined in a test directory.
Commenting IDL for better documentation
comment format doxygen sup
ports several comment formats; for style and consistency reasons, we use the following: /** * */ note the two asterisks ("**") on the first line of the comment.
... that lets doxygen (and by extension, our automated documentation im
port tools) know that the comment should be absorbed into documentation.
...note: this is not yet sup
ported by our documentation tool.
...note: this is not yet sup
ported by our documentation tool.
Storage access policy: Block cookies from trackers
re
port broken sites if you find a website broken as a result of this change, file a bug under the tracking protection component within the firefox product on bugzilla.
... alternatively you can re
port broken sites directly in firefox by clicking "re
port a problem" in the content blocking section of the control center (this shortcut may not be available in all versions of firefox).
...when the list is applied in firefox, we make two im
portant changes: first, we only use the "basic protection" version of the list, which excludes some categories of trackers.
...we also sup
port an initial implementation of the storage access api, through which embedded <iframe>s can request storage access by calling document.requeststorageaccess().
Firefox and the "about" protocol
about:crashes lists all crashes, which happened during the runtime of firefox (in case the user enabled the crash re
porter) about:credits lists all contributors to the firefox project about:debugging switches to the developer tools debugging page, which allows you to debug add-ons, tabs and service workers about:devtools summarizes the developer tools and provides links to documentation for each tool about:downloads displays all downloads done within firefox ...
...about:home start page of firefox when opening a new window about:license displays licensing information about:logo firefox logo about:memory provides a way to display memory usage, save it as re
port and run the gc and cc about:mozilla special page showing a message from "the book of mozilla" about:networking displays networking information about:newtab start page when opening a new tab about:performance displays memory and performance information about firefox subprocesses/add-ons/tabs about:plugins displays information about installed plugins about:policies lists out the firefox for enterprise policies about:preferences firefox settings (also available through firefox men...
...u > options) about:privatebrowsing start page when opening a private window about:profiles display and manage firefox profiles about:protections privacy protections re
port consisting of enhanced tracking protection, firefox monitor and firefox lockwise data about:restartrequired a page users are sent to when firefox requires a restart due to an update about:reader indicates a web page has firefox reader view turned on.
...iew for clutter-free web pages about:rights displays rights information about:robots special page showing notes about robots about:serviceworkers displays currently running service workers about:studies lists the shield studies that are installed about:sessionrestore session restoration (displayed after a firefox crash) about:sup
port troubleshooting information (also available through firefox menu > ?
Roll your own browser: An embedding how-to
it should include all of the base sup
port that you need to get a web browser started up.
...url location field, menu bar, html area, sup
ports ssl.
...fast ie-look-alike browser, uses ie and ns bookmarking system, fast loading time, privacy features, java sup
port and complete control of the menus and "hotkeys".
...(screenshot) marbrow : mac
port of x2web (ja, ko) embedding mozilla.
Add-on Manager
the apis are designed to be generic and sup
port many different types of add-ons.
...for example: components.utils.im
port("resource://gre/modules/addonmanager.jsm"); addonmanager.getalladdons(function(aaddons) { // here aaddons is an array of addon objects }); // this code will execute before the code inside the callback notifications about changes to installed add-ons are dispatched to any registered addonlisteners.
...these will pass an addoninstall instance to the callback, which can then be used to install the add-on: components.utils.im
port("resource://gre/modules/addonmanager.jsm"); addonmanager.getinstallforurl("http://www.foo.com/test.xpi", function(ainstall) { // ainstall is an instance of addoninstall ainstall.install(); }, "application/x-xpinstall"); the progress of addoninstalls can be monitored using an installlistener.
... for example, to take a look at the add-ons that were disabled at startup: components.utils.im
port("resource://gre/modules/addonmanager.jsm"); 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 br...
JNI.jsm
to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/jni.jsm"); this module was available in firefox since version 17.
... if you would like to sup
port versions before that, you can copy and paste the contents of the jsm file int jni stands for java native interface; this library allows calling java code running in java virtual machines (jvms), etc.
... a note about firefox for android, this jsm file is already globally im
ported and is available from the privileged window scope as window.jni.
...this shows how to get the paths to the "pictures" folder: components.utils.im
port("resource://gre/modules/jni.jsm"); components.utils.im
port("resource://gre/modules/osfile.jsm"); // because we use os.path.join in this example var my_jenv = null; try { my_jenv = jni.getforthread(); var sig = { environment: 'landroid/os/environment;', string: 'ljava/lang/string;', file: 'ljava/io/file;' }; var environment = jni.loadclass(my_jenv, sig.en...
OS.File for the main thread
using os.file from a jsm to im
port os.file into your chrome code, add the following line at the start of your script: components.utils.im
port("resource://gre/modules/osfile.jsm") promises before using os.file from the main thread, you need some understanding of the promise library.
...est.txt to testrenamed.txt if the file is located in directory c:\jean\ var promise = os.file.move(os.path.join('c:', 'jean', 'test.txt'), os.path.join('c:', 'jean', 'testrenamed.txt')); promise.then( function() { console.log('rename successful') }, function(arejectreason) { console.log('rename failed, arejectreason = ', arejectreason) } ) the nooverwrite true is im
portant, as default is false which means if a file in the directory exists already with the same name it will no longer be there after this "rename" operation, which is a "move".
... let sessionstore = os.path.join(os.constants.path.profiledir, "sessionstore.js"); // under linux, this is generally "$home/.firefox/profiles/$profilename/sessionstore.js" // under macos, this is generally "$home/library/application sup
port/firefox/$profilename/sessionstore.js" // under windows, this is generally "%appdata%\local\temp\%profilename%"\sessionstore.js // etc.
...at the time of this writing, write does not sup
port encoding option so the text to be written has to be encoded with textencoder.
PerfMeasurement.jsm
before you can use this module, you need to im
port it into your scope: components.utils.im
port("resource://gre/modules/perfmeasurement.jsm") see measuring performance using the perfmeasurement.jsm code module for details on how to use this api.
... note: at present, perfmeasurement.jsm is only functional on linux, but it is planned to add sup
port for windows (bug 583322) and osx (bug 583323) as well, and we welcome patches for other operating systems.
... variable type description eventsmeasured eventmask a bit mask of the event types recorded; this can differ from the events requested if the platform doesn't sup
port all of the event types you specified when creating the perfmeasurement object.
...methods canmeasuresomething() indicates whether or not the platform on which your code is running sup
ports this code module.
JavaScript code modules
see ex
port and im
port to learn more about how to use standard modules.
... components.utils.im
port how to im
port a javascript code module.
... assert.jsm implements the commonjs unit testing specification version 1.1, which provides a basic standardized interface for performing in-code logical assertions with optional, customizable error re
porting.
... bookmarkhtmlutils.jsm provides utility functions for im
porting and ex
porting bookmarks from the old-school "bookmarks.html" style bookmark files.
Bootstrapping a new locale
mkdir -p ab-cd/browser/installer ab-cd/browser/profile/chrome ab-cd/browser/searchplugins ab-cd/browser/updater ab-cd/toolkit cp -r mozilla-1.9.x/browser/locales/ ab-cd/browser cp -r mozilla-1.9.x/dom/locales/ ab-cd/dom cp -r mozilla-1.9.x/editor/locales/ ab-cd/editor cp -r mozilla-1.9.x/extensions/re
porter/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-c...
... 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 pagere
portfirsttime.dtd aboutrobots.dtd places aboutsessionrestore.dtd preferences aboutsup
port.dtd quitdialog.properties basemenuoverlay.dtd safemode.dtd browser.dtd safebrowsing browser.properties sanitize.dtd credits.dtd search.properties enginemanager.dtd searchbar.dtd enginemanager.prope...
... this will familiarize you with our "hg" commands and will get us something that we can im
port easily when you are done.
...$ hg pull -u # to pull changes and update $ hg push # to push changes to this repo im
port existing data?
L10n testing with xcode
select the client project in the left pane and choose editor > im
port localizations from the toolbar and select your localized xliff file.
... a window will then appear showing the diff between the im
ported xliff file and the existing resources in the project folder.
... click the im
port button.
... xcode will im
port your translated strings into the project by adding them to the project folder and replacing the existing strings.
Localizing extension metadata on addons.mozilla.org
amo sup
ports localized metadata for each extension.
... step 4 allows you to translate any of the above fields into any other language amo sup
ports.
...they also provide help for adding a localization sup
port to your extension if there is no localization structure yet.
...here is a list of the codes: arabic (ar), catalan (ca), czech (cs), danish (da), german (de), greek (el), basque (eu), spanish (es-es), farsi (fa), finnish (fi), french (fr), gaeilge (ga-ie), hebrew (he), hungarian (hu), indonesian (id), italian (it), japanese (ja), korean (ko), mongolian (mn), dutch (nl), polish (pl), brazilian
portuguese (pt-br), european
portuguese (pt-pt), romanian (ro), russian (ru), slovakian (sk), albanian (sq), swedish (sv-se), ukrainian (uk), vietnamese (vi), chinese (zh-cn) and taiwanese (zh-tw).
gettext
different gettext function name) for string which are supposed to sup
port plurals.
...for messages with plural sup
port, the default keyword is ngettext().
...in php, however, the default gettext functions don't sup
port passing such additional argument.
...# #, fuzzy msgid "" msgstr "" "project-id-version: package version\n" "re
port-msgid-bugs-to: \n" "pot-creation-date: 2009-09-28 16:18+0200\n" "po-revision-date: year-mo-da ho:mi+zone\n" "last-translator: full name <email@address>\n" "language-team: language <ll@li.org>\n" "mime-version: 1.0\n" "content-type: text/plain; charset=charset\n" "content-transfer-encoding: 8bit\n" "plural-forms: nplurals=integer; plural=expression;\n" #.
Updates
complete sup
port for stix fonts 1.0.
... june 5, 2002 mozilla 1.0 released "by virtue of embedding gecko, mozilla 1.0 and products based on mozilla code sup
port more web standards, more deeply, more consistently across more platforms than any others.
... mozilla 1.0 features full sup
port for html 4.0, xml 1.0, resource description framework (rdf), cascading style sheets level 1 (css1), and the w3c document object model level 1 (dom1) [...] as well as sup
port for display of mathematical equations using mathml." december 7, 2001 status re
port october 2000 the first international mathml conference april 14, 2000 status re
port february 12, 2000 mathml-enabled m13 builds for win32 september 21, 1999 mathml has landed.
... september 18, 1999 status re
port - mozillazine annoucement september 3, 1999 xsl coming to mozilla?
BloatView
if they aren't, then you're not using the ns_impl_addref and ns_impl_release (or ns_impl_isup
ports which calls them) for xpcom objects, or moz_count_ctor and moz_count_dtor for non-xpcom objects.
... perl tools/bloatview/bloatdiff.pl <previous-log> <current-log> this will give you output of the form: bloat/leak delta re
port current file: dist/win32_d.obj/bin/bloatlogs/all-1999-10-22-133450.txt previous file: dist/win32_d.obj/bin/bloatlogs/all-1999-10-16-010302.txt -------------------------------------------------------------------------- class leaks delta bloat delta -------------------------------------------------------------------------- total 6113530 ...
... 113048 -70.92% 113568 -71.16% literalimpl 53280 26.62% 75840 19.40% nsxulelement 51648 0.00% 51648 0.00% nsprofile 51224 0.00% 51224 0.00% nsframe 47568 -26.15% 48096 -50.49% cssdeclarationimpl 42984 0.67% 43488 0.67% this "delta re
port" shows the leak offenders, sorted from most leaks to fewest.
...by default, those macros sup
port refcnt logging directly.
Investigating leaks using DMD heap scan mode
the command you need to run firefox will look something like this: xpcom_mem_bloat_log=1 moz_cc_log_shutdown=1 moz_disable_content_sandbox=t moz_cc_log_directory=$logdir moz_cc_log_process=content moz_cc_log_thread=main moz_dmd_shutdown_log=$logdir moz_dmd_log_process=tab ./mach run --dmd --mode=scan breaking this down: xpcom_mem_bloat_log=1: this re
ports a list of the counts of every object created and destroyed and tracked by the xpcom leak tracking system.
...this can come in handy during the manual analysis phase later, to get evidence to sup
port your hunches.
...if your leak is a ghost window, it can be handy to get an about:memory re
port and write down the pid of the leaking process.
...most of the time, the actual chain is not im
portant, because the cycle collector can only tell us about what went right.
Scroll-linked effects
however, most browsers now sup
port some sort of asynchronous scrolling in order to provide a consistent 60 frames per second experience to the user.
... future improvements going forward, we would like to sup
port more effects in the compositor.
... in order to do so, we need you (yes, you!) to tell us more about the kinds of scroll-linked effects you are trying to implement, so that we can find good ways to sup
port them in the compositor.
...as of this writing, mozilla does not plan to sup
port this proposal, but it is included for completeness.
MailNews automated testing
automated testing is an increasingly significant and im
portant part of mailnews development.
... this page and its sub-pages describe (and link to) the available test mechanisms within mailnews, and provide sup
porting information for developers and testers.
... testing frameworks the asynctestutils extended framework sup
ports: asynchronous test operation: a reasonably convenient means of writing tests that involve asynchronous operations by using generators.
... enhanced logging: sup
ports generating rich json streams to disk or over the network for consumption by logsploder or other tools.
Midas
scripting for midas is based on the dhtml commands sup
ported by internet explorer.
... internet explorer sup
ports the ability to make an entire document editable by setting the designmode property of the document object; this is how midas is invoked in gecko.
... internet explorer also sup
ports the ability to edit specific elements using the contenteditable attribute; starting with firefox 3, gecko also sup
ports contenteditable.
... sup
ported commands command value description backcolor a color code.
NSPR's Position On Abrupt Thread Termination
this memo describes my position on a facility that is currently under discussion for inclusion in the netscape
portable runtime (nspr); the ability of a thread to abruptly exit.
... i resist including this function in nspr because it results in bad programming practice and unsup
portable programs.
...the problem with abrupt termination is that it can happen at any time, to a thread that is coded correctly to handle both normal and exceptional situations, but will be unable to do so since it will be denied the op
portunity to complete execution.
...to make this solution work requires that a function that encounters an error be designed such that it first repairs its immediate state, and then re
ports that error to its caller.
Long Long (64-bit) Integers
the functions define a
portable api that can be used reliably in any environment.
...the specific implementation of each macro depends on whether the compiler for the target platform sup
ports 64-bit integers.
... for a specific target platform, if 64-bit integers are sup
ported for that platform, define have_long_long at compile time.
... 64-bit integer types nspr provides two types to represent 64-bit integers: print64 pruint64 64-bit integer functions the api defined for the 64-bit integer functions is consistent across all sup
ported platforms.
NSPR Error Handling
pr_address_not_sup
ported_error the type of network address specified is not sup
ported.
... pr_bad_address_error the network address specified is invalid (as re
ported by the network).
... pr_operation_not_sup
ported_erro the requested operation is not sup
ported by the platform.
... pr_protocol_not_sup
ported_error the host operating system does not sup
port the protocol requested.
PR_InitializeNetAddr
syntax #include <prnetdb.h> prstatus pr_initializenetaddr( prnetaddrvalue val, pruint16
port, prnetaddr *addr); parameters the function has the following parameters: val the value to be assigned to the ip address
portion of the network address.
...
port the
port number to be assigned in the network address structure.
... description pr_initializenetaddr allows the assignment of special network address values and the
port number, while also setting the state that indicates the version of the address being used.
...this allows the caller to change the network address'
port number assignment without affecting the host address.
Cryptography functions
the nss version column indicates which versions of nss sup
port the function.
... pk11_destroytokenobject mxr 3.2 and later pk11_digestbegin mxr 3.2 and later pk11_digestkey mxr 3.2 and later pk11_digestop mxr 3.2 and later pk11_digestfinal mxr 3.2 and later pk11_doesmechanism mxr 3.2 and later pk11_ex
portencryptedprivatekeyinfo mxr 3.2 and later pk11_ex
portencryptedprivkeyinfo mxr 3.9 and later pk11_ex
portprivatekeyinfo mxr 3.2 and later pk11_finalize mxr 3.2 and later pk11_findbestkeamatch mxr 3.2 and later pk11_findcertandkeybyrecipientlist mxr 3...
...er pk11_gettokeninfo mxr 3.2 and later pk11_gettokenname mxr 3.2 and later pk11_getwindow mxr 3.2 and later pk11_getwrapkey mxr 3.2 and later pk11_hashbuf mxr 3.2 and later pk11_hasrootcerts mxr 3.4 and later pk11_im
portcert mxr 3.5 and later pk11_im
portcertforkeytoslot mxr 3.2 and later pk11_im
portcrl mxr 3.6 and later pk11_im
portdercert mxr 3.6 and later pk11_im
portderprivatekeyinfoandreturnkey mxr 3.4 and later pk11_im
portencryptedprivatekeyinfo mxr 3.2 and lat...
...er pk11_im
portprivatekeyinfo mxr 3.2 and later pk11_im
portprivatekeyinfoandreturnkey mxr 3.4 and later pk11_im
portpublickey mxr 3.4 and later pk11_im
portsymkeywithflags mxr 3.4 and later pk11_initpin mxr 3.2 and later pk11_isfips mxr 3.2 and later pk11_isdisabled mxr 3.4 and later pk11_isfriendly mxr 3.2 and later pk11_ishw mxr 3.2 and later pk11_isinternal mxr 3.2 and later pk11_ispresent mxr 3.2 and later pk11_isreadonly mxr 3.2 and later pk11_is...
4.3.1 Release Notes
release date: 2009-12-02 introduction network security services for java (jss) 4.3.1 is a minor release with the following new features: sup
port for ssl3 & tls renegotiation vulnerablity sup
port to explicitly set the key usage for the generated private key jss 4.3.1 is tri-licensed under mpl 1.1/gpl 2.0/lgpl 2.1.
...jss only sup
ports the native threading model (no green threads).
... known bugs and issues for a list of re
ported bugs that have not yet been fixed, click here.
...to obtain the version info from the jar file use, "system.out.println(org.mozilla.jss.cryptomanager.jar_jss_version)" and to check the shared library: strings libjss4.so | grep -i header feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.
Build instructions for JSS 4.3.x
jss sup
ports java version 1.5 or later.
... unix setenv java_home /usr/local/jdk1.5.0 (or wherever your jdk is installed) windows set java_home=c:\programs\jdk1.5.0 (or wherever your jdk is installed) windows (cygnus) java_home=/cygdrive/c/programs/jdk1.5.0 (or wherever your jdk is installed) ex
port java_home windows build configurations winnt vs win95 as of nss 3.15.4, nspr/nss/jss build generates a "win95" configuration by default on windows.
...(see jss faq) the "win95" configuration sup
ports all versions of windows.
... mac os x it has been recently re
ported that special build instructions are necessary to succeed building jss on osx.
NSS Key Log Format
oded handshake traffic secret for the client side (for tls 1.3) server_handshake_traffic_secret: the hex-encoded handshake traffic secret for the server side (for tls 1.3) client_traffic_secret_0: the first hex-encoded application traffic secret for the client side (for tls 1.3) server_traffic_secret_0: the first hex-encoded application traffic secret for the server side (for tls 1.3) early_ex
porter_secret: the hex-encoded early ex
porter secret (for tls 1.3, used for 0-rtt keys in older quic drafts).
... ex
porter_secret: the hex-encoded ex
porter secret (for tls 1.3, used for 1-rtt keys in older quic drafts) the rsa form allows ciphersuites using rsa key-agreement to be logged and was the first form sup
ported by wireshark 1.6.0.
... it has been superseded by client_random which also works with other key-agreement algorithms (such as those based on diffie-hellman) and is sup
ported since wireshark 1.8.0.
... the tls 1.3 lines are sup
ported since nss 3.34 (bug 1287711) and wireshark 2.4 (early_ex
porter_secret exists since nss 3.35, bug 1417331).
NSS 3.15.2 release notes
new in nss 3.15.2 new functionality aes-gcm ciphersuites: aes-gcm cipher suite (rfc 5288 and rfc 5289) sup
port has been added when tls 1.2 is negotiated.
... specifically, the following cipher suites are now sup
ported: tls_ecdhe_ecdsa_with_aes_128_gcm_sha256 tls_ecdhe_rsa_with_aes_128_gcm_sha256 tls_dhe_rsa_with_aes_128_gcm_sha256 tls_rsa_with_aes_128_gcm_sha256 new functions pk11_cipherfinal has been introduced, which is a simple alias for pk11_digestfinal.
...new pkcs #11 mechanisms no new pkcs#11 mechanisms have been introduced notable changes in nss 3.15.2 bug 880543 - sup
port for aes-gcm ciphersuites that use the sha-256 prf bug 663313 - md2, md4, and md5 signatures are no longer accepted for ocsp or crls, consistent with their handling for general certificate signatures.
...feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.15 release notes
nss 3.15 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_15_rtm/src/ new in nss 3.15 new functionality sup
port for ocsp stapling (rfc 6066, certificate status request) has been added for both client and server sockets.
... sup
port for single-operation (eg: not multi-part) symmetric key encryption and decryption, via pk11_encrypt and pk11_decrypt.
... certutil has been updated to sup
port creating name constraints extensions.
... dropped (32-bit) sparc v8 processor sup
port on solaris.
NSS 3.16.2.1 release notes
a new symbol, _sgn_verifypkcs1digestinfo is ex
ported in this release.
... as with all ex
ported nss symbols that have a leading underscore '_', this is an internal symbol for nss use only.
... bugs fixed in nss 3.16.2.1 bug 1064636 - (cve-2014-1568) rsa signature forgery in nss acknowledgements the nss development team would like to thank antoine delignat-lavaud, security researcher at inria paris in team prosecco, and the advanced threat research team at intel security, who both independently discovered and re
ported this issue, for responsibly disclosing the issue by providing advance copies of their research.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.16.5 release notes
a new symbol, _sgn_verifypkcs1digestinfo is ex
ported in this release.
... as with all ex
ported nss symbols that have a leading underscore '_', this is an internal symbol for nss use only.
... bugs fixed in nss 3.16.5 bug 1064636 - (cve-2014-1568) rsa signature forgery in nss acknowledgements the nss development team would like to thank antoine delignat-lavaud, security researcher at inria paris in team prosecco, and the advanced threat research team at intel security, who both independently discovered and re
ported this issue, for responsibly disclosing the issue by providing advance copies of their research.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.17.2 release notes
this fixes a regression introduced in nss 3.16.2 that prevented nss from im
porting some rsa private keys (such as in pkcs #12 files) generated by other crypto libraries.
... bug 1057161: check that an im
ported elliptic curve public key is valid.
...now ec public keys are validated at im
port time.
...feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.27 release notes
nss 3.27 requires netscape
portable runtime (nspr) 4.13 or newer.
... added sup
port for rsa-pss signatures in tls 1.2 and tls 1.3 new functions in ssl.h ssl_namedgroupconfig notable changes in nss 3.27 update 2016-10-02: the maximum tls version sup
ported has been increased to tls 1.3 (draft).
... although the maximum tls version enabled by default is still tls 1.2, there are applications that query the list of tls protocol versions sup
ported by nss, and enable all sup
ported versions.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.31 release notes
nss 3.31 requires netscape
portable runtime (nspr) 4.15 or newer.
...ssl_versionrangegetsup
ported can be used to query the overlap between the library's sup
ported range of tls versions and the systemwide policy.
... corrected the encoding of domain name constraints extensions created by certutil nss sup
ports a clean seeding mechanism for *nix systems now using only /dev/urandom.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.34 release notes
nss 3.34 requires netscape
portable runtime (nspr) 4.17, or newer.
... sslkeylogfile is now sup
ported with tls 1.3, see bug 1287711 for details.
... rsa-pss signatures are now sup
ported on certificates.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (select product 'nss').
NSS 3.37 release notes
added hacl* poly1305 32-bit the code to sup
port the npn protocol, which had already been disabled in a previous release, has been fully removed.
... nss sup
ports opening sql databases in read-only mode.
... with nss 3.37, this alternative implementation for linux has been enhanced to use the glibc function getentropy(), instead of reading from /dev/urandom directly, if the build and runtime linux platform sup
ports it.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.39 release notes
nss 3.39 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_39_rtm/src/ new in nss 3.39 new functionality the tstclnt and selfserv utilities added sup
port for configuring the enabled tls signature schemes using the -j parameter.
... sup
port for these keys is disabled by default but can be enabled using ssl_signatureschemeprefset().
... the tstclnt and selfserv test utilities no longer accept the -z parameter, as sup
port for tls compression was removed in a previous nss version.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.45 release notes
notable changes in nss 3.45 bug 1540403 - implement delegated credentials (draft-ietf-tls-subcerts) this adds a new experimental function: ssl_delegatecredential note: in 3.45, selfserv does not yet sup
port delegated credentials.
... bug 1550579 - replace arm32 curve25519 implementation with one from fiat-crypto bug 1551129 - sup
port static linking on windows bug 1552262 - expose a function pk11_findrawcertswithsubject for finding certificates with a given subject on a given slot bug 1546229 - add ipsec ike sup
port to softoken bug 1554616 - add sup
port for the elbrus lcc compiler (<=1.23) bug 1543874 - expose an external clock for ssl this adds new experimental functions: ssl_settimefunc, ssl_createantireplaycontext, ssl_setantireplaycontext, and ssl_releaseantireplaycontext.
... certificate authority changes the following ca certificates were removed: bug 1552374 - cn = certinomis - root ca sha-256 fingerprint: 2a99f5bc1174b73cbb1d620884e01c34e51ccb3978da125f0e33268883bf4158 bugs fixed in nss 3.45 bug 1540541 - don't unnecessarily strip leading 0's from key material during pkcs11 im
port (cve-2019-11719) bug 1515342 - more thorough input checking (cve-2019-11729) bug 1552208 - prohibit use of rsassa-pkcs1-v1_5 algorithms in tls 1.3 (cve-2019-11727) bug 1227090 - fix a potential divide-by-zero in makepfromqandseed from lib/freebl/pqg.c (static analysis) bug 1227096 - fix a potential divide-by-zero in pqg_verifyparams from lib/freebl/pqg.c (static analysis) bug 1509432 -...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.50 release notes
bugs fixed in nss 3.50 bug 1599514 - update dtls 1.3 implementation to draft-30 bug 1603438 - fix native tools build failure due to lack of zlib include dir if external bug 1599603 - nist sp800-108 kbkdf - pkcs#11 implementation bug 1606992 - cache the most recent pbkdf1 password hash, to speed up repeated sdr operations, im
portant with the increased kdf iteration counts.
...e25519 bug 1608327 - two problems with neon-specific code in freebl bug 1575843 - detect aarch64 cpu features on freebsd bug 1607099 - remove the buildbot configuration bug 1585429 - add more hkdf test vectors bug 1573911 - add more rsa test vectors bug 1605314 - compare all 8 bytes of an mp_digit when clamping in windows assembly/mp_comba bug 1604596 - update wycheproof vectors and add sup
port for cbc, p256-ecdh, and cmac tests bug 1608493 - use aes-ni for non-gcm aes ciphers on platforms with no assembly-optimized implementation, such as macos.
... bug 1547639 - update zlib in nss to 1.2.11 bug 1609181 - detect arm (32-bit) cpu features on freebsd bug 1602386 - fix build on freebsd/powerpc* bug 1608151 - introduce nss_disable_altivec bug 1612623 - depend on nspr 4.25 bug 1609673 - fix a crash when nss is compiled without libnssdbm sup
port, but the nssdbm shared object is available anyway.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS Sample Code Sample_2_Initialization of NSS
"enter a password which will be used to encrypt your keys.\n" "the password should be at least 8 characters long,\n" "and should contain at least one non-alphabetic character.\n\n"); output = fopen("/dev/tty", "w"); if (output == null) { pr_fprintf(pr_stderr, "error opening output terminal for write\n"); return null; } for (;;) { if (p0)
port_free(p0); p0 = getpassword(input, output, "enter new password: ", checkpassword); if (p1)
port_free(p1); p1 = getpassword(input, output, "re-enter password: ", checkpassword); if (p0 && p1 && !
port_strcmp(p0, p1)) { break; } pr_fprintf(pr_...
...try again.\n"); } /* clear out the duplicate password string */ if (p1) {
port_memset(p1, 0,
port_strlen(p1));
port_free(p1); } fclose(input); fclose(output); return p0; } /* change the password */ secstatus changepw(pk11slotinfo *slot, char *oldpass, char *newpass, char *oldpwfile, char *newpwfile) { secstatus rv; secupwdata pwdata; secupwdata newpwdata; char *oldpw = null; char *newpw = null; if (oldpass) { pwdata.source = pw_plaintext; pwdata.data = oldpass; } else if (oldpwfile) { pwdata.source = pw_fromfile; pwdata.data = oldpwfile; } else { pwdata.source = pw_none; pwdata.data = null; } if (newpass) {...
... try again.\n"); } else { pr_fprintf(pr_stderr, "invalid password.\n");
port_memset(oldpw, 0, pl_strlen(oldpw));
port_free(oldpw); return secfailure; } } else { break; }
port_free(oldpw); } newpw = initslotpassword(slot, pr_false, &newpwdata); if (pk11_changepw(slot, oldpw, newpw) != secsuccess) { pr_fprintf(pr_stderr, "failed to...
... change password.\n"); return secfailure; }
port_memset(oldpw, 0, pl_strlen(oldpw));
port_free(oldpw); pr_fprintf(pr_stdout, "password changed successfully.\n"); }
port_memset(newpw, 0, pl_strlen(newpw));
port_free(newpw); return secsuccess; } /* * this example illustrates initialization of the nss database.
Initialize NSS database - sample 2
"enter a password which will be used to encrypt your keys.\n" "the password should be at least 8 characters long,\n" "and should contain at least one non-alphabetic character.\n\n"); output = fopen("/dev/tty", "w"); if (output == null) { pr_fprintf(pr_stderr, "error opening output terminal for write\n"); return null; } for (;;) { if (p0)
port_free(p0); p0 = getpassword(input, output, "enter new password: ", checkpassword); if (p1)
port_free(p1); p1 = getpassword(input, output, "re-enter password: ", checkpassword); if (p0 && p1 && !
port_strcmp(p0, p1)) { break; } pr_fprintf(pr_...
...try again.\n"); } /* clear out the duplicate password string */ if (p1) {
port_memset(p1, 0,
port_strlen(p1));
port_free(p1); } fclose(input); fclose(output); return p0; } /* * changepw */ secstatus changepw(pk11slotinfo *slot, char *oldpass, char *newpass, char *oldpwfile, char *newpwfile) { secstatus rv; secupwdata pwdata; secupwdata newpwdata; char *oldpw = null; char *newpw = null; if (oldpass) { pwdata.source = pw_plaintext; pwdata.data = oldpass; } else if (oldpwfile) { pwdata.source = pw_fromfile; pwdata.data = oldpwfile; } else { pwdata.source = pw_none; pwdata.data = null; } if (newpass) { newpwda...
... try again.\n"); } else { pr_fprintf(pr_stderr, "invalid password.\n");
port_memset(oldpw, 0, pl_strlen(oldpw));
port_free(oldpw); return secfailure; } } else { break; }
port_free(oldpw); } newpw = initslotpassword(slot, pr_false, &newpwdata); if (pk11_changepw(slot, oldpw, newpw) != secsuccess) { pr_fprintf(pr_stderr, "failed to...
... change password.\n"); return secfailure; }
port_memset(oldpw, 0, pl_strlen(oldpw));
port_free(oldpw); pr_fprintf(pr_stdout, "password changed successfully.\n"); }
port_memset(newpw, 0, pl_strlen(newpw));
port_free(newpw); return secsuccess; } /* * this example illustrates initialization of the nss database.
Build instructions
(for posix shells), variable=value; ex
port variable gmake target1 target2 here are some (not all) of the make variables that affect nss builds: build_opt: if set to 1, means do optimized non-debug build.
... use_64: on platforms that sup
port both 32-bit and 64-bit abis, tells nss to build for the 64-bit abi.
... default is 32-bit abi, except on platforms that do not sup
port a 32-bit abi.
...this can be done in sh or bash as follows: ex
port path=/usr/libexec/binutils220:$path the following build instructions should work for all platforms (with some platform-specific changes as noted).
Utility functions
the nss version column indicates which versions of nss sup
port the function.
... nssrwlock_lockread mxr 3.2 and later nssrwlock_lockwrite mxr 3.2 and later nssrwlock_new mxr 3.2 and later nssrwlock_unlockread mxr 3.2 and later nssrwlock_unlockwrite mxr 3.2 and later nsssmime_versioncheck mxr 3.2.1 and later
port_alloc mxr 3.2 and later
port_arenaalloc mxr 3.2 and later
port_arenagrow mxr 3.2 and later
port_arenamark mxr 3.2 and later
port_arenarelease mxr 3.2 and later
port_arenastrdup mxr 3.2 and later
port_arenaunmark mxr 3.2...
... and later
port_arenazalloc mxr 3.2 and later
port_free mxr 3.2 and later
port_freearena mxr 3.2 and later
port_geterror mxr 3.2 and later
port_newarena mxr 3.2 and later
port_realloc mxr 3.2 and later
port_seterror mxr 3.2 and later
port_setucs2_asciiconversionfunction mxr 3.2 and later
port_setucs2_utf8conversionfunction mxr 3.2 and later
port_setucs4_utf8conversionfunction mxr 3.2 and later
port_strdup mxr 3.5 and later
port_ucs2_asciiconversion mxr 3.2 and lat...
...er
port_ucs2_utf8conversion mxr 3.2 and later
port_zalloc mxr 3.2 and later
port_zfree mxr 3.2 and later rsa_formatblock mxr 3.2 and later sec_asn1decode mxr 3.4 and later sec_asn1decodeinteger mxr 3.2 and later sec_asn1decodeitem mxr 3.2 and later sec_asn1decoderabort mxr 3.9 and later sec_asn1decoderclearfilterproc mxr 3.2 and later sec_asn1decoderclearnotifyproc mxr 3.2 and later sec_asn1decoderfinish mxr 3.2 and later sec_asn1decodersetfilterproc mxr 3.2 and l...
NSS Tools certutil
starting from nss 3.35, the database format was upgraded to sup
port sqlite as described in this document.
...this extension allows a certificate's key to be dedicated to sup
porting specific operations such as ssl server or object signing.
...this extension sup
ports the certificate chain verification process.
...this extension sup
ports the identification of a particular certificate, from among multiple certificates associated with one subject name, as the correct issuer of a certificate.
certutil
certutil sup
ports two types of databases: the legacy security databases (cert8.db, key3.db, and secmod.db) and new sqlite databases (cert9.db, key4.db, and pkcs11.txt).
...this extension sup
ports the certificate chain verification process.
...this extension sup
ports the identification of a particular certificate, from among multiple certificates associated with one subject name, as the correct issuer of a certificate.
...for example: $ certutil -l -d sql:/home/my/sharednssdb to set the shared database type as the default type for the tools, set the nss_default_db_type environment variable to sql: ex
port nss_default_db_type="sql" this line can be set added to the ~/.bashrc file to make the change permanent.
NSS tools : signtool
digital signatures allow ssl-enabled clients to perform two im
portant operations: * confirm the identity of the individual, company, or other entity whose digital signature is associated with the files * check whether the files have been tampered with since being signed if you have a signing certificate, you can use netscape signing tool to digitally sign files and package them as a jar file.
... communicator sup
ports the public-key cryptography standard known as pkcs #12, which governs key
portability.
...when it is im
ported into browser software such as communicator, it behaves like an object-signing ca and cannot be used to sign objects.
...ganization unit: server products division state or province: california country (must be exactly 2 characters): us username: someuser email address: someuser@netscape.com enter password or pin for "communicator certificate db": [password will not echo] generated public/private key pair certificate request generated certificate has been signed certificate "mytestcert" added to database ex
ported certificate to x509.raw and x509.cacert.
The JavaScript Runtime
interpretation beginning with rhino 1.4 release 2, an interpretive mode is sup
ported.
...execution proceeds by evaluating this compiled form using sup
port routines in rhino.
...the generated bytecodes in turn depend upon runtime sup
port routines.
... compilation of javascript source to class files is sup
ported.
JSNative
otherwise it should either re
port an error (using e.g.
... js_re
porterror or js_re
portoutofmemory) or raise an exception (using js_setpendingexception), and the callback must return false.
... (returning false without re
porting an error or raising an exception terminates the script with an uncatchable error.
... see also mxr id search for jsnative js::callargs js_re
porterror js_re
portoutofmemory js_setpendingexception ...
JS_AliasElement
this feature is deprecated, meaning that it is currently sup
ported only for backward compatibility with existing applications.
... future versions of the engine may no longer sup
port this function.
...if the property name you specify does not exist, js_aliaselement re
ports an error, and returns js_false.
... if the element is currently out of scope, already exists, or the alias itself cannot be assigned to the element, js_aliaselement does not re
port an error, but returns js_false.
SpiderMonkey 1.8
when javascript 1.8 sup
port is enabled, the parser accepts some incorrect programs by inserting a semicolon where it should instead throw a syntaxerror (bug 384758).
...however, one of the most im
portant advances for jsapi application developers is that the documentation is much improved.
... js_re
portallocationoverflow can be used (instead of js_re
portoutofmemory) to indicate that the script is trying to do something that would require more memory than the implementation is designed to handle.
... the main difference is that js_re
portallocationoverflow throws an exception which the application may catch.
Redis Tips
it is intended primarily for developers, and deliberately omits some topics that will be im
portant in any redis deployment, like security and backups.
... node.js redis client: https://github.com/mranney/node_redis npm install redis python redis client: https://github.com/andymccurdy/redis-py there are some gotchas with the python api: https://github.com/andymccurdy/redis-py#api-reference select statement not implemented del is 'delete' in python zadd argument order is wrong setex argument order is wrong the default redis
port is 6379.
... in node, create client with explicit host and
port like so: > var r = require('redis').createclient(6379, '127.0.0.1') commands are asynchronous.
... (this is, for instance, how tj holowaychuk's implemented kue: https://github.com/learnboost/kue.) memory usage in redis is im
portant to think about.
Gecko states
« at apis sup
port page introduction below you will find a list of sup
ported states by gecko.
... state_multiselectable sup
ports multiple selection state_extselectable sup
ports extended selection state_required indicates that user interaction is required.
... state_im
portant isn;t used.
... ext_state_sup
ports_autocompletion for editable areas that have any kind of autocompletion ext_state_defunct object no longer exists ext_state_selectable_text for text which is selectable, object must implement nsiaccessibletext ext_state_editable implements nsiaccessibleeditabletext ext_state_active this window is currently the active window ext_state_modal must do something with control before leaving it ext_state_multi_line edit control that can take multiple lines ext_state_horizontal uses horizontal layout ext_state_opaque indicates this object paints every pixel within its rectangular region ext_state_single_line this text object can only contain 1 line of text ext_state_transient ext_state_vertical especially used...
Implementation Details
sup
ported features interfaces refer to specific pages to get information of sup
ported interfaces for interested at api: core: gecko interfaces windows: msaa, ia2, ienumvariant and isimpledom* interfaces linux: at-spi roles refer to specific pages to get information of sup
ported roles for interested at api: gecko msaa ia2 at-spi states refer to specific pages to get information of sup
ported states for interested at api: gecko msaa ia2 at-spi relations refer to specific pages to get information of sup
ported relations for interested at api: gecko msaa ia2 at-spi attributes object attributes refer to specific pages to get information of sup
ported object attributes for interested at api: gecko msaa ia2 at-spi text att...
...ributes refer to specific pages to get information of sup
ported text attributes for interested at api: gecko msaa - doesn't have a way to expose text attributes, use ia2 ia2 at-spi document attributes refer to specific pages to get information of sup
ported document attributes for interested at api: gecko/msaa/ia2 - document attributes are not exposed.
...at-spi events refer to specific pages to get information of sup
ported events for interested at api: gecko msaa ia2 at-spi implementation features this section highlights special features of at apis implementation by gecko.
... unsup
ported features we do not sup
port some at apis features.
Mork
starting with mozilla 1.9, it was phased out in favor of sqlite, a more widely-sup
ported file format.
...in a few cases, constructs that the parser sup
ported but were never used in mozilla's code are left unspecified.
...the last im
portant point about tables is the meaning of the minuses.
...the first mid, as you should expect by now, is the row id, with the scope being an im
portant part of the id, in that 1:scope1 is not the same row as 1:scope2.
Bundling multiple binary components
this can create a difficult situation for extension developers trying to sup
port multiple gecko versions (firefox 2 and 3, for example).
... possible solutions this article covers two possible ways to make binary components sup
port multiple version of gecko: dynamic method loading stub loader dynamic method loading the idea with this approach is to figure out all the methods im
ported from gecko and dynamically load the methods.
...actually, nspr has
portable versions of those features that work across platforms.
... this approach uses one binary component for each version of gecko and platform, plus the stub loader component therefore, to sup
port 2 gecko versions on three platforms, you need seven components (6 real components + 1 stub).
IAccessibleTable2
if you want to sup
port older applications you should also sup
port the iaccessibletable interface.
...[propget] hresult ncolumns( [out] long columncount ); parameters columncount number of columns in table (including columns outside the current view
port) return value s_ok.
...[propget] hresult nrows( [out] long rowcount ); parameters rowcount number of rows in table (including rows outside the current view
port) return value s_ok.
...[propget] hresult summary( [out] iunknown accessible ); parameters accessible returns a reference to an implementation dependent accessible object representing the table's summary or a null pointer if the table does not sup
port a summary.
mozIStorageConnection
1.0 68 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) for a general overview on how to use this interface, see storage.
... lasterrorstring autf8string the english error string re
ported by the sqlite library for the last sqlite operation.
...the version will be re
ported as 0 if it is not set.
... note: the database engine does not sup
port nested transactions, so attempting to start a transaction when one is already active will throw an exception.
nsIAccessible
« gecko at interfaces page summary the nsiaccessible interface is a cross-platform interface that sup
ports platform-specific accessibility apis like msaa and atk.
... contains the sum of what's needed to sup
port iaccessible as well as atk's generic accessibility objects.
... [scriptable, uuid=(c7520419-87ec-42bc-98cc-04c0bf173530)] interface nsiaccessible : nsisup
ports { ...
...accessible.getchildatpoint() to get child accessible from point nsiaccessible.getaccessibletoleft(), nsiaccessible.getaccessibletoright(), nsiaccessible.getaccessibleabove() or nsiaccessible.getaccessiblebelow() to get left, right, top or below placed accessible methods getkeybindings provides array of localized string of global keyboard accelerator for the given action index sup
ported by accessible.
nsIAlertsService
1.0 66 introduced gecko 1.7 inherits from: nsisup
ports last changed in gecko 22 (firefox 22 / thunderbird 22 / seamonkey 2.19) by default a message is displayed in a small window that slides up from the bottom of the screen, holds there for a few seconds, then slides down.
... note: prior firefox 22, the alerts service was only sup
ported on windows in gecko 1.7, had no effect on mac os x in gecko 1.8, but was fully sup
ported in mac os x in gecko 1.9.
...only available on sup
ported platforms.
...only available on sup
ported platforms.
nsIAnnotationService
sup
ported for use from trusted code, such as extensions, but not from web content.
... 1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by: "@mozilla.org/browser/annotation-service;1".
...if there is an im
portant annotation that the user or extension wants to keep, you should add a bookmark for the page and use an expire_never annotation.
...if there is an im
portant annotation that the user or extension wants to keep, you should add a bookmark for the page and use an expire_never annotation.
nsIAppStartup
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) implemented by: @mozilla.org/toolkit/app-startup;1.
...rvice acmdlineservice, in boolean caninteract); obsolete since gecko 1.9.1 void ensure1window(in nsicmdlineservice acmdlineservice); obsolete since gecko 1.9.1 void enterlastwindowclosingsurvivalarea(); void exitlastwindowclosingsurvivalarea(); void getstartupinfo(); void hidesplashscreen(); obsolete since gecko 1.9.1 void initialize(in nsisup
ports nativeappsup
portorsplashscreen); obsolete since gecko 1.9.1 void quit(in pruint32 amode); void restartinsafemode(in pruint32 aquitmode); void run(); attributes attribute type description interrupted boolean true if the startup process was interrupted by an interactive prompt.
... nativeappsup
port nsinativeappsup
port getter for "native application sup
port." read only.
... void initialize( in nsisup
ports nativeappsup
portorsplashscreen ); parameters nativeappsup
portorsplashscreen is an object that can be qi'd to either an nsinativeappsup
port or nsisplashscreen; this object will be used to implement hidesplashscreen.
nsIApplicationCacheService
1.0 66 introduced gecko 1.9.1 inherits from: nsisup
ports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) method overview void cacheop
portunistically(in nsiapplicationcache cache, in acstring key); nsiapplicationcache chooseapplicationcache(in acstring key); nsiapplicationcache createapplicationcache(in acstring group); void deactivategroup(in acstring group); nsiapplicationcache getactivecache(in acstring group); nsiapplicationcache getapplicationcache(in acstring clientid); void getgroups([optional] out unsigned long count, [array, size_is(count), ...
...retval] out string groupids); methods cacheop
portunistically() flags the specified key as one that should be cached op
portunistically.
... note: this method should propagate the entry to other application caches with the same op
portunistic namespace; however, this is not currently implemented.
... void cacheop
portunistically( in nsiapplicationcache cache, in acstring key ); parameters cache the cache in which the entry is currently cached.
nsIArray
inherits from: nsisup
ports last changed in gecko 1.7 an indexed collection of elements.
...null is a valid entry in the array, and as such any nsisup
ports parameters may be null, except where noted.
... method overview nsisimpleenumerator enumerate(); unsigned long indexof(in unsigned long startindex, in nsisup
ports element); void queryelementat(in unsigned long index, in nsiidref uuid, [iid_is(uuid), retval] out nsqiresult result); attributes attribute type description length unsigned long the number of elements in the array.
...unsigned long indexof( in unsigned long startindex, in nsisup
ports element ); parameters startindex the initial element to search in the array.
nsIAuthInformation
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) the caller of nsiauthprompt2.promptusernameandpassword() or nsiauthprompt2.promptpasswordasync() provides an object implementing this interface; the prompt implementation can then read the values here to prefill the dialog.
...if the protocol for this authentication does not sup
port schemes, this will be the empty string.
...auth prompts should ignore flags they do not understand; especially, they should not throw an exception because of an unsup
ported flag.
...can be the empty string if the protocol does not sup
port realms.
nsIAuthPromptCallback
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) callers must call exactly one method if nsiauthprompt2.asyncpromptauth() returns successfully.
...method overview void onauthavailable(in nsisup
ports acontext, in nsiauthinformation aauthinfo); void onauthcancelled(in nsisup
ports acontext, in boolean usercancel); methods onauthavailable() authentication information is available.
...void onauthavailable( in nsisup
ports acontext, in nsiauthinformation aauthinfo ); parameters acontext the context as passed to nsiauthprompt2.asyncpromptauth().
...void onauthcancelled( in nsisup
ports acontext, in boolean usercancel ); parameters acontext the context that was passed to nsiauthprompt2.asyncpromptauth().
nsIBadCertListener2
security/manager/ssl/public/nsibadcertlistener2.idlscriptable this interface is used to is re
port a broken ssl status.
... 1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) replaces the obsolete nsibadcertlistener interface.
...this object usually sup
ports nsisslsocketcontrol, nsitrans
portsecurityinfo, nsiidentityinfo, nsisslstatusprovider, nsiclientauthuserdecision and possibly other interfaces.
...see also nsisockettrans
port ...
nsIBidiKeyboard
a user is a bidirectional writer if they have keyboard layouts in both left-to-right and right-to-left directions (that is users who use arabic, iranian (persian), or israel (hebrew) keyboard layout, beside an us (english) layout.) inherits from: nsisup
ports last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) method overview boolean islangrtl(); void setlangfrombidilevel(in pruint8 alevel); attributes attribute type description havebidikeyboards boolean indicates whether or not the system has at least one keyboard for each direction (left-to-right and right-to-left) in...
...(sup
ported on: win32, mac, gtk2) note: prior to gecko 1.9 this method used a parameter 'out prbool aisrtl' to return the value.
...(sup
ported on: win32) void setlangfrombidilevel( in pruint8 alevel ); parameters alevel if odd set the keyboard to right-to-left, if even set left-to-right.
...more info: bug 348724, bug 348724, and gnome bug: 116626 mac only islangrtl is sup
ported on this platform.
nsIBoxObject
inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) to get an instance, use the boxobject property.
...method overview wstring getlookandfeelmetric(in wstring propertyname); obsolete since gecko 1.9 wstring getproperty(in wstring propertyname); nsisup
ports getpropertyassup
ports(in wstring propertyname); void removeproperty(in wstring propertyname); void setproperty(in wstring propertyname, in wstring propertyvalue); void setpropertyassup
ports(in wstring propertyname, in nsisup
ports value); attributes attribute type description element nsidomelement read only.
... methods getlookandfeelmetric() obsolete since gecko 1.9 (firefox 3) wstring getlookandfeelmetric( in wstring propertyname ); parameters propertyname return value getproperty() wstring getproperty( in wstring propertyname ); parameters propertyname return value getpropertyassup
ports() nsisup
ports getpropertyassup
ports( in wstring propertyname ); parameters propertyname return value removeproperty() void removeproperty( in wstring propertyname ); parameters propertyname setproperty() void setproperty( in wstring propertyname, in wstring propertyvalue ); parameters propertyname propertyvalue setpropertyassup
ports() void setpropertyassup
ports( in wstrin...
...g propertyname, in nsisup
ports value ); parameters propertyname value ...
nsICacheEntryDescriptor
cacheelement nsisup
ports get or set the cache data element.
... securityinfo nsisup
ports get or set security info on the cache entry for this descriptor.
...use the stream trans
port service to asynchronously read this stream on a background thread.
...use the stream trans
port service to asynchronously write to this stream on a background thread.
nsIChromeRegistry
inherits from: nsisup
ports 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.nsichromeregistry); method overview void canonify(in nsiuri achromeurl); obsolete since gecko 1.8 void checkfornewchrome(); nsiuri convertchromeurl(in nsiuri achromeurl); boolean wrappersenabled(in nsiuri auri); violates the xpcom interface guidelines constants ...
...converts a chrome url into a canonical representation by ensuring that the filename
portion of the url is included, as in chrome://package/provider/file.
... this is useful because chrome urls are allowed to be specified in "shorthand", leaving the "file"
portion off.
...this is useful because chrome urls are allowed to be specified in "shorthand", leaving the "file"
portion off.
nsIComponentManager
66 introduced gecko 0.7 inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) method overview void addbootstrappedmanifestlocation(in nsilocalfile alocation); void createinstance(in nscidref aclass, in nsisup
ports adelegate, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result); void createinstancebycontractid(in string acontractid, in nsisup
ports adelegate, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result); void getclassobject(in nscidref aclass, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result); ...
...a "bootstrapped" chrome manifest sup
ports some of the instructions allowed in a regular chrome manifest, see the chrome registration documentation for details.
...(see also nsifactory.createinstance.) void createinstance( in nscidref aclass, in nsisup
ports adelegate, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result ); parameters aclass the classid of the object instance that is being requested.
... void createinstancebycontractid( in string acontractid, in nsisup
ports adelegate, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result ); parameters acontractid the contractid of the object instance that is being requested.
nsIController
inherits from: nsisup
ports last changed in gecko 1.7 method overview void docommand(in string command); boolean iscommandenabled(in string command); void onevent(in string eventname); boolean sup
portscommand(in string command); methods docommand() when this method is called, your implementation should execute the command with the specified name.
... sup
portscommand() implement this method to re
port whether or not the command with the specified name is sup
ported.
... boolean sup
portscommand( in string command ); parameters command the name of the command to determine whether or not it is sup
ported.
... return value true if the specified command is sup
ported; otherwise false.
nsICryptoHash
the hash algorithms sup
ported are md2, md5, sha-1, sha-256, sha-384, and sha-512.
... 1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview acstring finish(in prbool aascii); void init(in unsigned long aalgorithm); void initwithstring(in acstring aalgorithm); void update([const, array, size_is(alen)] in octet adata, in unsigned long alen); void updatefromstream(in nsiinputstream astream, in unsigned long alen); constants hash algorithms these constants are used by the init() method to indicate which hashing function to use.
... exceptions thrown ns_error_invalid_arg indicates that an unsup
ported algorithm type was passed initwithstring() initialize the hashing object.
... exceptions thrown ns_error_invalid_arg indicates that an unsup
ported algorithm type was passed update() adds an array of data to be hashed to the object.
nsIDOMUserDataHandler
1.0 66 introduced gecko 1.5 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) method overview void handle(in unsigned short operation, in domstring key, in nsivariant data, in nsidomnode src, in nsidomnode dst); constants constant value description node_cloned 1 the node was cloned.
... node_im
ported 2 the node was cloned into a new document.
... methods handle() this method is a callback which will be called if a node with user data is being cloned, im
ported or adopted.
...dst the new node, for clone and im
port operations.
nsIDictionary
method overview boolean haskey(in string key); void getkeys(out pruint32 count, [retval, array, size_is(count)] out string keys); nsisup
ports getvalue(in string key); void setvalue(in string key, in nsisup
ports value); nsisup
ports deletevalue(in string key); void clear(); methods haskey() check if a given key is present in the dictionary.
... nsisup
ports getvalue( in string key ); parameters key the lookup key indicating the value.
... void setvalue( in string key, in nsisup
ports value ); parameters key the key by which the value can be accessed.
... nsisup
ports deletevalue( in string key ); parameters key the key indicating the pair to be removed.
nsIDocumentLoader
inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) implemented by: @mozilla.org/docloaderservice;1.
... gecko 1.8 void destroy(); obsolete since gecko 1.8 void fireonlocationchange(in nsiwebprogress awebprogress, in nsirequest arequest, in nsiuri auri); obsolete since gecko 1.8 void fireonstatuschange(in nsiwebprogress awebprogress, in nsirequest arequest, in nsresult astatus, in wstring amessage); obsolete since gecko 1.8 void getcontentviewercontainer(in nsisup
ports adocumentid, out nsicontentviewercontainer aresult); native code only!
... obsolete since gecko 1.8 nsiloadgroup getloadgroup(); obsolete since gecko 1.8 boolean isbusy(); obsolete since gecko 1.8 void stop(); attributes attribute type description container nsisup
ports read only.
...void getcontentviewercontainer( in nsisup
ports adocumentid, out nsicontentviewercontainer aresult ); parameters adocumentid aresult getloadgroup() obsolete since gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) nsiloadgroup getloadgroup(); parameters none.
nsIDragSession
widget/public/nsidragsession.idlscriptable provides sup
port for interacting with an ongoing drag session during a drag and drop operation.
... inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void getdata( in nsitransferable atransferable, in unsigned long aitemindex ); boolean isdataflavorsup
ported( in string adataflavor ); attributes attribute type description candrop boolean set the current state of the drag, whether it can be dropped or not.
... isdataflavorsup
ported() checks to see if any of the native data on the clipboard matches a given data flavor.
... boolean isdataflavorsup
ported( in string adataflavor ); parameters adataflavor a string representing the mime type of the data to be matched, such as "text/unicode".
nsIJumpListBuilder
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) jump lists are built and then applied.
...method overview void abortlistbuild(); boolean addlisttobuild(in short acattype, in nsiarray items optional, in astring catname optional); boolean commitlistbuild(); boolean deleteactivelist(); boolean initlistbuild(in nsimutablearray removeditems); attributes attribute type description available short indicates whether jump list taskbar features are sup
ported by the current host.
...exceptions thrown ns_error_not_available on all calls if taskbar functionality is not sup
ported by the operating system.
... maxlistitems short the maximum number of jump list items the current desktop can sup
port.
nsILocalFileMac
note: sup
ported only for xp_macosx.
...note: sup
ported only for xp_macosx.
...note: sup
ported only for xp_macosx.
...note: sup
ported only for xp_macosx.
nsILoginManager
toolkit/components/passwordmgr/public/nsiloginmanager.idlscriptable used to interface with the built-in password manager 1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) replaces nsipasswordmanager which was used in older versions of gecko.
...count)] out nsilogininfo logins); void getalldisabledhosts([optional] out unsigned long count, [retval, array, size_is(count)] out wstring hostnames); void getalllogins([optional] out unsigned long count, [retval, array, size_is(count)] out nsilogininfo logins); boolean getloginsavingenabled(in astring ahost); void modifylogin(in nsilogininfo oldlogin, in nsisup
ports newlogindata); void removealllogins(); void removelogin(in nsilogininfo alogin); void searchlogins(out unsigned long count, in nsipropertybag matchdata, [retval, array, size_is(count)] out nsilogininfo logins); void setloginsavingenabled(in astring ahost, in boolean isenabled); methods addlogin() stores a new login in the login manager.
... example you can call this method from javascript like this: var logins = myloginmgr.getalllogins({}); getloginsavingenabled() re
ports whether or not saving login information is enabled for a host.
... void modifylogin( in nsilogininfo oldlogin, in nsisup
ports newlogindata ); parameters oldlogin the login to be modified.
nsILoginManagerStorage
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) for example, if you wish to provide operating system integration with a native password manager system, implementing and registering a storage module for the login manager is how you do it.
...ns([optional] out unsigned long count, [retval, array, size_is(count)] out nsilogininfo logins); void getalllogins([optional] out unsigned long count, [retval, array, size_is(count)] out nsilogininfo logins); boolean getloginsavingenabled(in astring ahost); void init(); void initwithfile(in nsifile ainputfile, in nsifile aoutputfile); void modifylogin(in nsilogininfo oldlogin, in nsisup
ports newlogindata); void removealllogins(); void removelogin(in nsilogininfo alogin); void searchlogins(out unsigned long count, in nsipropertybag matchdata, [retval, array, size_is(count)] out nsilogininfo logins); void setloginsavingenabled(in astring ahost, in boolean isenabled); attributes attribute type description uibusy boolean true when a master password prompt is being shown...
... getloginsavingenabled() implement to re
port whether or not login saving has been disabled for a specific host.
...void modifylogin( in nsilogininfo oldlogin, in nsisup
ports newlogindata ); parameters oldlogin the login to be modified.
nsIMsgSearchSession
searchsession.addscopeterm(components.interfaces.nsmsgsearchscope.offlinemail, afolder); var searchterm = searchsession.createterm(); var value = searchterm.value; value.str = avalue; searchterm.value = value; searchterm.op = searchsession.booleanor; searchterm.booleanand = false; searchsession.appendterm(searchterm); searchsession.search(null); inherits from: nsisup
ports method overview void addsearchterm(in nsmsgsearchattribvalue attrib, in nsmsgsearchopvalue op, in nsimsgsearchvalue value, in boolean booleanand, in string arbitraryheader); nsimsgsearchterm createterm(); void appendterm(in nsimsgsearchterm term); void registerlistener(in nsimsgsearchnotify listener); void unregisterlistener(in nsimsgsearchnotify li...
...ipt] nsmsgsearchtype setsearchparam(in nsmsgsearchtype type, in voidptr param); [noscript] void addresultelement(in nsmsgresultelement element); boolean matchhdr(in nsimsgdbhdr amsghdr, in nsimsgdatabase adatabase); void addsearchhit(in nsimsgdbhdr header, in nsimsgfolder folder); attributes attribute type description searchterms nsisup
portsarray readonly: numsearchterms unsigned long readonly: runningadapter nsimsgsearchadapter readonly: searchparam voidptr not scriptable and readonly: searchtype nsmsgsearchtype readonly: numresults long readonly: window nsimsgwindow constants name value description b...
...it informs the fe if the current scope sup
port custom header use.
... fes should not display the custom header dialog if custom headers are not sup
ported.
nsINavBookmarkObserver
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 21.0 (firefox 21.0 / thunderbird 21.0 / seamonkey 2.18) method overview void onbeforeitemremoved(in long long aitemid, in unsigned short aitemtype, in long long aparentid, in acstring aguid, in acstring aparentguid); obsolete since gecko 21.0 void onbeginupdatebatch(); void onendupdatebatch(); void onfolderadded(in print64 folder, in print64 parent, in print32 index); obsolete since gecko 1.9 void onfolderchanged(in print64 folder, in acstring property); obsolete since gecko 1.9 void onfoldermoved(in print64 fol...
...note: the re
ported time is the time of the visit that was added, which may be well in the past since the visit time can be specified.
... using onbeforeitemremoved() in gecko 1.9.1 if you wish to sup
port onbeforeitemremoved() in applications based on gecko 1.9.1, you must implement your observer's queryinterface() method to match on both nsinavbookmarkobserver and nsinavbookmarkobserver_mozilla_1_9_1_additions, as shown below.
... queryinterface: function(iid) { if (iid.equals(ci.nsinavbookmarkobserver) || iid.equals(ci.nsinavbookmarkobserver_mozilla_1_9_1_additions) || iid.equals(ci.nsisup
ports)) { return this; } throw cr.ns_error_no_interface; } see also places manipulating bookmarks using places nsinavbookmarksservice ...
nsINavHistoryObserver
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 21.0 (firefox 21.0 / thunderbird 21.0 / seamonkey 2.18) warning: if you are in the middle of a batch transaction, there may be a database transaction active.
...it's im
portant to note that there is a difference between an empty title and a null title.
... using onbeforedeleteuri() in gecko 1.9.1 if you wish to sup
port onbeforedeleteuri() in applications based on gecko 1.9.1, you must implement your observer's queryinterface() method to match on both nsinavhistoryobserver and nsinavhistoryobserver_mozilla_1_9_1_additions, as shown below.
... queryinterface: function(iid) { if (iid.equals(ci.nsinavhistoryobserver) || iid.equals(ci.nsinavhistoryobserver_mozilla_1_9_1_additions) || iid.equals(ci.nsisup
ports)) { return this; } throw cr.ns_error_no_interface; } see also nsinavhistoryresult ...
nsINetworkLinkService
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) implemented by: @mozilla.org/network/network-link-service;1 as a service: var networklinkservice = components.classes["@mozilla.org/network/network-link-service;1"] .getservice(components.interfaces.nsinetworklinkservice); attributes attribute type description islinkup boolean this is set to true when the system is believed to have a usable network connection.
...android sup
port was backed out due to perceived security concerns, see bug 691054.
... as of gecko 28.0 android sup
port is available again, see bug 939680.
... link_type_usb 2 a connection via a usb
port.
nsIObserverService
inherits from: nsisup
ports last changed in gecko 0.9.6 the xpcom nsobserverservice implements this interface to provide global notifications for a variety of subsystems.
...service;1 as a service: var observerservice = components.classes["@mozilla.org/observer-service;1"] .getservice(components.interfaces.nsiobserverservice); method overview void addobserver( in nsiobserver anobserver, in string atopic, in boolean ownsweak); nsisimpleenumerator enumerateobservers( in string atopic ); void notifyobservers( in nsisup
ports asubject, in string atopic, in wstring somedata ); void removeobserver( in nsiobserver anobserver, in string atopic ); methods addobserver() registers a given listener for a notifications regarding the specified topic.
...if set to true and anobserver sup
ports the nsisup
portsweakreference interface, a weak reference will be held.
... void notifyobservers( in nsisup
ports asubject, in string atopic, in wstring somedata ); parameters asubject a notification specific interface pointer.
nsIPrintingPrompt
inherits from: nsisup
ports last changed in gecko 1.7 this interface is identical to nsipintingpromptservice but without the parent nsidomwindow parameter.
... windows: the gfx layer no longer sup
ports default toolkit behavior for displaying the native print dialog.
... defaults for platform service: showprintdialog - displays a native dialog showpagesetup() - displays a xul dialog showprogress() - displays a xul dialog summary for windows embedders: stated once again: there is no "fallback" native platform sup
port in gfx for the displaying of the native print dialog.
... mac: the gfx layer still sup
ports default toolkit behavior for displaying the print dialog.
nsIProperties
inherits from: nsisup
ports last changed in gecko 1.2 implemented by: @mozilla.org/file/directory_service;1.
... properties = components.classes["@mozilla.org/file/directory_service;1"] .getservice(components.interfaces.nsiproperties); method overview void get(in string prop, in nsiidref iid, [iid_is(iid),retval] out nsqiresult result); void getkeys(out pruint32 count, [array, size_is(count), retval] out string keys); boolean has(in string prop); void set(in string prop, in nsisup
ports value); void undefine(in string prop); methods get() gets the xpcom object associated with a particular name.
...ns_error_no_interface if the property exists, but does not sup
port the requested interface.
...void set( in string prop, in nsisup
ports value ); parameters prop the property name.
nsIPushSubscription
inherits from: nsisup
ports last changed in gecko 46.0 (firefox 46.0 / thunderbird 46.0 / seamonkey 2.43) each subscription is associated with a unique url generated by the push service.
...the following key names are sup
ported: p256dh the ecdh public key, used as the input keying material in the hkdf invocation during encryption.
...nst pushservice = cc["@mozilla.org/push/service;1"] .getservice(ci.nsipushservice); function sendsubscriptiontoserver(subscription) { let request = cc["@mozilla.org/xmlextras/xmlhttprequest;1"] .createinstance(ci.nsixmlhttprequest); request.open("post", "https://example.com/register-for-push", true); request.addeventlistener("error", () => { cu.re
porterror("error sending subscription to server"); }); request.send(json.stringify({ endpoint: subscription.endpoint, // base64-encode the key and authentication secret.
... 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.re
porterror("error creating subscription: " + code); } else { sendsubscriptiontoserver(subscription); } } ); see also nsipushservice nsipushmessage pushsubscription ...
nsIResumableChannel
netwerk/base/public/nsiresumablechannel.idlscriptable this interface is meant to be implemented by the channels that sup
port resuming broken downloads (for example necko's html and ftp channels).
... inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void asyncopenat(in nsistreamlistener listener, in nsisup
ports ctxt, in unsigned long startpos, in nsiresumableentityid entityid); obsolete since gecko 1.8 void resumeat(in unsigned long long startpos, in acstring entityid); attributes attribute type description entityid acstring the entity id for this uri.
...void asyncopenat( in nsistreamlistener listener, in nsisup
ports ctxt, in unsigned long startpos, in nsiresumableentityid entityid ); parameters listener as for asyncopen.
...during onstartrequest, this channel will have a status of ns_error_not_resumable if the file cannot be resumed, for example because the server doesn't sup
port this.
nsISHistory
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) in an embedded browser environment, the nsiwebbrowser object creates an instance of session history for each open window.
...the object returned by this step is of type nsisup
ports.
...note: a listener object must implement nsishistorylistener and nssup
portsweakreference.
...note: a listener object must implement nsishistorylistener and nssup
portsweakreference.
nsIScreen
inherits from: nsisup
ports last changed in gecko 13.0 (firefox 13.0 / thunderbird 13.0 / seamonkey 2.10) use nsiscreenmanager to obtain references to screens.
...this will only have an effect on platforms that sup
port screen rotation.
... gecko 1.9.2 note starting in gecko 1.9.2, gecko running on microsoft windows re
ports 24 bits per pixel instead of 32 bits per pixel on 8-bits per color component displays, since this is typically what the caller is actually looking for.
... methods getavailrect() returns a rectangle indicating the
portion of the screen that is available for use.
nsISmsService
dom/sms/interfaces/nsismsservice.idlscriptable used to send sms text messages for the websms api 1.0 66 introduced gecko 13.0 inherits from: nsisup
ports last changed in gecko 15.0 (firefox 15.0 / thunderbird 15.0 / seamonkey 2.12) implemented by: @mozilla.org/sms/smsservice;1.
...smsservice;1"] .createinstance(components.interfaces.nsismsservice); method overview [implicit_jscontext] nsidommozsmsmessage createsmsmessage(in long id, in domstring delivery, in domstring sender, in domstring receiver, in domstring body, in jsval timestamp, in bool read ); unsigned short getnumberofmessagesfortext(in domstring text); boolean hassup
port(); void send(in domstring number, in domstring message, in long requestid, [optional] in unsigned long long processid); methods createsmsmessage() [implicit_jscontext] nsidommozsmsmessage createsmsmessage( in long id, in domstring delivery, in domstring sender, in domstring receiver, in domstring body, in jsval timestamp, in bool read ); parameters id a numbe...
... hassup
port() checks if the current platform has sms sup
port.
... boolean hassup
port(); return value boolean.
nsIStandardURL
it sup
ports initialization from a relative path and provides some customization on how urls are normalized.
...to create an instance, use: var standardurl = components.classes["@mozilla.org/network/standard-url;1"] .createinstance(components.interfaces.nsistandardurl); method overview void init(in unsigned long aurltype, in long adefault
port, in autf8string aspec, in string aorigincharset, in nsiuri abaseuri); attributes attribute type description mutable boolean control whether or not this url can be modified.
...void init( in unsigned long aurltype, in long adefault
port, in autf8string aspec, in string aorigincharset, in nsiuri abaseuri ); parameters aurltype one of the constants listed above.
... adefault
port if the
port parsed from the url string matches this
port, then the
port will be removed from the canonical form of the url.
nsITelemetry
1.0 66 introduced gecko 6.0 inherits from: nsisup
ports last changed in gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4) implemented by: @mozilla.org/base/telemetry;1 as a service: let telemetry = components.classes["@mozilla.org/base/telemetry;1"] .getservice(components.interfaces.nsitelemetry); method overview jsval gethistogrambyid(in acstring id); jsval snapshothistograms(in uint32_t adataset, in boolean asubsession, in boolean aclear); jsval getkeyedhistogrambyid(in acstring id); void capturestack(in acstring name); jsval ...
...snapshotcapturedstacks([optional] in boolean clear); nsisup
ports getloadedmodules(); jsval snapshotkeyedhistograms(in uint32_t adataset, in boolean asubsession, in boolean aclear); void sethistogramrecordingenabled(in acstring id, in boolean enabled); void asyncfetchtelemetrydata(in nsifetchtelemetrydatacallback acallback); double mssinceprocessstart(); void scalaradd(in acstring aname, in jsval avalue); void scalarset(in acstring aname, in jsval avalue); void scalarsetmaximum(in acstring aname, in jsval avalue); jsval snapshotscalars(in uint32_t adataset, [optional] in boolean aclear); void keyedscalaradd(in acstring aname, in astring akey, in jsval avalue); void keyedscalarset(in acstring ana...
...this is true if the fhr data re
porting service or the self-sup
port service is enabled.
... see also bug 649502 - expose histograms to js bug 585196 - telemetry infrastructure bug 668312 - re
port only probes defined in histograms.json bug 1069874 - add keyed histogram types bug 1426453 - documentation of nsitelemetry not up to date ...
nsIVariant
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview acstring getasacstring(); native code only!
... nsisup
ports getasisup
ports(); native code only!
...native code only!getasinterface void getasinterface( out nsiidptr iid, [iid_is(iid), retval] out nsqiresult iface ); parameters iid the iid of the interface pointer, or nsisup
ports if no iid was provided.
...(the reference count of the object is incremented.) native code only!getasisup
ports nsisup
ports getasisup
ports(); parameters none.
nsIWorkerMessageEvent
1.0 66 introduced gecko 1.9.1 inherits from: nsidomevent last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) method overview void initmessageevent(in domstring atypearg, in boolean acanbubblearg, in boolean acancelablearg, in domstring adataarg, in domstring aoriginarg, in nsisup
ports asourcearg); attributes attribute type description data domstring the event's data.
... source nsisup
ports the event's source.
... void initmessageevent( in domstring atypearg, in boolean acanbubblearg, in boolean acancelablearg, in domstring adataarg, in domstring aoriginarg, in nsisup
ports asourcearg ); parameters atypearg the event type.
... see also using web workers nsiworkermessage
port nsiworkerglobalscope nsiworkerscope nsiabstractworker nsiworker ...
nsIXULTemplateBuilder
a query processor is not required to provide any sup
port for updating results after they have been generated.
... last changed in gecko 1.9 (firefox 3) inherits from: nsisup
ports method overview void rebuild(); void refresh(); void addresult(in nsixultemplateresult aresult, in nsidomnode aquerynode); void removeresult(in nsixultemplateresult aresult); void replaceresult(in nsixultemplateresult aoldresult, in nsixultemplateresult anewresult, in nsidomnode aquerynode); void resultbindingchanged(in nsixultemplateresult aresult); nsixultemplateresult getresultforid(in astring aid); nsixultemplateresult getresultforcontent(in nsidomelement aelement); boolean hasgeneratedcontent(in nsirdfresource anode, in nsiatom atag); void ...
... datasource nsisup
ports the opaque datasource object that is used for the template.
...refresh() reloads any rdf datasources that sup
port nsirdfremotedatasource.
nsIXULTemplateResult
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) each result is identified by an id, which must be unique within the set of results produced from a query.
...method overview astring getbindingfor(in nsiatom avar); nsisup
ports getbindingobjectfor(in nsiatom avar); void hasbeenremoved(); void rulematched(in nsisup
ports aquery, in nsidomnode arulenode); attributes attribute type description id astring id of the result.
...nsisup
ports getbindingobjectfor( in nsiatom avar ); parameters avar the variable to look up.
...void rulematched( in nsisup
ports aquery, in nsidomnode arulenode ); parameters aquery the query that matched.
nsIZipReader
inherits from: nsisup
ports last changed in gecko 10.0 (firefox 10.0 / thunderbird 10.0 / seamonkey 2.7) implemented by: @mozilla.org/libjar/zip-reader;1.
... starting in gecko 10.0 (firefox 10.0 / thunderbird 10.0 / seamonkey 2.7), the nsizipreader api sup
ports a limited 8 bit code page usage.
...change "
portabletester@jetpack.xpi" to the name of a xpi file in your extensions folder.
... var zr = cc["@mozilla.org/libjar/zip-reader;1"].createinstance(ci.nsizipreader); cu.im
port('resource://gre/modules/osfile.jsm'); cu.im
port('resource://gre/modules/fileutils.jsm'); var reusablestreaminstance = cc['@mozilla.org/scriptableinputstream;1'].createinstance(ci.nsiscriptableinputstream); var pathtoxpitoread = os.path.join(os.constants.path.profiledir, 'extensions', '
portabletester@jetpack.xpi'); var nsifilexpi = new fileutils.file(pathtoxpitoread); //services.ww.activewindow.alert(pathtoxpitoread); try { zr.open(nsifilexpi); //if file dne it throws here var entries = zr.findentries('*'); //we use asterik because we want everything listed out while (entr...
Troubleshooting XPCOM components registration
it is im
portant to not misdiagnose the problem.
... registration failure if the module is loading correctly but doesn't register its components, try adding calls to components.utils.re
porterror("debug me!"); in nsgetmodule() and other functions to try and find any errors.
... also check that the function nsgetmodule is ex
ported.
... this even means that if you are using a component stub, the stub needs to be compiled using a version which the machine does sup
port; most likely this means msvc 6.0.
Frequently Asked Questions
comparing an nscomptr to a raw xpcom interface pointer declaring an nscomptr to a forward-declared class not linking to xpcom not including nscomptr.h different settings of nscap_feature_debug_ptr_types runtime errors ns_assertion "queryinterface needed" may be caused by a class that derives from a given interface, when you forgetting to also specify the interface name in the ns_impl_isup
ports / ns_impl_threadsafe_isup
ports macro.
...if it didn't, you should probably re
port it as a bug.
... interface pointers considered harmful by don box originally appeared in the september 1995 issue of "the c++ re
port".
... com smart pointers even more harmful by don box is a follow-up article that originally appeared in the february 1996 issue of "the c++ re
port".
Using nsIDirectoryService
customizing the locations is im
portant if, for example, your application already has a profile directory or other resource directories.
...this object has to implement the nsisup
ports and nsidirectoryserviceprovider interfaces.
...if you are registering it yourself it is very im
portant to register it immediately after calling ns_initxpcom.
...related pages code_snippets:file_i/o original document information authors: conrad carlen, doug turner last updated date: september 26, 2000 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
XPCOM
this can create a difficult situation for extension developers trying to sup
port multiple gecko versions (firefox 2 and 3, for example).creating a python xpcom componentcreating applications with mozilla already provides a tutorial for making a simple javascript or c++ component (implementing the nsisimple interface).
...in addition to the actual content, some im
portant information is passed with http headers for both http requests and responses.storagestorage is a sqlite database api.
...
porting this code is required in order to make mozilla run on any given platform.xptcall
porting guideoriginal author: john bandhauer, 31 may 1999.xptcall
porting statusthis is a status page for the multiplatform
porting of xptcall.
... xptcall has a faq and a
porting guide.
Mozilla technologies
accessibility api implementation detailsthese pages contain documentation on mozilla specific implementation details of assistive technology apis.animated png graphicsapng is an extension of the
portable network graphics (png) format, adding sup
port for animated images.
...starting with mozilla 1.9, it was phased out in favor of sqlite, a more widely-sup
ported file format.placesplaces is the bookmarks and history management system introduced in firefox 3.
...it has multiple language bindings, allowing xpcom components to be used and implemented in javascript, java, and python in addition to c++.xpidlxpidl is an interface description language used to specify xpcom interface classes.xray visiongecko runs javascript from a variety of different sources and at a variety of different privilege levels.xslt 2.0although xslt 2.0 is not natively sup
ported in firefox, it is possible via saxon-b (java) or, more recently, saxon-ce (javascript) to perform xslt 2.0.xtfthe extensible tag framework (xtf) allows adding sup
port for new namespaces using xpcom components to mozilla (written in javascript or c++).
... for example, the mozilla xforms project uses xtf to add sup
port for the xforms namespace.
Using COM from js-ctypes
basis and reference for this article bugzilla :: bug 738501 - implement ability to create windows shortcuts from javascript - comment 4 relavent topic bugzilla :: bug 505907 - sup
port c++ calling from jsctypes converting com code to c code to convert com code to js-ctypes, we need to write c++ vtable pointers in c.
...long* pulstreamnumber); void* speakstream; void* getstatus; void* skip; void* setpriority; void* getpriority; void* setalertboundary; void* getalertboundary; void* setrate; void* getrate; void* setvolume; void* getvolume; void* waituntildone; void* setsyncspeaktimeout; void* getsyncspeaktimeout; void* speakcompleteevent; void* isuisup
ported; void* displayui; /* end ispvoice */ }; int main(void) { if (succeeded(coinitialize(null))) { struct myispvoice* pvoice = null; hresult hr = cocreateinstance(&clsid_spvoice, null, clsctx_all, &iid_ispvoice, (void**)&pvoice); if (succeeded(hr)) { pvoice->lpvtbl->speak(pvoice, l"hello, firefox!", sp...
... let { ctypes } = components.utils.im
port("resource://gre/modules/ctypes.jsm", {}); // some groundwork let is64bit; if (ctypes.voidptr_t.size == 4 /* 32-bit */) { is64bit = false; } else if (ctypes.voidptr_t.size == 8 /* 64-bit */) { is64bit = true; } let winabi = is64bit ?
... { 'getalertboundary': ctypes.voidptr_t }, { 'setrate': ctypes.voidptr_t }, { 'getrate': ctypes.voidptr_t }, { 'setvolume': ctypes.voidptr_t }, { 'getvolume': ctypes.voidptr_t }, { 'waituntildone': ctypes.voidptr_t }, { 'setsyncspeaktimeout': ctypes.voidptr_t }, { 'getsyncspeaktimeout': ctypes.voidptr_t }, { 'speakcompleteevent': ctypes.voidptr_t }, { 'isuisup
ported': ctypes.voidptr_t }, { 'displayui': ctypes.voidptr_t } // end ispvoice ]); // functions // http://msdn.microsoft.com/en-us/library/windows/desktop/ms695279%28v=vs.85%29.aspx let coinitializeex = lib.declare('coinitializeex', winabi, hresult, // result lpvoid, // pvreserved dword // dwcoinit ); // http://msdn.microsoft.com/en-us/library/windows/desktop/ms68871...
js-ctypes reference
it is obtained by by loading the ctypes module: components.utils.im
port("resource://gre/modules/ctypes.jsm"); you can use the ctypes object to load libraries, construct types, and perform miscellaneous tasks such as type casting.
... types and data to use js-ctypes effectively, it is im
portant to understand the different kinds of objects that the module provides.
... out of the box, js-ctypes sup
ports a number of predefined types.
... other features error-handling js-ctypes sup
ports both errno (on all platforms) and getlasterror (on windows platforms).
Plugins
im
portant: plugins are a legacy technology that are a security and performance problem for firefox (and other browser) users.
... they may not be sup
ported in the future.
... roadmap plugin roadmap information about the roadmap for adobe flash and other plugin sup
port in firefox.
... starting with firefox 56 in september 2017, firefox for android will remove all sup
port for plugins (bug 1381916).
Debugger.Source - Firefox Developer Tools
a debugger.source instance may represent only a
portion of a larger source document.
... please note at the time of this writing, sup
port for webassembly is very preliminary.
... the url may be passed to the worker web worker constructor, or the web worker im
portscripts function.
... "im
portscripts", for code by calling im
portscripts in a web worker.
Debugger - Firefox Developer Tools
code coverage re
ports are monotone, thus one can take a snapshot when the debugger is enabled, and output the difference.
... spidermonkey only calls onenterframe to re
port visible, non-"debugger" frames.
... onerror(frame,re
port) spidermonkey is about to re
port an error inframe.re
port is an object describing the error, with the following properties: message the fully formatted error message.
...the intent is to sup
port interactive compilation - accumulate lines in a buffer until iscompilableunit is true, then pass it to the compiler.
Edit fonts - Firefox Developer Tools
variable font sup
port in firefox developer tools firefox 62 added sup
port for variable fonts and firefox 63 features sup
port for editing the properties of variable fonts in the font editor.
...for example, font-weight can be set to any value between 1 and 1000 in variable fonts (although it is not guaranteed that a variable font will sup
port this entire range).
...the im
portant takeaway here is that axis tags are case-sensitive.
...for example linux oses need the latest linux freetype version, and macos prior to 10.13 does not sup
port variable fonts.
about:debugging - Firefox Developer Tools
at the moment it sup
ports three main sorts of targets: restartless add-ons, tabs, and workers.
... setup tab connecting to a remote device firefox sup
ports debugging over usb with android devices, using the about:debugging page.
... enter the location and
port on which the debugger server is running.
...id is updated to a newer major release, in synch with desktop firefox, you should use one of the following firefox for android versions: firefox preview, if your desktop firefox is the main release or developer edition firefox for android nightly if you prefer to test with the main release of firefox for android (i.e., based on release 68), you can do so with the desktop firefox extended sup
port release (esr), which is also based on version 68.
AudioContext() - Web APIs
the value may be any value sup
ported by audiobuffer.
... exceptions notsup
portederror the specified samplerate isn't sup
ported by the context.
... usage notes the specification doesn't go into a lot of detail about things like how many audio contexts a user agent should sup
port, or minimum or maximum latency requirements (if any), so these details can vary from browser to browser.
... google chrome per-tab audio context limitation in chrome prior to version 66 google chrome only sup
ported up to six audio contexts per tab at a time.
Background Tasks API - Web APIs
because event handling and screen updates are two of the most obvious ways users notice performance issues, it's im
portant for your code to be a good citizen of the web and help to prevent stalls in the execution of the event loop.
... falling back to settimeout because the background tasks api is fairly new, your code may need to be able to work on browsers that don't yet sup
port it.
... now your code will work even on browsers that don't sup
port the background tasks api, albeit not as efficiently.
... statusrefreshscheduled is used to track whether or not we've already scheduled an update of the status display box for the upcoming frame, so that we only do it once per frame the shim to function even if idle callbacks aren't sup
ported.
BiquadFilterNode() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbiquadfilternode() constructorchrome full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port ...
... 42notes full sup
port 42notes notes before opera 46, the default values were not sup
ported.safari ?
... webview android full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.chrome android full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.firefox android full sup
port 53opera android full sup
port 42notes full sup
port 42notes notes before opera 46, the default values were not sup
ported.safari ios ?
... samsung internet android full sup
port 6.0notes full sup
port 6.0notes notes before samsung internet 7.0, the default values were not sup
ported.legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownsee implementation notes.see implementation notes.
CSSStyleSheet.insertRule() - Web APIs
if trying to insert an @im
port at-rule after a style rule, the method aborts with a hierarchyrequesterror.
... if rule is @namespace and the rule-list has more than just @im
port at-rules and/or @namespace at-rules, the method aborts with an invalidstateerror.
... * @param {array} rules accepts an array of json-encoded declarations * @example addstylesheetrules([ ['h2', // also accepts a second argument as an array of arrays instead ['color', 'red'], ['background-color', 'green', true] // 'true' for !im
portant rules ], ['.myclass', ['background-color', 'yellow'] ] ]); */ function addstylesheetrules (rules) { var styleel = document.createelement('style'); // append <style> element to <head> document.head.appendchild(styleel); // grab style element's sheet var stylesheet = styleel.sheet; for (var i = 0; i < rules.length; i++) { var j = 1, rule = rules[i], s...
...' !im
portant' : '') + ';\n'; } // insert css rule stylesheet.insertrule(selector + '{' + propstr + '}', stylesheet.cssrules.length); } } polyfill the below polyfill will correct the input of the arguments of insertrule() to standardize them in internet explorer 5–8.
Using the CSS Painting API - Web APIs
.fancy { background-image: paint(headerhighlight); } putting it together we can then add the fancy class to any element on the page to add a yellow box as a background: <h1 class="fancy">my cool header</h1> the following example will look like the image above in browsers sup
porting the css painting api.
...it would be better if the background image was relative to the size of the element — we can use the element's paintsize property to ensure the background image is pro
portional to the size of the element's box model size.
... in the above image, the background pro
portional to the size of the element.
... in browsers that sup
port the css paint api, the example below should appear like the image above.
console - Web APIs
number formatting is sup
ported, for example console.log("foo %.2d", 1.1) will output the number as two significant figures with a leading 0: foo 01 %s outputs a string.
...formatting is sup
ported, 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.
... note: it's im
portant to note that if you're using this to log the timing for network traffic, the timer will re
port the total time for the transaction, while the time listed in the network panel is just the amount of time required for the header.
... stack traces the console object also sup
ports outputting a stack trace; this will show you the call path taken to reach the point at which you call console.trace().
ConvolverNode() - Web APIs
exceptions exception explanation notsup
portederror the referenced audiobuffer does not have the correct number of channels, or it has a different sample rate to the associated audiocontext.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetconvolvernode() constructorchrome full sup
port 55edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port 42safari ?
... webview android full sup
port 55chrome android full sup
port 55firefox android full sup
port 53opera android full sup
port 42safari ios ?
... samsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknown ...
CryptoKey - Web APIs
the cryptokey interface of the web crypto api represents a cryptographic key obtained from one of the subtlecrypto methods generatekey(), derivekey(), im
portkey(), or unwrapkey().
... cryptokey.extractable boolean indicating whether or not the key may be extracted using subtlecrypto.ex
portkey() or subtlecrypto.wrapkey().
...ex
portkey() or wrapkey() will throw an exception if used to extract this key.
...for example: subtlecrypto.generatekey() subtlecrypto.derivekey() subtlecrypto.im
portkey() subtlecrypto.ex
portkey() subtlecrypto.wrapkey() subtlecrypto.unwrapkey() subtlecrypto.encrypt() subtlecrypto.decrypt() subtlecrypto.sign() subtlecrypto.verify() specifications specification status comment web cryptography apithe definition of 'cryptokey' in that specification.
DOMMatrixReadOnly.scale() - Web APIs
note: at time of writing, firefox still sup
ports an older version of the specification that accepts either one or three values.
... dommatrix.scale(scale[, originx][, originy]) we'll show an example of how you can deal with the cross-browser sup
port implications of this in the examples section, below.
... we test if the browser sup
ports a six parameter scale() method by creating a new matrix using three parameters and observing it's is2d property — if this is false then the third parameter has been accepted by the browser as a scalez parameter, making this a 3d matrix.
... we then create a new matrix scaled about a given origin, using either three or six parameters depending on the browser sup
port.
Document.evaluate() - Web APIs
(in this example, the "." is im
portant to indicate that the querying should start from the context node, document.body.
... these are sup
ported values for the resulttype parameter of the evaluate method: result type value description any_type 0 whatever type naturally results from the given expression.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetevaluatechrome full sup
port 1edge full sup
port 12firefox full sup
port 1.5ie no sup
port noopera full sup
port 9safari full sup
port 5webview android full suppor...
...t 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 4.2samsung internet android full sup
port 1.0legend full sup
port full sup
port no sup
port no sup
port see also document.createexpression() xpathresult xpath code snippets check for browser sup
port ...
Document - Web APIs
document.im
portnode() returns a clone of a node from an external document.
... document.querycommandsup
ported() returns true if the formating command is sup
ported on the current range.
...starting with internet explorer 11, that property is no longer sup
ported.
... internet explorer does not sup
port all methods from the node interface in the document interface: document.contains as a work-around, document.body.contains() can be used.
Introduction to the DOM - Web APIs
for example, the html dom api adds sup
port for representing html documents to the core dom.
...though we focus exclusively on javascript in this reference documentation, implementations of the dom can be built for any language, as this python example demonstrates: # python dom example im
port xml.dom.minidom as m doc = m.parse(r"c:\projects\py\chap1.xml") doc.nodename # dom property of document object p_list = doc.getelementsbytagname("para") for more information on what technologies are involved in writing javascript on the web, see javascript technologies overview.
... <html> <head> <title>dom tests</title> <script> function setbodyattr(attr, value) { if (document.body) document.body[attr] = value; else throw new error("no sup
port"); } </script> </head> <body> <div style="margin: .5in; height: 400px;"> <p><b><tt>text</tt></b></p> <form> <select onchange="setbodyattr('text', this.options[this.selectedindex].value);"> <option value="black">black</option> <option value="red">red</option> </select> <p><b><tt>bgcolor</tt></b></p> <select onchange="setbodyattr('bgco...
...however, you design your test pages, testing the interfaces as you read about them is an im
portant part of learning how to use the dom effectively.
DynamicsCompressorNode() - Web APIs
knee: a decibel value representing the range above the threshold where the curve smoothly transitions to the "ratio"
portion.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdynamicscompressornode() constructorchrome full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port ...
... webview android full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.chrome android full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.firefox android full sup
port 53opera android full sup
port 42safari ios ?
... samsung internet android full sup
port 6.0notes full sup
port 6.0notes notes before samsung internet 7.0, the default values were not sup
ported.legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownsee implementation notes.see implementation notes.
Element.currentStyle - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcurrentstyle non-standardchrome no sup
port noedge no sup
port nofirefox no sup
port noie full sup
port 6opera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portnon-standard.
... expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.
Element.runtimeStyle - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetruntimestyle non-standardchrome no sup
port noedge no sup
port nofirefox no sup
port noie full sup
port 6opera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portnon-standard.
... expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.
Element.scrollLeftMax - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollleftmax non-standardchrome no sup
port noedge no sup
port nofirefox full sup
port 16ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android full sup
port 16opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portnon-standard.
... expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.
FederatedCredential.protocol - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetprotocol experimentalchrome full sup
port 51edge full sup
port ≤79firefox ?
... opera full sup
port yessafari ?
... webview android full sup
port 51chrome android full sup
port 51firefox android ?
... samsung internet android full sup
port 5.0legend full sup
port full sup
port compatibility unknown compatibility unknownexperimental.
FederatedCredential.provider - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetprovider experimentalchrome full sup
port 51edge full sup
port ≤79firefox ?
... opera full sup
port yessafari ?
... webview android full sup
port 51chrome android full sup
port 51firefox android ?
... samsung internet android full sup
port 5.0legend full sup
port full sup
port compatibility unknown compatibility unknownexperimental.
FileException - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfileexception deprecatednon-standardchrome no sup
port 13 — 29prefixed no sup
port 13 — 29prefixed prefixed implemented with the vendor prefix: webkitedge no sup
port nofirefox no sup
port noie no sup
port noopera no sup
port nosafari ...
... no sup
port nowebview android no sup
port nochrome android no sup
port 18 — 29prefixed no sup
port 18 — 29prefixed prefixed implemented with the vendor prefix: webkitfirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port 1.0 — 3.0prefixed no sup
port 1.0 — 3.0prefixed prefixed implemented with the vendor prefix: webkitlegend no sup
port no sup
portnon-standar...
...expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.deprecated.
FileSystemDirectoryEntry.getDirectory() - Web APIs
fileerror.type_mismatch_err the path specified is not a directory; it's probably a file, but might be an unsup
ported file descriptor such as a pipe; this depends on the user agent to some extent.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetdirectory experimentalchrome full sup
port 8edge full sup
port 79firefox full sup
port 50notes full sup
port 50notes notes in firefox, the errorcallback's input parameter is a domexception rather than a fileerror object.ie no sup
port n...
...oopera no sup
port nosafari full sup
port 11.1webview android full sup
port ≤37chrome android full sup
port 18firefox android full sup
port 50notes full sup
port 50notes notes in firefox, the errorcallback's input parameter is a domexception rather than a fileerror object.opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend ...
... full sup
port full sup
port no sup
port no sup
portexperimental.
FileSystemDirectoryEntry.getFile() - Web APIs
fileerror.type_mismatch_err the path specified is not a file; it's probably a directory, but might be an unsup
ported file descriptor such as a pipe; this depends on the user agent to some extent.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetfile experimentalchrome full sup
port 8edge full sup
port 79firefox full sup
port 50notes full sup
port 50notes notes in firefox, the errorcallback's input parameter is a domexception rather than a fileerror object.ie no sup
port n...
...oopera no sup
port nosafari full sup
port 11.1webview android full sup
port ≤37chrome android full sup
port 18firefox android full sup
port 50notes full sup
port 50notes notes in firefox, the errorcallback's input parameter is a domexception rather than a fileerror object.opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend ...
... full sup
port full sup
port no sup
port no sup
portexperimental.
FileSystemEntry.copyTo() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcopyto experimentaldeprecatednon-standardchrome full sup
port 8edge full sup
port 79firefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port ...
... ≤37chrome android full sup
port 18firefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
...expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.deprecated.
FileSystemEntry.getMetadata() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetmetadata experimentaldeprecatednon-standardchrome full sup
port 8edge full sup
port 79firefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port ...
... ≤37chrome android full sup
port 18firefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
...expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.deprecated.
FileSystemEntry.moveTo() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmoveto experimentaldeprecatednon-standardchrome full sup
port 8edge full sup
port 79firefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port ...
... ≤37chrome android full sup
port 18firefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
...expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.deprecated.
FileSystemEntry.remove() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetremove experimentaldeprecatednon-standardchrome full sup
port 8edge full sup
port 79firefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port ...
... ≤37chrome android full sup
port 18firefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
...expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.deprecated.
FileSystemFlags.create - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreate experimentalchrome full sup
port 13prefixed full sup
port 13prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port ≤79prefixed full sup
port ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox partial sup
port...
... 50notes partial sup
port 50notes notes for security reasons, firefox does not sup
port creating files.
... this option has no effect.ie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitfirefox android partial sup
port 50notes partial sup
port 50notes notes for security reasons, firefox does not sup
port cr...
...this option has no effect.opera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitlegend full sup
port full sup
port partial sup
port partial sup
port no sup
port no sup
portexperimental.
FileSystemFlags.exclusive - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetexclusive experimentalchrome full sup
port 13prefixed full sup
port 13prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port ≤79prefixed full sup
port ≤79prefixed prefixed implemented with the vendor prefix: webkitfirefox partial sup
port...
... 50notes partial sup
port 50notes notes for security reasons, firefox does not sup
port creating files.
... this option has no effect.ie no sup
port noopera no sup
port nosafari no sup
port nowebview android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitfirefox android partial sup
port 50notes partial sup
port 50notes notes for security reasons, firefox does not sup
port cr...
...this option has no effect.opera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yesprefixed full sup
port yesprefixed prefixed implemented with the vendor prefix: webkitlegend full sup
port full sup
port partial sup
port partial sup
port no sup
port no sup
portexperimental.
FontFaceSetLoadEvent.fontfaces - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfontfaces experimentalchrome full sup
port 35edge full sup
port ≤79firefox full sup
port yesie ?
... opera full sup
port 22safari ?
... webview android no sup
port nochrome android full sup
port 35firefox android full sup
port yesopera android full sup
port 22safari ios ?
... samsung internet android full sup
port 3.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
HTMLImageElement.currentSrc - Web APIs
the sizes attribute is provided to indicate that the image should be drawn at 50% of the document width if the view
port is under 400px wide; otherwise, the image is drawn at 90% width of the document.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcurrentsrc experimentalchrome full sup
port 45edge full sup
port 13firefox full sup
port 38 full sup
port 38 no sup
port 32 — 52disabled disabled from version 32 until version 52 (exclusive): this feature is behind the dom.image.srcset.enabled preference ...
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port yessafari full sup
port 10.1webview android full sup
port 45chrome android full sup
port 45firefox android full sup
port 38 full sup
port 38 no sup
port 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 true).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port 10.3samsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
HTMLImageElement.hspace - Web APIs
im
portant: this property is obsolete.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internethspacechrome full sup
port 1edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android ?
... safari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.loading - Web APIs
the htmlimageelement property loading is a string whose value provides a hint to the user agent that tells the browser how to handle loading images which are currently outside the window's visual view
port.
...for instance, if the user is scrolling through the document, a value of lazy will cause the image to only be loaded shortly before it will appear in the window's visual view
port.
... images whose loading attribute is set to lazy but are located within the visual view
port immediately upon initial page load are loaded as soon as the layout is known, but their loads do not delay the firing of the load event.
... that means that when load fires, it's possible that any lazy-loaded images located in the visual view
port may not yet be visible.
HTMLImageElement.lowSrc - Web APIs
im
portant: the lowsrc property is obsolete and should not be used.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetlowsrcchrome full sup
port 1edge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android ?
... samsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.name - Web APIs
im
portant: this property is deprecated and is only in the specification still for backward compatibility purposes.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnamechrome full sup
port 1edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android ?
... safari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.width - Web APIs
further, the sizes attribute is provided to specify the width at which the image should be drawn given the view
port's width.
... html specifically, for view
ports up to 400px wide, the image is drawn at a width of 200px; otherwise, it's drawn at 400px.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetwidthchrome full sup
port 1edge full sup
port 12firefox full sup
port yesie .html?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown ...
HTMLInputElement.webkitEntries - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetwebkitentries non-standardchrome full sup
port 13edge full sup
port ≤18firefox full sup
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full s...
...up
port ≤37chrome android full sup
port 18firefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portnon-standard.
... expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.
HTMLOutputElement - Web APIs
htmloutputelement.re
portvalidity() this method re
ports the problems with the constraints on the element, if any, to the user.
... when the problem is re
ported, the user agent may focus the element and change the scrolling position of the document or perform some other action that brings the element to the user's attention.
... user agents may re
port more than one constraint violation if this element suffers from multiple problems at once.
... if the element is not rendered, then the user agent may re
port the error for the running script instead of notifying the user.
HTMLTextAreaElement - Web APIs
re
portvalidity() this method re
ports the problems with the constraints on the element, if any, to the user.
...ut consectetur eros
porttitor nunc mollis ultrices.
... aenean
porttitor, purus sollicitudin viverra auctor, neque erat blandit sapien, sit amet tincidunt massa mi ac nibh.
... function checkrows(ofield, okeyevent) { var nkey = (okeyevent || /* old ie */ window.event || /* check is not sup
ported!
In depth: Microtasks and the JavaScript runtime environment - Web APIs
to sup
port this, it was necessary to find ways to allow for projects to escape the limitations of a single-threaded language.
... javascript execution contexts note: the details here are generally not im
portant to most javascript programmers.
... the event loop, then, drives everything that happens in the browser as it pertains to the interaction with the user, but more im
portantly for our purposes here, it is responsible for the scheduling and execution of every piece of code that runs within its thread.
... the difference between the task queue and the microtask queue is simple but very im
portant: when executing tasks from the task queue, the runtime executes each task that is in the queue at the moment a new iteration of the event loop begins.
Using microtasks in JavaScript with queueMicrotask() - Web APIs
this lets the given function run without the risk of interfering with another script's execution, yet also ensures that the microtask runs before the user agent has the op
portunity to react to actions taken by the microtask.
... using microtasks before getting farther into this, it's im
portant to note again that most developers won't use microtasks much, if at all.
...for instance, when using promises to create microtasks, exceptions thrown by the callback are re
ported as rejected promises rather than being re
ported as standard exceptions.
...the im
portant thing to take away from this one is that the microtask isn't processed when the function exits, but when the main program exits.
Ajax navigation example - Web APIs
age) { opageinfo.url = filterurl(spage, null); } oreq.open("get", filterurl(opageinfo.url, "json"), true); oreq.send(); oloadingbox.parentnode || document.body.appendchild(oloadingbox); } function requestpage (surl) { if (history.pushstate) { bupdateurl = true; getpage(surl); } else { /* ajax navigation is not sup
ported */ location.assign(surl); } } function processlink () { if (this.classname === sajaxclass) { requestpage(this.href); return false; } return true; } function init () { opageinfo.title = document.title; history.replacestate(opageinfo, opageinfo.title, opageinfo.url); for (var olink, nidx ...
...ml */ { 100: "continue", 101: "switching protocols", 102: "processing", 200: "ok", 201: "created", 202: "accepted", 203: "non-authoritative information", 204: "no content", 205: "reset content", 206: "partial content", 207: "multi-status", 208: "already re
ported", 226: "im used", 300: "multiple choices", 301: "moved permanently", 302: "found", 303: "see other", 304: "not modified", 305: "use proxy", 306: "reserved", 307: "temporary redirect", 308: "permanent redirect", 400: "bad request", 401: "unauthorized", ...
... 405: "method not allowed", 406: "not acceptable", 407: "proxy authentication required", 408: "request timeout", 409: "conflict", 410: "gone", 411: "length required", 412: "precondition failed", 413: "request entity too large", 414: "request-uri too long", 415: "unsup
ported media type", 416: "requested range not satisfiable", 417: "expectation failed", 422: "unprocessable entity", 423: "locked", 424: "failed dependency", 425: "unassigned", 426: "upgrade required", 427: "unassigned", 428: "precondition required", 429: "too many requests", ...
... 430: "unassigned", 431: "request header fields too large", 500: "internal server error", 501: "not implemented", 502: "bad gateway", 503: "service unavailable", 504: "gateway timeout", 505: "http version not sup
ported", 506: "variant also negotiates (experimental)", 507: "insufficient storage", 508: "loop detected", 509: "unassigned", 510: "not extended", 511: "network authentication required" }; var oreq, bisloading = false, bupdateurl = false; oloadingbox.id = "ajax-loader"; ocover.onclick = abortreq; oloadingimg.src = "data:image/gif;base64,r0lgodlheaaqapiaap///waaamlcwkjcqgaaagjiyokcgpkskih/c05fvfn...
IDBObjectStore.count() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcountchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitlegend ...
... full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBObjectStore.createIndex() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreateindexchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitlegend ...
... full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBObjectStore.deleteIndex() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdeleteindexchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitlegend ...
... full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBObjectStore.index() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetindexchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitlegend ...
... full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBObjectStore.openCursor() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetopencursorchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitlegend ...
... full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBObjectStore.put() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetputchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitlegend ...
... full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBOpenDBRequest.onblocked - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonblockedchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitlegend ...
... full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBOpenDBRequest.onupgradeneeded - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonupgradeneededchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitlegend ...
... full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBRequest.onerror - Web APIs
also included at the bottom is an onerror function that re
ports what the error was if the request fails.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonerrorchrome full sup
port 24 full sup
port 24 full sup
port 23prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port ...
... 16 no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBTransaction.commit() - Web APIs
examples // open a read/write db transaction, ready for adding the data var transaction = db.transaction(["mydb"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed: database modification finished.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
... duplicate items not allowed.</li>'; }; // create an object store on the transaction var objectstore = transaction.objectstore("myobjstore"); // add our newitem object to the object store var objectstorerequest = objectstore.add(newitem[0]); objectstorerequest.onsuccess = function(event) { // re
port the success of the request (this does not mean the item // has been stored successfully in the db - for that you need transaction.onsuccess) note.innerhtml += '<li>request successful.</li>'; }; // force the changes to be committed to the database asap transaction.commit(); specification specification status comment indexed database api draftthe definition of 'idbtransaction.commit()' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcommitchrome full sup
port 76edge full sup
port 79firefox full sup
port 74ie no sup
port noopera full sup
port 63safari no sup
port nowebview android full suppor...
...t 76chrome android full sup
port 76firefox android no sup
port noopera android full sup
port 54safari ios no sup
port nosamsung internet android full sup
port 12.0legend full sup
port full sup
port no sup
port no sup
port ...
IDBVersionChangeEvent.newVersion - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnewversionchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitlegend ...
... full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBVersionChangeEvent.oldVersion - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetoldversionchrome full sup
port 24 full sup
port 24 no sup
port 23 — 57prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — 57prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25 full sup
port 25 no sup
port 25 — 57prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5 full sup
port 1.5 no sup
port 1.5 — 7.0prefixed prefixed implemented with the vendor prefix: webkitlegend ...
... full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBVersionChangeRequest.setVersion() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsetversion deprecatednon-standardchrome no sup
port noedge no sup
port nofirefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend no sup
port no sup
portnon-standard.
... expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.deprecated.
IntersectionObserver.root - Web APIs
the intersectionobserver interface's read-only root property identifies the element or document whose bounds are treated as the bounding box of the view
port for the element which is the observer's target.
... if the root is null, then the bounds of the actual document view
port are used.
... syntax var root = intersectionobserver.root; value a element or document object whose bounding box is used as the bounds of the view
port for the purposes of determining how much of the target element is visible.
... if root is null, then the owning document is used as the root, and the bounds its view
port (that is, the visible area of the document) are used as the root bounds.
KeyboardEvent - Web APIs
this was implemented only by firefox, and is no longer sup
ported even there; instead, you should use the keyboardevent() constructor.
...num lock was sup
ported on some older laptop models (2007 models and older), but since then, macos hasn't sup
ported num lock even on external keyboards.
...gecko does sup
port the scroll lock key if an external keyboard which has an f14 key is connected.
...in the case of ui events, this is im
portant for security reasons, as it prevents scripts from simulating user actions that interact with the browser itself.
Location - Web APIs
anatomy of location html <span id="href" title="href"><span id="protocol" title="protocol">http:</span>//<span id="host" title="host"><span id="hostname" title="hostname">example.org</span>:<span id="
port" title="
port">8888</span></span><span id="pathname" title="pathname">/foo/bar</span><span id="search" title="search">?q=baz</span><span id="hash" title="hash">#bang</span></span> css html, body {height:100%;} html {display:table; width:100%;} body {display:table-cell; text-align:center; vertical-align:middle; font-family:georgia; font-size:230%; line-height:1em; white-space:nowrap;} [title] {p...
... location.host is a usvstring containing the host, that is the hostname, a ':', and the
port of the url.
... location.
port is a usvstring containing the
port number of the url.
... = document.createelement('a'); url.href = 'https://developer.mozilla.org:8080/search?q=url#search-results-close-container'; console.log(url.href); // https://developer.mozilla.org:8080/search?q=url#search-results-close-container console.log(url.protocol); // https: console.log(url.host); // developer.mozilla.org:8080 console.log(url.hostname); // developer.mozilla.org console.log(url.
port); // 8080 console.log(url.pathname); // /search console.log(url.search); // ?q=url console.log(url.hash); // #search-results-close-container console.log(url.origin); // https://developer.mozilla.org:8080 specifications specification status comment html living standardthe definition of 'location' in that specification.
MediaCapabilities.decodingInfo() - Web APIs
the mediacapabilities.decodinginfo() method, part of the media capabilities api, returns a promise with the tested media configuration's mediacapabilitiesinfo; this contains the three boolean properties sup
ported, smooth, and powerefficient, which describe whether decoding the media described would be sup
ported, smooth, and powerefficient.
... return value a promise fulfilling with a mediacapabilitiesinfo interface containing three boolean attributes: sup
ported smooth powerefficient exceptions a typeerror is raised if the mediaconfiguration passed to the decodinginfo() method is invalid, either because the type is not video or audio, the contenttype is not a valid codec mime type, the media decoding configuration is not a valid value for the media decoding type, or any other error in the media configuration passed to the method, including omittin...
... }, }; // check sup
port and performance navigator.mediacapabilities.decodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.sup
ported ?
... '' : 'not ') + 'sup
ported, ' + (result.smooth ?
MediaCapabilities.encodingInfo() - Web APIs
the mediacapabilities.encodinginfo() method, part of the mediacapabilities interface of the media capabilities api, returns a promise with the tested media configuration's mediacapabilitiesinfo; this contains the three boolean properties sup
ported, smooth, and powerefficient, which describe how compatible the device is with the type of media.
... return value a promise fulfilling with a mediacapabilitiesinfo interface containing three boolean attributes: sup
ported smooth powerefficient exceptions a typeerror is raised if the mediaconfiguration passed to the encodinginfo() method is invalid, either because the type is not video or audio, the contenttype is not a valid codec mime type, or any other error in the media configuration passed to the method, including omitting any of the media encoding configuration elements.
... } }; // check sup
port and performance navigator.mediacapabilities.encodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.sup
ported ?
... '' : 'not ') + 'sup
ported, ' + (result.smooth ?
MediaDevices.getDisplayMedia() - Web APIs
the mediadevices interface's getdisplaymedia() method prompts the user to select and grant permission to capture the contents of a display or
portion thereof (such as a window) as a mediastream.
... note: browser sup
port for audio tracks varies, both in terms of whether or not they're sup
ported at all by the media recorder and in terms of the which audio source or sourcoes are sup
ported.
...these unsup
ported constraints are advanced and any constraints which in turn have a member named min or exact.
...for that reason, the specification details measures browsers are required to take in order to fully sup
port getdisplaymedia().
MediaKeyStatusMap.get() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetget experimentalchrome full sup
port 42edge full sup
port 13firefox full sup
port yesie ?
... opera full sup
port 29safari ?
... webview android full sup
port 43chrome android full sup
port 42firefox android full sup
port yesopera android full sup
port 29safari ios ?
... samsung internet android full sup
port 4.0legend full sup
port full sup
port compatibility unknown compatibility unknownexperimental.
MediaKeyStatusMap.has() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internethas experimentalchrome full sup
port 42edge full sup
port 13firefox full sup
port yesie ?
... opera full sup
port 29safari ?
... webview android full sup
port 43chrome android full sup
port 42firefox android full sup
port yesopera android full sup
port 29safari ios ?
... samsung internet android full sup
port 4.0legend full sup
port full sup
port compatibility unknown compatibility unknownexperimental.
MediaKeyStatusMap.size - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsize experimentalchrome full sup
port 42edge full sup
port 13firefox full sup
port yesie ?
... opera full sup
port 29safari ?
... webview android full sup
port 43chrome android full sup
port 42firefox android full sup
port yesopera android full sup
port 29safari ios ?
... samsung internet android full sup
port 4.0legend full sup
port full sup
port compatibility unknown compatibility unknownexperimental.
MediaMetadata.album - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetalbum experimentalchrome full sup
port 57edge no sup
port nofirefox full sup
port 71ie no sup
port noopera full sup
port yessafari ?
... webview android no sup
port nochrome android full sup
port 57firefox android ?
... opera android no sup
port nosafari ios ?
... samsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
MediaMetadata.artist - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetartist experimentalchrome full sup
port 57edge no sup
port nofirefox full sup
port 71ie no sup
port noopera full sup
port yessafari ?
... webview android no sup
port nochrome android full sup
port 57firefox android ?
... opera android no sup
port nosafari ios ?
... samsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
MediaMetadata.artwork - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetartwork experimentalchrome full sup
port 57edge no sup
port nofirefox full sup
port 71ie no sup
port noopera full sup
port yessafari ?
... webview android no sup
port nochrome android full sup
port 57firefox android ?
... opera android no sup
port nosafari ios ?
... samsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
MediaMetadata.title - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettitle experimentalchrome full sup
port 57edge no sup
port nofirefox full sup
port 71ie no sup
port noopera full sup
port yessafari ?
... webview android no sup
port nochrome android full sup
port 57firefox android ?
... opera android no sup
port nosafari ios ?
... samsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
MediaRecorder - Web APIs
static methods mediarecorder.istypesup
ported() a static method which returns a boolean value indicating if the given mime media type is sup
ported by the current user agent.
... mediarecorder.onerror an eventhandler called to handle the error event, including re
porting errors that arise with media recording.
... error fired when an error occurs: for example because recording wasn't allowed or was attempted using an unsup
ported codec.
... example if (navigator.mediadevices) { console.log('getusermedia sup
ported.'); var constraints = { audio: true }; var chunks = []; navigator.mediadevices.getusermedia(constraints) .then(function(stream) { var mediarecorder = new mediarecorder(stream); visualize(stream); record.onclick = function() { mediarecorder.start(); console.log(mediarecorder.state); console.log("recorder started"); record.style.background = "red"; record.style.color = "black"; } stop.onclick = function() { mediarecorder.stop(); console.log(mediarecorder.state); console.log("recorder stopped"); record.style.background = ""; record.style.color = ""; } mediarecorder.onstop = f...
Using the MediaStream Recording API - Web APIs
keeping the interface constrained to the view
port, regardless of device height, with calc() the calc() function is one of those useful little utility features that's cropped up in css that doesn't look like much initially, but soon starts to make you think "wow, why didn't we have this before?
...instead, the problem was solved by making the third container's height equal to 100% of the parent height, minus the heights and padding of the other two: .sound-clips { box-shadow: inset 0 3px 4px rgba(0,0,0,0.7); background-color: rgba(0,0,0,0.1); height: calc(100% - 240px - 0.7rem); overflow: scroll; } note: calc() has good sup
port across modern browsers too, even going back to internet explorer 9.
...tons, and the <article> that will contain the generated audio players: const record = document.queryselector('.record'); const stop = document.queryselector('.stop'); const soundclips = document.queryselector('.sound-clips'); finally for this section, we set up the basic getusermedia structure: if (navigator.mediadevices && navigator.mediadevices.getusermedia) { console.log('getusermedia sup
ported.'); navigator.mediadevices.getusermedia ( // constraints - only audio needed for this app { audio: true }) // success callback .then(function(stream) { }) // error callback .catch(function(err) { console.log('the following getusermedia error occured: ' + err); } ); } else { console.log('getusermedia not sup
port...
...ed on your browser!'); } the whole thing is wrapped in a test that checks whether getusermedia is sup
ported before running anything else.
MediaTrackSettings - Web APIs
properties some or all of the following will be included in the object, either because it's not sup
ported by the browser or because it's not available due to context.
...this value will be between 0.0 (silent) to 1.0 (maximum sup
ported volume).
...the value will be one of: "user" a camera facing the user (commonly known as a "selfie cam"), used for self-
portraiture and video calling.
... properties of shared screen tracks tracks containing video shared from a user's screen (regardless of whether the screen data comes from the entire screen or a
portion of a screen, like a window or tab) are generally treated like video tracks, with the exception that they also sup
port the following added settings: cursor a domstring which indicates whether or not the mouse cursor is being included in the generated stream and under what conditions.
Metadata.modificationTime - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmodificationtime experimentalnon-standardchrome full sup
port 13edge full sup
port ≤79firefox no sup
port noie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android full sup
port yesfirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
...expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.
MutationEvent - Web APIs
the practical reasons to avoid the mutation events are performance issues and cross-browser sup
port.
... cross-browser sup
port these events are not implemented consistently across different browsers, for example: ie prior to version 9 didn't sup
port the mutation events at all and does not implement some of them correctly in version 9 (for example, domnodeinserted) webkit doesn't sup
port domattrmodified (see webkit bug 8191 and the workaround) "mutation name events", i.e.
... domelementnamechanged and domattributenamechanged are not sup
ported in firefox (as of version 11), and probably in other browsers as well.
... dottoro documents browser sup
port for mutation events.
Node.setUserData() - Web APIs
note that such data will not be preserved when im
ported via node.im
portnode, as with node.clonenode() and node.renamenode() operations (though node.adoptnode does preserve the information), and equality tests in node.isequalnode() do not consider user data in making the assessment.
... this method offers the convenience of associating data with specific nodes without needing to alter the structure of a document and in a standard fashion, but it also means that extra steps may need to be taken if one wishes to serialize the information or include the information upon clone, im
port, or rename operations.
... handler is a callback which will be called any time the node is being cloned, im
ported, renamed, as well as if deleted or adopted; a function can be used or an object implementing the handle method (part of the userdatahandler interface).
... example var d = document.implementation.createdocument('', 'test', null); d.documentelement.setuserdata('key', 15, {handle:function (o, k, d, s, ds) {console.log(o+'::'+k+'::'+d+'::'+s+'::'+ds)}}); // 2::key::15::[object element]::[object element] console.log(d.documentelement.getuserdata('key')); // 15 var e = document.im
portnode(d.documentelement, true); // causes handler to be called console.log(e.getuserdata('key')); // null since user data is not copied specifications specification status comment document object model (dom) level 3 core specificationthe definition of 'node.setuserdata()' in that specification.
Node - Web APIs
node.issup
ported() returns a boolean flag containing the result of a test whether the dom implementation implements a specific feature and this feature is sup
ported by the specific node.
... removed the following methods: issup
ported(), hasattributes(), getfeature(), setuserdata(), and getuserdata().
... obsolete the methods insertbefore(), replacechild(), removechild(), and appendchild() returns one more kind of error (not_sup
ported_err) if called on a document.
... added the following methods: normalize(), issup
ported() and hasattributes().
OVR_multiview2 - Web APIs
the ovr_multiview2 extension is part of the webgl api and adds sup
port for rendering into multiple views simultaneously.
... availability: sup
port depends on the system's graphics driver (windows+angle and android are sup
ported; windows+gl, mac, linux are not sup
ported).
...however, the oculus browser (6+) also sup
ports multisampling using the oculus_multiview extension.
...most vr headsets have two views, but there are prototypes of headset with ultra-wide fov using 4 views which is currently the maximum number of views sup
ported by multiview.
Page Visibility API - Web APIs
the example, which pauses the video when you switch to another tab and plays again when you return to its tab, was created with the following code: // set the name of the hidden property and the change event for visibility var hidden, visibilitychange; if (typeof document.hidden !== "undefined") { // opera 12.10 and firefox 18 and later sup
port hidden = "hidden"; visibilitychange = "visibilitychange"; } else if (typeof document.mshidden !== "undefined") { hidden = "mshidden"; visibilitychange = "msvisibilitychange"; } else if (typeof document.webkithidden !== "undefined") { hidden = "webkithidden"; visibilitychange = "webkitvisibilitychange"; } var videoelement = document.getelementbyid("videoelement"); // if the page is h...
...idden, pause the video; // if the page is shown, play the video function handlevisibilitychange() { if (document[hidden]) { videoelement.pause(); } else { videoelement.play(); } } // warn if the browser doesn't sup
port addeventlistener or the page visibility api if (typeof document.addeventlistener === "undefined" || hidden === undefined) { console.log("this demo requires a browser, such as google chrome or firefox, that sup
ports the page visibility api."); } else { // handle page visibility change document.addeventlistener(visibilitychange, handlevisibilitychange, false); // when the video pauses, set the title.
... note: not all browsers sup
port prerendering.
... note: not all browsers sup
port the unloaded value.
PaymentRequest.abort() - Web APIs
var request = new paymentrequest(sup
portedinstruments, details, options); var paymenttimeout = window.settimeout(() => { window.cleartimeout(paymenttimeout); request.abort().then(() => { print('payment timed out after 20 minutes.'); }).catch(() => { print('unable to abort, because the user is currently in the process ' + 'of paying.'); }); }, 20 * 60 * 1000); /* 20 minutes */ specifications specif...
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetabort()chrome full sup
port 61edge full sup
port 15firefox full sup
port 55notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android no sup
port nochrome android full sup
port 53firefox android full sup
port 55notes disabled full sup
port 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).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
PaymentRequest.onshippingaddresschange - Web APIs
var payment = new paymentrequest(sup
portedinstruments, details, options); request.addeventlistener('shippingaddresschange', function(evt) { evt.updatewith(new promise(function(resolve) { updatedetails(details, request.shippingaddress, resolve); })); }); payment.show().then(function(paymentresponse) { // processing of paymentresponse exerpted for the same of clarity.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonshippingaddresschangechrome full sup
port 61edge full sup
port 15firefox full sup
port 55notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android no sup
port nochrome android full sup
port 53firefox android full sup
port 55notes disabled full sup
port 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).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
PaymentResponse.details - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdetailschrome full sup
port 61edge full sup
port 15firefox full sup
port 56notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port yeswebview android no sup
port nochrome android full sup
port 56 full sup
port 56 no sup
port 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 sup
port 56notes disabled full sup
port 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).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port yessamsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
PaymentResponse.payerEmail - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpayeremailchrome full sup
port 61edge full sup
port 15firefox full sup
port 56notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port yeswebview android no sup
port nochrome android full sup
port 56 full sup
port 56 no sup
port 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 sup
port 56notes disabled full sup
port 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).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port yessamsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
PerformanceEventTiming - Web APIs
(navigator.sendbeacon && navigator.sendbeacon('/analytics', body)) || fetch('/analytics', {body, method: 'post', keepalive: true}); } // use a try/catch instead of feature detecting `first-input` // sup
port, since some browsers throw when using the new `type` option.
... // https://bugs.webkit.org/show_bug.cgi?id=209216 try { function onfirstinputentry(entry) { // only re
port fid if the page wasn't hidden prior to // the entry being dispatched.
... if (entry.starttime < firsthiddentime) { const fid = entry.processingstart - entry.starttime; // re
port the fid value to an analytics endpoint.
... po.observe({ type: 'first-input', buffered: true, }); } catch (e) { // do nothing if the browser doesn't sup
port this api.
PerformanceLongTaskTiming.attribution - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetattribution experimentalchrome full sup
port 58edge full sup
port ≤79firefox no sup
port noie ?
... opera full sup
port yessafari ?
... webview android full sup
port 58chrome android full sup
port 58firefox android no sup
port noopera android full sup
port yessafari ios ?
... samsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
PerformanceResourceTiming.responseEnd - Web APIs
the responseend read-only property returns a timestamp immediately after the browser receives the last byte of the resource or immediately before the trans
port connection is closed, whichever comes first.
... syntax resource.responseend; return value a domhighrestimestamp immediately after the browser receives the last byte of the resource or immediately before the trans
port connection is closed, whichever comes first.
...d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'responseend' in that specification.
Performance API - Web APIs
the high resolution time standard defines a performance interface that sup
ports client-side latency measurements within applications.
...the interfaces sup
port a number of use cases including calculating frame-rates (potentially im
portant in animations) and benchmarking (such as the time to load a resource).
... since a platform's system clock is subject to various skews (such as ntp adjustments), the interfaces sup
port a monotonic clock i.e.
... to test your browser's sup
port for the performance interface, run the perf-api-sup
port application.
Performance Timeline - Web APIs
the performance timeline api defines extensions to the performance interface to sup
port client-side latency measurements within applications.
... performance interface extensions: as shown in the performance interface's browser compatibility table, most of these interfaces are broadly implemented by desktop browsers and have less sup
port on mobile devices.
... performanceentry: as shown in the performanceentry interface's browser compatibility table, most of these interfaces are broadly implemented by desktop browsers and have less sup
port on mobile devices.
... to test your browser's sup
port for these interfaces, run the perf-api-sup
port application.
Permissions.query() - Web APIs
an up-to-date list of permission names can be found in the spec under the permissionname enum, but bear in mind that the actual permissions sup
ported by browsers is currently much smaller than this.
... firefox for example currently sup
ports geolocation, notifications, push, and persistent-storage (see our permissions.webidl file).
... uservisibleonly: (push only, not sup
ported in firefox — see the browser sup
port section below) indicates whether you want to show a notification for every message or be able to send silent push notifications.
... exceptions exception explanation typeerror retrieving the permissiondescriptor information failed in some way, or the permission doesn't exist or is currently unsup
ported (e.g.
RTCIceCandidate.foundation - Web APIs
the rtcicecandidate interface's read-only foundation property is a string which uniquely identifies the candidate across multiple trans
ports.
... as such, the foundation can be used to correlate candidates that are present on multiple rtcicetrans
port objects syntax var foundation = rtcicecandidate.foundation; value a domstring which uniquely identifies the candidate across all rtcicetrans
ports on which it is available.
... note: if
port is null — and
port is sup
ported by the user agent — passing the candidate to addicecandidate() will fail, throwing an operationerror exception.
... if (candidate1.foundation == candidate2.foundation) { /* the two candidates are the same, even if they're on different trans
ports */ } specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcicecandidate.foundation' in that specification.
RTCIceCandidate.relatedAddress - Web APIs
the related address and
port (related
port) are not used at all by ice itself; they are provided for analysis and diagnostic purposes only, and their inclusion may be blocked by security systems, so do not rely on them having non-null values.
...for both peer and server reflexive candidates, the related address (and related
port) are the base for that server or peer reflexive candidate.
... for relay candidates, the related address and
port are set to the mapped address selected by the turn server.
... here's an sdp attribute line (a-line) describing an ice candidate discovered by the stun server: a=candidate:4234997325 1 udp 2043278322 192.168.0.56 6502 typ srflx raddr 192.168.2.77 r
port 32768 generation 0 the remote address, relatedaddress, is the dotted quad (for ipv4) or colon-delineated 64-bit address (for ipv6) immediately following the text "raddr", or "192.168.2.77".
RTCRtpReceiver - Web APIs
rtcrtpreceiver.trans
port read only returns the rtcdtlstrans
port instance over which the media for the receiver's track is received.
... obsolete properties rtcptrans
port this property has been removed; the rtp and rtcp trans
ports have been combined into a single trans
port.
... use the trans
port property instead.
... rtcrtpreceiver.getstats() returns a promise whose fulfillment handler receives a rtcstatsre
port which contains statistics about the incoming streams and their dependencies.
Resize Observer API - Web APIs
for example, media queries / window.matchmedia are great for updating layouts at specific points when the view
port changes sizes, but what if you want to change layout in response to a specific element's size changing, which isn't the outer container?
... examples you find a couple of simple examples on our github repo: resize-observer-border-radius.html (see source): a simple example with a green box, sized as a percentage of the view
port size.
... when the view
port size is changed, the box's rounded corners change in pro
portion to the size of the box.
...this shows that you can respond to changes in an element’s size, even if they have nothing to do with the view
port.
SVGAnimatedPoints - Web APIs
svg animated points interface the svganimatedpoints interface sup
ports elements which have a points attribute which holds a list of coordinate values and which sup
port the ability to animate that attribute.
... edge full sup
port ≤18firefox ?
... webview android no sup
port nochrome android ?
... legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknown ...
SVGAnimatedString - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedstringchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie no sup
port noopera full sup
port yessafari full sup
port yeswebview android fu...
...ll sup
port yeschrome android no sup
port nofirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android no sup
port noanimvalchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie no sup
port noopera full sup
port yessafari full sup
port ...
... yeswebview android full sup
port yeschrome android no sup
port nofirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android no sup
port nobasevalchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie no sup
port noopera full sup
port ...
... yessafari full sup
port yeswebview android full sup
port yeschrome android no sup
port nofirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
port ...
Selection.toString() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettostring experimentalchrome full sup
port 1edge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari ?
... webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios ?
... samsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknownexperimental.
ServiceWorkerMessageEvent.ServiceWorkerMessageEvent() - Web APIs
im
portant: in modern browsers, this property has been deprecated.
... source: the serviceworker or message
port that sent the message.
...
ports: an array containing the message
port objects connected to the channel sending the message.
... examples var init = { data : 'hello message', source : message
portreference,
ports : message
portlistreference } var myswme = new serviceworkermessageevent('message', init); ...
SharedWorkerGlobalScope.applicationCache - Web APIs
im
portant: application cache is deprecated as of firefox 44, and is no longer available in insecure contexts from firefox 60 onwards (bug 1354175, currently nightly/beta only).
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetapplicationcachechrome full sup
port 4edge full sup
port ≤79firefox full sup
port 29ie no sup
port noopera full sup
port 10.6safari no sup
port nowebview android full su...
...p
port yeschrome android full sup
port yesfirefox android full sup
port 29opera android full sup
port yessafari ios ?
... samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknown ...
StorageManager.persist() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpersistchrome full sup
port 52 full sup
port 52 no sup
port 48 — 52alternate name alternate name uses the non-standard name: requestpersistentedge full sup
port ≤79firefox full sup
port 55ie ?
... opera full sup
port yessafari ?
... webview android full sup
port 52 full sup
port 52 no sup
port 48 — 52alternate name alternate name uses the non-standard name: requestpersistentchrome android full sup
port 52 full sup
port 52 no sup
port 48 — 52alternate name alternate name uses the non-standard name: requestpersistentfirefox android full sup
port 55opera android full sup
port yessafari ios ?
... samsung internet android full sup
port 6.0 full sup
port 6.0 no sup
port 5.0 — 6.0alternate name alternate name uses the non-standard name: requestpersistentlegend full sup
port full sup
port compatibility unknown compatibility unknownuses a non-standard name.uses a non-standard name.
TaskAttributionTiming.containerId - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontainerid experimentalchrome full sup
port 58edge full sup
port ≤79firefox no sup
port noie ?
... opera full sup
port yessafari ?
... webview android full sup
port 58chrome android full sup
port 58firefox android no sup
port noopera android full sup
port yessafari ios ?
... samsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
TaskAttributionTiming.containerType - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontainertype experimentalchrome full sup
port 58edge full sup
port ≤79firefox no sup
port noie ?
... opera full sup
port yessafari ?
... webview android full sup
port 58chrome android full sup
port 58firefox android no sup
port noopera android full sup
port yessafari ios ?
... samsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
TextRange - Web APIs
although it is well sup
ported by ie, most other browsers no longer sup
port this property.
... note that this interface is not sup
ported in non ie browsers.
...ie9 sup
ports the standard alternative range.
...therefore, the best way is to deal with both at the same time, that is, try to use textrange mode when the standard interface is not sup
ported, but do not regard it as the only choice.
Touch.clientX - Web APIs
the touch.clientx read-only property returns the x coordinate of the touch point relative to the view
port, not including any scroll offset.
... syntax touchitem.clientx; return value a long representing the x coordinate of the touch point relative to the view
port, not including any scroll offset.
...the touch.clientx property is the horizontal coordinate of a touch point relative to the browser's view
port excluding any scroll offset.
... the touch.clienty property is the vertical coordinate of the touch point relative to the browser's view
port excluding any scroll offset .
Touch.clientY - Web APIs
the touch.clienty read-only property returns the y coordinate of the touch point relative to the browser's view
port, not including any scroll offset.
... syntax touchitem.clienty; return value a long value representing the y coordinate of the touch point relative to the view
port, not including any scroll offset.
...the touch.clientx property is the horizontal coordinate of a touch point relative to the browser's view
port excluding any scroll offset.
... the touch.clienty property is the vertical coordinate of the touch point relative to the browser's view
port excluding any scroll offset .
Touch.pageX - Web APIs
the touch.pagex read-only property returns the x coordinate of the touch point relative to the view
port, including any scroll offset.
... syntax touchitem.pagex; return value a long representing the x coordinate of the touch point relative to the view
port, including any scroll offset.
...the touch.pagex property is the horizontal coordinate of a touch point relative to the view
port (in css pixels), including any scroll offset.
... the touch.pagey property is the vertical coordinate of a touch point relative to the view
port (in css pixels), including any scroll offset.
Touch.pageY - Web APIs
the touch.pagey read-only property returns the y coordinate of the touch point relative to the view
port, including any scroll offset.
... syntax touchitem.pagey; return value a long value that representes the y coordinate of the touch point relative to the view
port, including any scroll offset.
...the touch.pagex property is the horizontal coordinate of a touch point relative to the view
port (in css pixels), including any scroll offset.
... the touch.pagey property is the vertical coordinate of a touch point relative to the view
port (in css pixels), including any scroll offset.
UIEvent.layerX - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetlayerx non-standardchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie full sup
port 9opera full sup
port yessafari full sup
port yeswebview android full...
... sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
portnon-standard.
... expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.
URL - Web APIs
if a browser doesn't yet sup
port the url() constructor, you can access a url object using the window interface's window.url property.
... host a usvstring containing the domain (that is the hostname) followed by (if a
port was specified) a ':' and the
port of the url.
... origin read only returns a usvstring containing the origin of the url, that is its scheme, its domain and its
port.
...
port a usvstring containing the
port number of the url.
UserDataHandler - Web APIs
summary when associating user data with a key on a node, node.setuserdata() can also accept, in its third argument, a handler which will be called when the object is cloned, im
ported, deleted, renamed, or adopted.
...in both document.im
portnode() and node.clonenode(), although user data is not copied over, the handler will be called.
... methods handle (operation, key, data, src, dst) (no return value) this method is a callback which will be called if a node is being cloned, im
ported, renamed and as well, if deleted or adopted.
... constants constant value operation node_cloned 1 node.clonenode() node_im
ported 2 document.im
portnode() node_deleted unimplemented (see bug 550400) 3 node_renamed unimplemented 4 node.renamenode() node_adopted 5 document.adoptnode() (node_renamed is currently not sup
ported since node.renamenode() is not sup
ported.) specification dom level 3 core: userdatahandler ...
VTTRegion - Web APIs
the vttregion interface—part of the api for handling webvtt (text tracks on media presentations)—describes a
portion of the video to render a vttcue onto.
... vttregion.view
portanchorx a double representing the view
port anchor x offset, as a percentage of the video.
... vttregion.view
portanchory a double representing the view
port anchor y offset, as a percentage of the video.
...region.view
portanchorx = 25; // have the region start at 25% from the left.
Using textures in WebGL - Web APIs
note: it's im
portant to note that the loading of textures follows cross-domain rules; that is, you can only load textures from sites for which your content has cors approval.
... note: cors sup
port for webgl textures and the crossorigin attribute for image elements is implemented in gecko 8.0.
... note: cors sup
port for canvas 2d drawimage is implemented in gecko 9.0.
... note: cors sup
port for cross-domain videos and the crossorigin attribute for <video> elements is implemented in gecko 12.0.
Lifetime of a WebRTC session - Web APIs
network address translation (nat) is a standard which sup
ports this address sharing by handling routing of data inbound and outbound to and from devices on a lan, all of which are sharing a single wan (global) ip address.
...the most im
portant thing to know about the signaling process for webrtc: it is not defined in the specification.
... information needed in order to set up the connection: the ip addressing and
port information needed for the peers to be able to talk to one another.
... note: different browsers sup
port ice restart under different sets of conditions.
Lighting a WebXR setting - Web APIs
computing the color of a lighted pixel although some graphics libraries include sup
port for light source objects and automatically calculate and apply lighting effect for you, webgl does not.
... at present, webxr doesn't offer sup
port for lighting estimation.
... how browsers mitigate these issues in order to help mitigate these risks, browsers are required by the webxr lighting estimation api specification to re
port lighting information that is fudged somewhat from the true value.
...by altering the accuracy of these functions, the browser makes the data less consistent, and, im
portantly, makes the data generated by two computers differ, even in the same setting.
Spaces and reference spaces: Spatial tracking in WebXR - Web APIs
this might make it easier to do things like implement sup
port for customizing the walls, placing furniture on the floor, and so forth.
... some xr hardware uses algorithms to compute the estimated position of the user based on the movement currently ongoing, while other hardware will re
port no movement at all, but with emulatedposition set to true.
...if your app provides a way for the user to move through the virtual world without physically moving in the real world (a so-called tele
portation mechanic), you can simply accept the new position and continue, allowing the jump from your previously-assumed position to be immediately corrected with the new position.
...instead, use the difference between the current position and the new tracking position to compute the new tele
portation offset; that is, a transform applied to everything to adapt the position and orientation data from webxr to your needs.
Background audio processing using AudioWorklet - Web APIs
sup
porting audio parameters just like any other web audio node, audioworkletnode sup
ports parameters, which are shared with the audioworkletprocessor that does the actual work.
... adding parameter sup
port to the processor to add parameters to an audioworkletnode, you need to define them within your audioworkletprocessor-based processor class in your module.
...this function should return an array of audioparam objects, one for each parameter sup
ported by the processor.
...our node only sup
ports one input, so it just takes the first input in the list, applies the gain to it, and writes the resulting data to the first output's buffer.
Web Authentication API - Web APIs
in order to understand how the create() and get() methods fit into the bigger picture, it is im
portant to understand that they sit between two components that are outside the browser: server - the web authentication api is intended to register new credentials on a server (also referred to as a service or a relying party) and later use those same credentials on that same server to authenticate a user.
...one of the most im
portant parameters is the origin, which is recorded as part of the clientdata so that the origin can be verified by the server later.
...one of the most im
portant parameters is the origin, which recorded as part of the clientdata so that the origin can be verified by the server later.
... var idlist = [{ id: cred.rawid, trans
ports: ["usb", "nfc", "ble"], type: "public-key" }]; getcredentialdefaultargs.publickey.allowcredentials = idlist; return navigator.credentials.get(getcredentialdefaultargs); }) .then((assertion) => { console.log("assertion", assertion); }) .catch((err) => { console.log("error", err); }); mozilla demo website and its source co...
Window.event - Web APIs
this property is not universally sup
ported and even when sup
ported introduces potential fragility to your code.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung interneteventchrome full sup
port 1edge full sup
port 12firefox full sup
port 63notes disabled full sup
port 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 ...
...to change preferences in firefox, visit about:config.ie full sup
port 4opera full sup
port 7safari full sup
port 1.1webview android full sup
port 1chrome android full sup
port 18firefox android full sup
port 63notes disabled full sup
port 63notes disabled notes this was briefly enabled by default in 65, then removed again while related compatibility issues are sorted out (see bug 15207...
...to change preferences in firefox, visit about:config.opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
Window.innerWidth - Web APIs
more precisely, innerwidth returns the width of the window's layout view
port.
... the interior height of the window—the height of the layout view
port—can be obtained from the innerheight property.
... syntax let intview
portwidth = window.innerwidth; value an integer value indicating the width of the window's layout view
port in pixels.
... example // this will return the width of the view
port var intframewidth = window.innerwidth; // this will return the width of the frame view
port within a frameset var intframewidth = self.innerwidth; // this will return the width of the view
port of the closest frameset var intframesetwidth = parent.innerwidth; // this will return the width of the view
port of the outermost frameset var intouterframesetwidth = top.innerwidth; specification ...
window.postMessage() - Web APIs
normally, scripts on different pages are allowed to access each other if and only if the pages they originate from share the same protocol,
port number, and host (also known as the "same-origin policy").
...if at the time the event is scheduled to be dispatched the scheme, hostname, or
port of targetwindow's document does not match that provided in targetorigin, the event will not be dispatched; only if all three match will the event be dispatched.
...this string is the concatenation of the protocol and "://", the host name if one exists, and ":" followed by a
port number if a
port is present and differs from the default
port for the given protocol.
... examples of typical origins are https://example.org (implying
port 443), http://example.net (implying
port 80), and http://example.com:8080.
Window.print() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetprintchrome full sup
port 1notes full sup
port 1notes notes starting with chrome 46, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.edge full sup
port 12firefox full sup
port 1ie full sup
port ...
... 5opera full sup
port 6notes full sup
port 6notes notes starting with opera 33, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.safari full sup
port 1.1webview android full sup
port 1notes full sup
port 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 sup
port 18notes full sup
port 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 sup
port nonotes no sup
port nonotes notes see bug 1247609.opera android full sup
port 10.1notes full sup
port 10.1notes notes starting with opera 33, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.safari ios full sup
port 1samsung internet android full sup
port 1.0notes full sup
port 1.0notes notes starting with...
... samsung internet 5.0, this method is blocked inside an <iframe> unless its sandbox attribute has the value allow-modals.legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
Window.releaseEvents() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreleaseevents deprecatednon-standardchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknownnon-standard.
... expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.deprecated.
Window.screenLeft - Web APIs
the window.screenleft read-only property returns the horizontal distance, in css pixels, from the left border of the user's browser view
port to the left side of the screen.
...screenleft was originally sup
ported only in ie but was introduced everywhere due to popularity.
... syntax leftwindowpos = window.screenleft returns a number equal to the number of css pixels from the left edge of the browser view
port to the left edge of the screen.
...; ctx.arc(leftupdate + (width/2), topupdate + (height/2) + 35, 50, degtorad(0), degtorad(360), false); ctx.fill(); pelem.textcontent = 'window.screenleft: ' + window.screenleft + ', window.screentop: ' + window.screentop; window.requestanimationframe(positionelem); } window.requestanimationframe(positionelem); also in the code we include a snippet that detects whether screenleft is sup
ported, and if not, polyfills in screenleft/screentop using window.screenx/window.screeny.
Window.screenTop - Web APIs
the window.screentop read-only property returns the vertical distance, in css pixels, from the top border of the user's browser view
port to the top side of the screen.
...screentop was originally sup
ported only in ie but was introduced everywhere due to popularity.
... syntax topwindowpos = window.screentop returns a number equal to the number of css pixels from the top edge of the browser view
port to the top edge of the screen.
...; ctx.arc(leftupdate + (width/2), topupdate + (height/2) + 35, 50, degtorad(0), degtorad(360), false); ctx.fill(); pelem.textcontent = 'window.screenleft: ' + window.screenleft + ', window.screentop: ' + window.screentop; window.requestanimationframe(positionelem); } window.requestanimationframe(positionelem); also in the code we include a snippet that detects whether screenleft is sup
ported, and if not, polyfills in screenleft/screentop using window.screenx/window.screeny.
Window.screenX - Web APIs
the window.screenx read-only property returns the horizontal distance, in css pixels, of the left border of the user's browser view
port to the left side of the screen.
...this was originally sup
ported only in ie but was introduced everywhere due to popularity.
... syntax leftwindowpos = window.screenx returns a number equal to the number of css pixels from the left edge of the browser view
port to the left edge of the screen.
... also in the code we include a snippet that detects whether screenleft is sup
ported, and if not, polyfills in screenleft/screentop using screenx/screeny.
Window.screenY - Web APIs
the window.screeny read-only property returns the vertical distance, in css pixels, of the top border of the user's browser view
port to the top edge of the screen.
...this was originally sup
ported only in ie but was introduced everywhere due to popularity.
... syntax topwindowpos = window.screeny returns a number equal to the number of css pixels from the top edge of the browser view
port to the top edge of the screen.
... also in the code we include a snippet that detects whether screenleft is sup
ported, and if not, polyfills in screenleft/screentop using screenx/screeny.
Window.scrollBy() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollbychrome full sup
port 1edge full sup
port 79 full sup
port 79 no sup
port 12 — 79notes notes only scrollby(x-coord, y-coord) is sup
ported.firefox full sup
port 1ie partial sup
port 11notes part...
...ial sup
port 11notes notes only scrollby(x-coord, y-coord) is sup
ported.opera full sup
port 3safari full sup
port 1webview android full sup
port 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0scrolltooptions parameterchrome full sup
port 45edge full sup
port ...
... 79firefox full sup
port yesie no sup
port noopera full sup
port 32safari no sup
port nowebview android full sup
port 45chrome android full sup
port 45firefox android full sup
port yesopera android full sup
port 32safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port ...
... full sup
port partial sup
port partial sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
Synchronous and asynchronous requests - Web APIs
xmlhttprequest sup
ports both synchronous and asynchronous communications.
... note: sup
port for timeout was added in gecko 12.0.
...when fetch with keepalive isn't available, you can consider using the navigator.sendbeacon() api, which can sup
port these use cases while typically delivering a good ux.
...:( client.setrequestheader("content-type", "text/plain;charset=utf-8"); client.send(analyticsdata); } using the sendbeacon() method, the data will be transmitted asynchronously to the web server when the user agent has had an op
portunity to do so, without delaying the unload or affecting the performance of the next navigation.
XRWebGLLayer.getNativeFramebufferScaleFactor() static method - Web APIs
now we can see the coordinates of each of the view
ports representing these two views: since each eye gets half of the frame buffer, the result is that the left eye gets a 640x720
portion of the buffer with the view
port's x and y at 0, the width at 640, and the height set to 720.
... the right eye gets the other half of the frame buffer, with its view
port's x set at 639.
... while rendering a frame for this scene, we get the view
port for the view and apply it to webgl, then render the scene.
... this ensures that the scene we render will not only match the viewpoint we need to express (which is defined by the position and orientation data in the pose), but that the rendered output will be constrained within the correct
portion of the frame buffer for the eye we're drawing, regardless of any scaling that is being performed.
ARIA: button role - Accessibility
if the attribute is omitted or set to its default value of aria-pressed="undefined", the element does not sup
port being pressed.
... html <button type="button" onclick="handlebtnclick()" onkeydown="handlebtnkeydown()"> mute audio </button> <span role="button" tabindex="0" aria-pressed="false" onclick="handlebtnclick(event)" onkeydown="handlebtnkeydown(event)"> mute audio </span> <audio id="audio" src="https://udn.realityripple.com/samples/41/191d072707.mp3"> your browser does not sup
port the <code>audio</code> element.
...rder: 2px solid transparent; } button:active, button:focus, [role="button"][aria-pressed="true"] { border: 2px solid #000; } javascript function handlebtnclick(event) { togglebutton(event.target); } function handlebtnkeydown(event) { // check to see if space or enter were pressed if (event.key === " " || event.key === "enter" || event.key === "spacebar") { // "spacebar" for ie11 sup
port // prevent the default action to stop scrolling when space is pressed event.preventdefault(); togglebutton(event.target); } } function togglebutton(element) { var audio = document.getelementbyid('audio'); // check to see if the button is pressed var pressed = (element.getattribute("aria-pressed") === "true"); // change aria-pressed to the opposite state element.setattribu...
... where possible, it is recommended to use native html buttons (<button>, <input type="button">, <input type="submit">, <input type="reset"> and <input type="image">) rather than the button role, as native html buttons are sup
ported by all user agents and assistive technology and provide keyboard and focus requirements by default, without need for additional customization.
Alerts - Accessibility
this is because that role is based on the xhtml role attribute module that was simply
ported to html for simplicity.
...we need to change the two inputs for e-mail and name for this: <input name="name" id="name" aria-required="true" onblur="checkvalidity('name', ' ', 'invalid name entered!');"/> <br /> <input name="email" id="email" aria-required="true" onblur="checkvalidity('email', '@', 'invalid e-mail address');"/> testing the example if you use firefox 3 and a currently-sup
ported screen reader, try the following: enter only your first name as the name.
...jaws 9 sup
ports this, but jaws 8 does not, so this may not work in all versions of the screen readers sup
ported.
...if this were a real live form, and the site was being visited by a browser that does not yet sup
port aria, we’d still want to give an indication that this is a required field.
Architecture - Accessibility
they sup
port the nsiaccessiblehypertext is implemented on any container element that has both text and embedded objects for accessible children.
...implementation classes here are some notes on the classes we use: nshypertextaccessible is for any container that may wrap both text and embedded object: nsiaccessibletext is sup
ported if there is potentially any text in the container nsiaccessiblehypertext is sup
ported if there is potentially text and embedded objects together in the container.
... nsiaccessibleeditabletext is sup
ported if the area is potentially editable.
...therefore for parent nodes that sup
port the hypertext interface, it is more performant to grab the text from the accessibletext interface and then only visit the link children.
Perceivable - Accessibility
if the order of list items is im
portant, use an ordered list (<ol>).
...this may prove inaccessible to people with a disability related to that sense, or a device that does not sup
port that sense.
... "swipe from the right hand side of the screen to reveal the menu" some users might not be able to swipe the screen, either due to disability or because their device does not sup
port touch.
... 1.3.4 orientation (aa) added in 2.1 content does not restrict its view and operation to a single display orientation, such as
portrait or landscape, unless a specific display orientation is essential.
-webkit-mask-attachment - CSS: Cascading Style Sheets
if a -webkit-mask-image is specified, -webkit-mask-attachment determines whether the mask image's position is fixed within the view
port, or scrolls along with its containing block.
...hment: scroll; -webkit-mask-attachment: fixed; -webkit-mask-attachment: local; /* multiple values */ -webkit-mask-attachment: scroll, local; -webkit-mask-attachment: fixed, local, scroll; /* global values */ -webkit-mask-attachment: inherit; -webkit-mask-attachment: initial; -webkit-mask-attachment: unset; syntax values scroll if scroll is specified, the mask image scrolls within the view
port along with the block that contains the mask image.
... fixed if fixed is specified, the mask image does not scroll with its containing element, instead remaining stationary within the view
port.
... formal definition initial valuescrollapplies toall elementsinheritednocomputed valueas specifiedanimation typediscrete formal syntax <attachment>#where <attachment> = scroll | fixed | local examples fixing a mask image to the view
port body { -webkit-mask-image: url('images/mask.png'); -webkit-mask-attachment: fixed; } specifications not part of any standard.
:where() - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:where()chrome full sup
port 72disabled full sup
port 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.edge no sup
port nofirefox full sup
port 78 full sup
port 78 full sup
port 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 sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android full sup
port 72disabled full sup
port 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 sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
system - CSS: Cascading Style Sheets
] | [ extends <counter-style-name> ]where <counter-style-name> = <custom-ident> examples cyclic counter if your browser sup
ports it, this example will render a list like this: ◉ one ◉ two ◉ three css <ul> <li>one</li> <li>two</li> <li>three</li> </ul> @counter-style fisheye { system: cyclic; symbols: ◉; suffix: " "; } ul { list-style: fisheye; } result fixed counter if your browser sup
ports it, this example will render a list like this: ➀ one ➁ two ➂ three 4 four 5 five cs...
...s <ul> <li>one</li> <li>two</li> <li>three</li> <li>four</li> <li>five</li> </ul> @counter-style circled-digits { system: fixed; symbols: ➀ ➁ ➂; suffix: ' '; } ul { list-style: circled-digits; } result symbolic counter if your browser sup
ports it, this example will render a list like this: a.
..."; } ul { list-style: abc; } result alphabetic counter if your browser sup
ports it, this example will render a list like this: a.
..."; } ul { list-style: abc; } result numeric counter if your browser sup
ports it, this example will render a list like this: b.
@keyframes - CSS: Cascading Style Sheets
properties that can't be animated in keyframe rules are ignored, but sup
ported properties will still be animated.
... cascading keyframes are sup
ported starting in firefox 14.
... !im
portant in a keyframe declarations in a keyframe qualified with !im
portant are ignored.
... @keyframes im
portant1 { from { margin-top: 50px; } 50% { margin-top: 150px !im
portant; } /* ignored */ to { margin-top: 100px; } } @keyframes im
portant2 { from { margin-top: 50px; margin-bottom: 100px; } to { margin-top: 150px !im
portant; /* ignored */ margin-bottom: 50px; } } formal syntax @keyframes <keyframes-name> { <keyframe-block-list> }where <keyframes-name> = <custom-ident> | <string><keyframe-block-list> = <keyframe-block>+where <keyframe-block> = <keyframe-selector># { <declaration-list> }where <keyframe-selector> = from | to | <percentage> examples css animation examples see using css animations for examples.
color-gamut - CSS: Cascading Style Sheets
the color-gamut css media feature can be used to test the approximate range of colors that are sup
ported by the user agent and the output device.
... srgb the output device can sup
port approximately the srgb gamut or more.
... p3 the output device can sup
port approximately the gamut specified by the dci p3 color space or more.
... rec2020 the output device can sup
port approximately the gamut specified by the itu-r recommendation bt.2020 color space or more.
max-height - CSS: Cascading Style Sheets
the max-height css descriptor specifies the maximum height of the view
port of a document defined via the @view
port at-rule.
... the height will initially be set as close as possible to the initial view
port height considering the maximum height constraint.
... <percentage> a percentage value relative to the height of the initial view
port at zoom factor 1.0 for vertical lengths.
... formal definition related at-rule@view
portinitial valueautopercentagesrefer to the height of the initial view
portcomputed valueif specified as a length, the corresponding absolute length; if specified as a percentage, the specified value; otherwise, auto formal syntax <view
port-length>where <view
port-length> = auto | <length-percentage>where <length-percentage> = <length> | <percentage> examples setting view
port max height in pixels @view
port { max-height: 600px; } specifications specification status comment css device adaptationthe definition of '"max-height" descriptor' in that specification.
max-width - CSS: Cascading Style Sheets
the max-width css descriptor specifies the maximum width of the view
port of a document defined via the @view
port at-rule.
... by default, the width is set as close as possible to the initial view
port considering the maximum width constraint.
... <percentage> a percentage value relative to the width of the initial view
port at zoom factor 1.0 for horizontal lengths.
... formal definition related at-rule@view
portinitial valueautopercentagesrefer to the width of the initial view
portcomputed valueif specified as a length, the corresponding absolute length; if specified as a percentage, the specified value; otherwise, auto formal syntax <view
port-length>where <view
port-length> = auto | <length-percentage>where <length-percentage> = <length> | <percentage> examples setting view
port max width in pixels @view
port { max-width: 600px; } specifications specification status comment css device adaptationthe definition of '"max-width" descriptor' in that specification.
min-height - CSS: Cascading Style Sheets
the min-height css descriptor specifies the minimum height of the view
port of a document defined via the @view
port at-rule.
... the height will initially be set as close as possible to the initial view
port height considering the minimum height constraint.
... <percentage> a percentage value relative to the height of the initial view
port at zoom factor 1.0 for vertical lengths.
... formal definition related at-rule@view
portinitial valueautopercentagesrefer to the height of the initial view
portcomputed valueif specified as a length, the corresponding absolute length; if specified as a percentage, the specified value; otherwise, auto formal syntax <view
port-length>where <view
port-length> = auto | <length-percentage>where <length-percentage> = <length> | <percentage> examples setting view
port min height in pixels @view
port { min-height: 200px; } specifications specification status comment css device adaptationthe definition of '"min-height" descriptor' in that specification.
min-width - CSS: Cascading Style Sheets
the min-width css descriptor specifies the minimum width of the view
port of a document defined via @view
port.
... by default, min-width is set as close as possible to the initial view
port considering the minimum width constraint.
... <percentage> a percentage value relative to the width or height of the initial view
port at zoom factor 1.0, for horizontal and vertical lengths respectively.
... formal definition related at-rule@view
portinitial valueautopercentagesrefer to the width of the initial view
portcomputed valueif specified as a length, the corresponding absolute length; if specified as a percentage, the specified value; otherwise, auto formal syntax <view
port-length>where <view
port-length> = auto | <length-percentage>where <length-percentage> = <length> | <percentage> examples setting view
port min width in pixels @view
port { min-width: 200px; } specifications specification status comment css device adaptationthe definition of '"min-width" descriptor' in that specification.
orientation - CSS: Cascading Style Sheets
the orientation css descriptor controls the orientation of a document defined by @view
port.
... /* keyword values */ orientation: auto; orientation:
portrait; orientation: landscape; for a ua/device where the orientation is changed upon tilting the device, an author can use this descriptor to inhibit the orientation change.
...
portrait the document should be locked into
portrait orientation.
... formal definition related at-rule@view
portinitial valueautopercentagesrefer to the size of bounding boxcomputed valueas specified formal syntax auto |
portrait | landscape examples setting view
port orientation @view
port { orientation: landscape; } specifications specification status comment css device adaptationthe definition of '"orientation" descriptor' in that specification.
At-rules - CSS: Cascading Style Sheets
@im
port — tells the css engine to include an external style sheet.
... @sup
ports — a conditional group rule that will apply its content if the browser meets the criteria of the given condition.
... @view
port — describes the aspects of the view
port for small screen devices.
... conditional group rules are defined in css conditionals level 3 and are: @media, @sup
ports, @document.
Cross-browser Flexbox mixins - CSS: Cascading Style Sheets
this article provides a set of mixins for those who want to mess around with flexbox using the native sup
port of current browsers.
...d 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 sup
ported natively in browsers.
... values: see the flex reference for values and default spec: https://drafts.csswg.org/css-flexbox/#flex-property @mixin flex($fg: 1, $fs: 0, $fb: auto) { // set a variable to be used by box-flex properties $fg-boxflex: $fg; // box-flex only sup
ports a flex-grow value so lets grab the // first item in the list and just return that.
... note: space-* values not sup
ported in older syntaxes.
Basic concepts of Logical Properties and Values - CSS: Cascading Style Sheets
the below diagram shows the inline and block directions in a horizontal writing mode: this diagram shows block and inline in a vertical writing mode: browser sup
port logical properties and values can be thought of as a couple of groups in terms of current browser sup
port.
...these mapped properties are starting to see good browser sup
port, and if you look at the individual pages for the properties in the reference here on mdn you will see that edge is the only modern browser currently missing these.
... testing for browser sup
port you can test for sup
port of logical properties and values using feature queries.
... for example you could set a width, test for inline-size and, if it is sup
ported, set the width to auto and the inline-size to the original width value.
Logical properties for margins, borders and padding - CSS: Cascading Style Sheets
as these are new properties check browser sup
port before using.
...as these are new properties check browser sup
port before using.
... .box { border-block: 2px solid green; border-inline-width: 4px; border-inline-style: dotted; border-inline-color: rebeccapurple; } note: these two value shorthands shipped in firefox 66, check browser sup
port before using as other browsers may not have implemented them yet.
... using any four-value shorthand such as margin, padding, or border will currently use the physical versions, so if following the flow of the document is im
portant, use the longhand properties for the time being.
Sticky footers - CSS: Cascading Style Sheets
a sticky footer pattern is one where the footer of your page "sticks" to the bottom of the view
port in cases where the content is shorter than the view
port height.
... requirements the sticky footer pattern needs to meet the following requirements: footer sticks to the bottom of the view
port when content is short.
... if the content of the page extends past the view
port bottom, the footer then sits below the content as normal.
... alternate method if you need compatibility with browsers that do not sup
port grid layout you can also use flexbox to create a sticky footer.
Testing media queries programmatically - CSS: Cascading Style Sheets
for example, to set up a query list that determines if the device is in landscape or
portrait orientation: const mediaquerylist = window.matchmedia("(orientation:
portrait)"); checking the result of a query once you've created your media query list, you can check the result of the query by looking at the value of its matches property: if (mediaquerylist.matches) { /* the view
port is currently in
portrait orientation */ } else { /* the view
port is not currently in
portrait ori...
...const mediaquerylist = window.matchmedia("(orientation:
portrait)"); // define a callback function for the event listener.
...this makes our listener perform adjustments based on the current device orientation; otherwise, our code might assume the device is in
portrait mode at startup, even if it's actually in landscape mode.
... the handleorientationchange() function would look at the result of the query and handle whatever we need to do on an orientation change: function handleorientationchange(evt) { if (evt.matches) { /* the view
port is currently in
portrait orientation */ } else { /* the view
port is currently in landscape orientation */ } } above, we define the parameter as evt — an event object.
Scaling of SVG backgrounds - CSS: Cascading Style Sheets
it's worth noting that the sizing algorithm only cares about the image's dimensions and pro
portions, or lack thereof.
... dimensionless and pro
portionless this image is both dimensionless and pro
portionless.
... svg source one specified dimension and pro
portionless this image specifies a width of 100 pixels but no height or intrinsic ratio.
...this ensures that its width:height ratio is always 3:4, unless it's deliberately scaled to a dispro
portionate size (that is, by explicitly specifying both width and height that aren't of that ratio).
Linear-gradient Generator - CSS: Cascading Style Sheets
: 1px solid #3490d2; border-color: #208b20; background: #666; background-color: #eef1f5; color: #000; position: absolute; top: 100%; left: 0; z-index: 100; overflow: hidden; transition: all 0.3s; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } .ui-dropdown-list:hover { overflow: auto; } .ui-dropdown-list[data-hidden='true'] { height: 0 !im
portant; opacity: 0; visibility: hidden; } .ui-dropdown[data-position='left'] .ui-dropdown-list { left: -100%; top: 0; } .ui-dropdown[data-position='right'] .ui-dropdown-list { left: 100%; top: 0; } .ui-dropdown-list > div { width: 80%; height: 1.6em; margin: 0.3em 0; padding: 0.3em 10%; line-height: 1.6em; } .ui-dropdown-list > div:hover { background: #3490d2; color:#fff; border-rad...
...i", arial, helvetica, sans-serif; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; } body[data-dragging="true"] { } /** * resize handle */ .resize-handle { width: 10px; height: 10px; background: url("images/resize.png") center center no-repeat; position: absolute; bottom: 0; right: 0; } [data-resize='both']:hover { cursor: nw-resize !im
portant; } [data-resize='width']:hover { cursor: w-resize !im
portant; } [data-resize='height']:hover { cursor: n-resize !im
portant; } /** * main container */ #container { width: 1000px; height: 100%; display: table; margin: 0 auto; } #gradient-container { width: 450px; height: 250px; min-width: 8px; min-height: 8px; margin: 100px auto; border: 1px solid #ddd; position: relative; }...
... .property > * { float: left; } #controls .property .name { width: 90px; padding: 0px 10px 0px 0px; text-align: right; line-height: 150%; } /* button */ #controls .button { height: 24px; padding: 0 10px; background-color: #379b4a; border-radius: 3px; font-size: 14px; color: #fff; display: inline; float: left; } #controls .button[data-state='disabled'] { background-color: #ccc !im
portant; color: #777 !im
portant; } #controls .button[data-state='disabled']:hover { background-color: #ccc !im
portant; cursor: default !im
portant; } #controls .button:hover { cursor: pointer; background-color: #208b20; } /* active point */ .ui-input-slider { height: 24px; line-height: 20px; } #delete-point { margin: 0 58px 0 0; float: right !im
portant; } #controls .ui-color-picker[data...
...-topic="picker"] { margin: 20px 0 0 0; } #controls .ui-input-slider[data-topic="axis-rotation"] { } #controls .ui-dropdown { width: 130px; height: 24px; } #controls .ui-dropdown-select { line-height: 24px; } #controls .ui-dropdown-list { height: 66px; line-height: 2.5em; overflow: hidden; } #delete-axis { margin: 0 38px 0 0; float: right !im
portant; } /* tool controls */ #tool-section .property .name { width: 150px; } #canvas-bg { width: 16px; height: 16px; margin: 5px; background: url("images/toggle-background.png") center right no-repeat; } #canvas-bg:hover { cursor: pointer; } #canvas-bg[data-alpha='false'] { background-position: center left; } #canvas-bg[data-alpha='true'] { background-position: center right; } /* order gradients */ #order { margin-left: 24px...
background-attachment - CSS: Cascading Style Sheets
the background-attachment css property sets whether a background image's position is fixed within the view
port, or scrolls with its containing block.
... values fixed the background is fixed relative to the view
port.
...</p> css p { background-image: url("https://mdn.mozillademos.org/files/12057/starsolid.gif"); background-attachment: fixed; } result multiple background images this property sup
ports multiple background images.
... candidate recommendation the shorthand property has been extended to sup
port multiple backgrounds and the local value.
border - CSS: Cascading Style Sheets
im
portantly, border cannot be used to specify a custom value for border-image, but instead sets it to its initial value, i.e., none.
... candidate recommendation removes specific sup
port for transparent, as it is now a valid <color>; this has no practical impact.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetborderchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 4opera full sup
port 3.5safari full sup
port 1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
Adapting to the new two-value syntax of display - CSS: Cascading Style Sheets
s specified then the specification explains that the outer value should be set to block: "if a <display-inside> value is specified but <display-outside> is omitted, the element’s outer display type defaults to block—except for ruby, which defaults to inline." finally, we have some legacy pre-composed inline-level values of: inline-block inline-table inline-flex inline-grid if a sup
porting browser comes across these as single values then it treats them the same as the two-value versions: inline flow-root inline table inline flex inline grid so all of the current situations are neatly covered, meaning that we maintain compatibility of existing and new sites that use the single values, while allowing the spec to evolve.
...you can see current sup
port in the compat data for the two-value syntax: the compatibility table on this page is generated from structured data.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmulti-keyword values experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 70ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android ...
... no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
font-variant-caps - CSS: Cascading Style Sheets
in each case, if the font doesn't sup
port the opentype value, then it synthesizes the glyphs.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-variant-capschrome full sup
port 52edge full sup
port 79firefox full sup
port 34 full sup
port 34 no sup
port 24 — 34disabled disabled from version 24 until version 34 (exclusive): this feature is behind the layout.css.font-features.enabled pre...
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 39safari no sup
port nowebview android full sup
port 52chrome android full sup
port 52firefox android full sup
port 34 full sup
port 34 no sup
port 24 — 34disabled disabled from version 24 until version 34 (exclusive): 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 full sup
port 41safari ios no sup
port nosamsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
portuser must explicitly enable this feature.user must explicitly enable this feature.
hyphens - CSS: Cascading Style Sheets
manual words are broken for line-wrapping only where characters inside the word suggest line break op
portunities.
... see suggesting line break op
portunities below for details.
...however, suggested line break op
portunities (see suggesting line break op
portunities below) will override automatic break point selection when present.
... suggesting line break op
portunities there are two unicode characters used to manually specify potential line break points within text: u+2010 (hyphen) the "hard" hyphen character indicates a visible line break op
portunity.
<integer> - CSS: Cascading Style Sheets
opera 12.1 sup
ports values up to 215-1, ie up to 220-1, and other browsers even higher.
... during the css3 values cycle there was a lot of discussion about setting a minimum range to sup
port: the latest decision, in april 2012 during the lc phase, was [-227-1; 227-1], but other values like 224-1 and 230-1 were also proposed.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet<integer>chrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 3opera full sup
port 3.5safari full sup
port 1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
object-position - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetobject-positionchrome full sup
port 31edge full sup
port 16firefox full sup
port 36ie no sup
port noopera full sup
port 19 full sup
port 19 full sup
port ...
... 11.6prefixed prefixed implemented with the vendor prefix: -o-safari full sup
port 10webview android full sup
port 4.4.3chrome android full sup
port 31firefox android full sup
port 36opera android full sup
port 19 full sup
port 19 full sup
port 12prefixed prefixed implemented with the vendor prefix: -o-safari ios full sup
port 10samsung internet android full sup
port 2.0sup
port for three-value ...
...syntax of positionchrome no sup
port 31 — 68edge no sup
port 16 — 79firefox no sup
port 36 — 70ie no sup
port noopera no sup
port 19 — 55 no sup
port 19 — 55 full sup
port 11.6prefixed prefixed implemented with the vendor prefix: -o-safari full sup
port 10webview android no sup
port 4.4.3 — 68chrome android no sup
port 31 — 68firefox android full sup
port 36opera android no sup
port 19 — 48 no s...
...up
port 19 — 48 full sup
port 12prefixed prefixed implemented with the vendor prefix: -o-safari ios full sup
port 10samsung internet android no sup
port 2.0 — 10.0legend full sup
port full sup
port no sup
port no sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
Guide to scroll anchoring - CSS: Cascading Style Sheets
scroll anchoring adjusts the scroll position to compensate for the changes outside of the view
port.
... this means that the point in the document the user is looking at remains in the view
port, which may mean their scroll position actually changes in terms of how far they have moved through the document.
...the feature is enabled by default in sup
porting browsers.
... the only possible values are auto or none: auto is the initial value; as long as the user has a sup
ported browser the scroll anchoring behavior will happen, and they should see fewer content jumps.
ruby-position - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetruby-position experimentalchrome no sup
port noedge no sup
port 12 — 79firefox full sup
port 38ie no sup
port nonotes no sup
port nonotes notes internet explorer 9 and later sup
port an old draft values: inline (equivalent of having display: inline on the ...
...ruby), and above (synonym of the modern over).opera no sup
port nosafari no sup
port nonotes no sup
port 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 sup
port nochrome android no sup
port nofirefox android full sup
port 38opera android no sup
port nosafari ios ...
... no sup
port nonotes no sup
port 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).samsung internet android no sup
port nointer-character experimentalchrome no sup
port noedge no sup
port nofirefox no sup
port noie no sup
port noopera no sup
port nosafari ...
...no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
scroll-padding-block-end - CSS: Cascading Style Sheets
the scroll-padding-block-end property defines offsets for the end edge in the block dimension of the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targetted element and the edges of the scroll
port.
... syntax /* keyword values */ scroll-padding-block-end: auto; /* <length> values */ scroll-padding-block-end: 10px; scroll-padding-block-end: 1em; scroll-padding-block-end: 10%; /* global values */ scroll-padding-block-end: inherit; scroll-padding-block-end: initial; scroll-padding-block-end: unset; values <length-percentage> an inwards offset from the block end edge of the scroll
port, as a valid length or a percentage.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax auto | <length-percentage>where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding-block-end' in that specification.
scroll-padding-block-start - CSS: Cascading Style Sheets
the scroll-padding-block-start property defines offsets for the start edge in the block dimension of the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targetted element and the edges of the scroll
port.
... /* keyword values */ scroll-padding-block-start: auto; /* <length> values */ scroll-padding-block-start: 10px; scroll-padding-block-start: 1em; scroll-padding-block-start: 10%; /* global values */ scroll-padding-block-start: inherit; scroll-padding-block-start: initial; scroll-padding-block-start: unset; values <length-percentage> an inwards offset from the block start edge of the scroll
port, as a valid length or a percentage.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax auto | <length-percentage>where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding-block-start' in that specification.
scroll-padding-block - CSS: Cascading Style Sheets
the scroll-padding properties define offsets for the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scroll
port.
...scroll-padding-block-start syntax /* keyword values */ scroll-padding-block: auto; /* <length> values */ scroll-padding-block: 10px; scroll-padding-block: 1em .5em; scroll-padding-block: 10%; /* global values */ scroll-padding-block: inherit; scroll-padding-block: initial; scroll-padding-block: unset; values <length-percentage> an inwards offset from the corresponding edge of the scroll
port, as a valid length or a percentage.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax [ auto | <length-percentage> ]{1,2}where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding-block' in that specification.
scroll-padding-bottom - CSS: Cascading Style Sheets
the scroll-padding-bottom property defines offsets for the bottom of the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targetted element and the edges of the scroll
port.
... syntax /* keyword values */ scroll-padding-bottom: auto; /* <length> values */ scroll-padding-bottom: 10px; scroll-padding-bottom: 1em; scroll-padding-bottom: 10%; /* global values */ scroll-padding-bottom: inherit; scroll-padding-bottom: initial; scroll-padding-bottom: unset; values <length-percentage> an inwards offset from the bottom edge of the scroll
port, as a valid length or a percentage.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax auto | <length-percentage>where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding-bottom' in that specification.
scroll-padding-inline-end - CSS: Cascading Style Sheets
the scroll-padding-inline-end property defines offsets for the end edge in the inline dimension of the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targetted element and the edges of the scroll
port.
... syntax /* keyword values */ scroll-padding-inline-end: auto; /* <length> values */ scroll-padding-inline-end: 10px; scroll-padding-inline-end: 1em; scroll-padding-inline-end: 10%; /* global values */ scroll-padding-inline-end: inherit; scroll-padding-inline-end: initial; scroll-padding-inline-end: unset; values <length-percentage> an inwards offset from the inline end edge of the scroll
port, as a valid length or a percentage.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax auto | <length-percentage>where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding-inline-end' in that specification.
scroll-padding-inline-start - CSS: Cascading Style Sheets
the scroll-padding-inline-start property defines offsets for the start edge in the inline dimension of the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targetted element and the edges of the scroll
port.
...word values */ scroll-padding-inline-start: auto; /* <length> values */ scroll-padding-inline-start: 10px; scroll-padding-inline-start: 1em; scroll-padding-inline-start: 10%; /* global values */ scroll-padding-inline-start: inherit; scroll-padding-inline-start: initial; scroll-padding-inline-start: unset; values <length-percentage> an inwards offset from the inline start edge of the scroll
port, as a valid length or a percentage.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax auto | <length-percentage>where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding-inline-start' in that specification.
scroll-padding-inline - CSS: Cascading Style Sheets
the scroll-padding properties define offsets for the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targetted element and the edges of the scroll
port.
...adding-inline-start syntax /* keyword values */ scroll-padding-inline: auto; /* <length> values */ scroll-padding-inline: 10px; scroll-padding-inline: 1em .5em; scroll-padding-inline: 10%; /* global values */ scroll-padding-inline: inherit; scroll-padding-inline: initial; scroll-padding-inline: unset; values <length-percentage> an inwards offset from the corresponding edge of the scroll
port, as a valid length or a percentage.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax [ auto | <length-percentage> ]{1,2}where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding-inline' in that specification.
scroll-padding-left - CSS: Cascading Style Sheets
the scroll-padding-left property defines offsets for the left of the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targetted element and the edges of the scroll
port.
... syntax /* keyword values */ scroll-padding-left: auto; /* <length> values */ scroll-padding-left: 10px; scroll-padding-left: 1em; scroll-padding-left: 10%; /* global values */ scroll-padding-left: inherit; scroll-padding-left: initial; scroll-padding-left: unset; values <length-percentage> an inwards offset from the left edge of the scroll
port, as a valid length or a percentage.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax auto | <length-percentage>where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding-left' in that specification.
scroll-padding-right - CSS: Cascading Style Sheets
the scroll-padding-right property defines offsets for the right of the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targetted element and the edges of the scroll
port.
... syntax /* keyword values */ scroll-padding-right: auto; /* <length> values */ scroll-padding-right: 10px; scroll-padding-right: 1em; scroll-padding-right: 10%; /* global values */ scroll-padding-right: inherit; scroll-padding-right: initial; scroll-padding-right: unset; values <length-percentage> an inwards offset from the top edge of the scroll
port, as a valid length or a percentage.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax auto | <length-percentage>where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding-right' in that specification.
scroll-padding-top - CSS: Cascading Style Sheets
the scroll-padding-top property defines offsets for the top of the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targetted element and the edges of the scroll
port.
... syntax /* keyword values */ scroll-padding-top: auto; /* <length> values */ scroll-padding-top: 10px; scroll-padding-top: 1em; scroll-padding-top: 10%; /* global values */ scroll-padding-top: inherit; scroll-padding-top: initial; scroll-padding-top: unset; values <length-percentage> an inwards offset from the top edge of the scroll
port, as a valid length or a percentage.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax auto | <length-percentage>where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding-top' in that specification.
scroll-padding - CSS: Cascading Style Sheets
the scroll-padding-* properties define offsets for the optimal viewing region of the scroll
port: the region used as the target region for placing things in view of the user.
... this allows the author to exclude regions of the scroll
port that are obscured by other content (such as fixed-positioned toolbars or sidebars), or simply to put more breathing room between a targeted element and the edges of the scroll
port.
...croll-padding-left scroll-padding-right scroll-padding-top syntax /* keyword values */ scroll-padding: auto; /* <length> values */ scroll-padding: 10px; scroll-padding: 1em .5em 1em 1em; scroll-padding: 10%; /* global values */ scroll-padding: inherit; scroll-padding: initial; scroll-padding: unset; values <length-percentage> an inwards offset from the corresponding edge of the scroll
port, as a valid <length> or a <percentage>.
... formal definition initial valueautoapplies toscroll containersinheritednopercentagesrelative to the scroll container's scroll
portcomputed valueas specifiedanimation typeby computed value type formal syntax [ auto | <length-percentage> ]{1,4}where <length-percentage> = <length> | <percentage> specifications specification status comment css scroll snap module level 1the definition of 'scroll-padding' in that specification.
scroll-snap-align - CSS: Cascading Style Sheets
the scroll-snap-align property specifies the box’s snap position as an alignment of its snap area (as the alignment subject) within its snap container’s snap
port (as the alignment container).
... start the start alignment of this box's scroll snap area, within the scroll container's snap
port is a snap position in this axis.
... end the end alignment of this box's scroll snap area, within the scroll container's snap
port is a snap position in this axis.
... center the center alignment of this box's scroll snap area, within the scroll container's snap
port is a snap position in this axis.
<shape> - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet<shape> deprecatedchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 5.5opera full sup
port 9.5safari full sup
port 1.3webview android full s...
...up
port 37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0rect() deprecatedchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 5.5notes full sup
port 5.5notes notes for internet explorer versi...
...for internet explorer 8 and later versions, only the standard comma-separated syntax is sup
ported.opera full sup
port 9.5safari full sup
port 1.3webview android full sup
port 37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend ...
... full sup
port full sup
portdeprecated.
Challenge solutions - Developer guides
solution css sup
ports common color names like orange, yellow, blue, green, or black.
... it also sup
ports some more exotic color names like chartreuse, fuschia, or burlywood.
... solution the following rule puts borders around only <td> elements that are inside the <tbody> element of the table with id=demo-table: #demo-table tbody td { border:1px solid #7a7; } media separate print style file challenge move the print-specific style rules to a separate css file and im
port them into your style4.css stylesheet.
...in style4.css, add the following line at the beginning of the file: @im
port url("style4_print.css") print; heading hover color challenge make the headings turn blue when the mouse pointer is over them.
Mutation events - Developer guides
the practical reasons to avoid the mutation events are performance issues and cross-browser sup
port.
... cross-browser sup
port these events are not implemented consistently across different browsers, for example: ie prior to version 9 didn't sup
port the mutation events at all and does not implement some of them correctly in version 9 (for example, domnodeinserted) webkit doesn't sup
port domattrmodified (see webkit bug 8191 and the workaround) "mutation name events", i.e.
... domelementnamechanged and domattributenamechanged are not sup
ported in firefox (as of version 11), and probably in other browsers as well.
... dottoro documents browser sup
port for mutation events.
Separate sites for mobile and desktop - Developer guides
conceptually simple, this is the easiest option to add to an existing site, especially if you are using a cms or web application that sup
ports templates.
...even more im
portant than that, though, is the fact that user-agent detection is inherently flawed, and anything but future-proof.
...this is because the default browsers on some feature-phones do not sup
port the same markup that you would use to code a website targeted at the desktop, but instead understand formats like xhtml-mp or the older wml.
...in fact, mozilla picked this strategy for the mobile versions of addons.mozilla.org (amo) and sup
port.mozilla.org (sumo).
Mobile Web Development - Developer guides
their screens are usually smaller, obviously, but they also usually automatically switch the screen orientation between
portrait and landscape mode as the user rotates the device.
...apis like geolocation or orientation are either not sup
ported on desktops or are much less useful, and these apis give mobile users new ways to interact with your site.
...it includes techniques such as: fluid css layouts, to make the page adapt smoothly as the browser window size changes the use of media queries to conditionally include css rules appropriate for the device screen width and height the view
port meta tag instructs the browser to display your site at the appropriate scale for the user's device.
... for browsers that don't sup
port these features, provide an acceptable fallback.
The HTML autocomplete attribute - HTML: Hypertext Markup Language
address-level1 always represents the broadest administrative division; it is the least-specific
portion of the address short of the country name.
... united states a typical home address within the united states looks like this: 432 anywhere st exampleville ca 95555 in the united states, the least-specific
portion of the address is the state, in this case "ca" (the official us postal service shorthand for "california").
... the second-least specific
portion of the address is the city or town name, so address-level2 is "exampleville" in this example address.
... japan an address in japan is typically written in one line, in an order from the least-specific to more-specific
portions (in reverse order to the united states).
<acronym> - HTML: Hypertext Markup Language
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetacronym deprecatednon-standardchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie full sup
port yesopera full sup
port yessafari full sup
port yeswebview android fu...
...ll sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
portnon-standard.
... expect poor cross-browser sup
port.non-standard.
... expect poor cross-browser sup
port.deprecated.
<applet>: The Embed Java Applet element - HTML: Hypertext Markup Language
use of java applets on the web is deprecated; most browsers no longer sup
port use of plug-ins, including the java plug-in.
...the html 4.01 specification defines values of bottom, left, middle, right, and top, whereas microsoft and netscape also might sup
port absbottom, absmiddle, baseline, center, and texttop.
... alt this attribute causes a descriptive text alternate to be displayed on browsers that do not sup
port java.
... datafld this attribute, sup
ported by internet explorer 4 and higher, specifies the column name from the data source object that supplies the bound data.
<b>: The Bring Attention To element - HTML: Hypertext Markup Language
the html bring attention to element (<b>) is used to draw the reader's attention to the element's contents, which are not otherwise granted special im
portance.
...however, you should not use <b> for styling text; instead, you should use the css font-weight property to create boldface text, or the <strong> element to indicate that text is of special im
portance.
... usage notes use the <b> for cases like keywords in a summary, product names in a review, or other spans of text whose typical presentation would be boldfaced (but not including any special im
portance).
...the <strong> element represents text of certain im
portance, <em> puts some emphasis on the text and the <mark> element represents text of certain relevance.
<basefont> - HTML: Hypertext Markup Language
attributes like all other html elements, this element sup
ports the global attributes.
...the document text in the default style is rendered in the first font face that the client's browser sup
ports.
... if no font listed is installed on the local system, the browser typically defaults to the pro
portional or fixed-width font for that system.
...though once (imprecisely) normalized in html 3.2, it wasn't sup
ported in all major browsers.
<input type="hidden"> - HTML: Hypertext Markup Language
sup
ported common attributes autocomplete idl attributes value methods none.
... im
portant: while the value isn't displayed to the user in the page's content, it is visible—and can be edited—using any browser's developer tools or "view source" functionality.
... additional attributes in addition to the attributes common to all <input> elements, hidden inputs offer the following attributes: attribute description name like all input types, the name of the input to re
port when submitting the form; the special value _charset_ causes the hidden input's value to be re
ported as the character encoding used to submit the form name this is actually one of the common attributes, but it has a special meaning available for hidden inputs.
...however, when the form is submitted, a hidden input whose name is set to _charset_ will automatically be re
ported with the value set to the character encoding used to submit the form.
<input type="image"> - HTML: Hypertext Markup Language
sup
ported common attributes alt, src, width, height, formaction, formenctype, formmethod, formnovalidate, formtarget idl attributes none.
... additional attributes in addition to the attributes shared by all <input> elements, image button inputs sup
port the following attributes: attribute description alt alternate string to display when the image can't be shown formaction the url to which to submit the data formenctype the encoding method to use when submitting the form data formmethod the http method to use when submitting the form formnovalidate a boolean which, if present, indicates that the form shouldn't be validated before submission formtarget a string indicating ...
... im
portant: while the alt attribute is technically optional, you should always include one to maximize the usability of your content.
...this method sup
ports complex data and file attachments.
<picture>: The Picture element - HTML: Hypertext Markup Language
if no matches are found—or the browser doesn't sup
port the <picture> element—the url of the <img> element's src attribute is selected.
... offering alternative image formats, for cases where certain formats are not sup
ported.
... content categories flow content, phrasing content, embedded content permitted content zero or more <source> elements, followed by one <img> element, optionally intermixed with script-sup
porting elements.
...if the user agent does not sup
port the given type, the <source> element is skipped.
<tfoot>: The Table Foot element - HTML: Hypertext Markup Language
note: do not use this attribute as it is obsolete (not sup
ported) in the latest standard.
... note: do not use this attribute as it is obsolete (and not sup
ported) in the latest standard.
... note: do not use this attribute as it is obsolete (and not sup
ported) in the latest standard.
... note: do not use this attribute as it is obsolete (and not sup
ported) in the latest standard: instead set the css vertical-align property on it.
<thead>: The Table Head element - HTML: Hypertext Markup Language
note: do not use this attribute as it is obsolete (not sup
ported) in the latest standard.
... note: do not use this attribute as it is obsolete (and not sup
ported) in the latest standard.
... note: do not use this attribute as it is obsolete (and not sup
ported) in the latest standard.
... note: do not use this attribute as it is obsolete (and not sup
ported) in the latest standard: instead set the css vertical-align property on it.
<tr>: The Table Row element - HTML: Hypertext Markup Language
to provide additional control over how cells fit into (or span across) columns, both <th> and <td> sup
port the colspan attribute, which lets you specify how many columns wide the cell should be, with the default being 1.
...this alignment type was never widely sup
ported.
... this attribute is obsolete, and was never widely sup
ported anyway.
... technical summary content categories none permitted content zero or more <td> and/or <th> elements; script-sup
porting elements (<script> and <template>) are also allowed tag omission start tag is mandatory.
accesskey - HTML: Hypertext Markup Language
note: in the whatwg spec, it says you can specify multiple space-separated characters, and the browser will use the first one it sup
ports.
...ie/edge uses the first one it sup
ports without problems, provided there are no conflicts with other commands.
... 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 sup
port, there are numerous concerns with the accesskey attribute: an accesskey value can conflict with a system or browser keyboard shortcut, or assistive technology functionality.
... recommendation only sup
ported on <a>, <area>, <button>, <input>, <label>, <legend> and <textarea> ...
Microformats - HTML: Hypertext Markup Language
microformats use sup
porting vocabularies to describe objects and name-value pairs to assign values to their properties.
... microformats are sup
ported by all major search engines.
..."dt-start" datetime="2019-06-29t09:00:00-07:00">june 29, 2019 at 9:00am (-0700)</time><br>through <time class="dt-end" datetime="2019-06-30t18:00:00-07:00">june 30, 2019 at 6:00pm (-0700)</time><br> <div class="p-location h-card"> <div> <span class="p-name">mozilla</span> </div> <div> <span class="p-street-address">1120 nw couch st</span>, <span class="p-locality">
portland</span>, <span class="p-region">oregon</span>, <span class="p-country">us</span> </div> <data class="p-latitude" value="45.52345"></data> <data class="p-longitude" value="-122.682677"></data> </div> <div class="e-content">come join us </div> <div> <span class="p-author h-card"><a class="u-url p-name" href="https://aaronparecki.com">aaron pareck...
...019-05-25t18:00:00-07:00" ], "content": [ { "html": "come join us", "value": "come join us", "lang": "en" } ], "location": [ { "type": [ "h-card" ], "properties": { "name": [ "mozilla" ], p-street-address: [ "1120 nw couch st" ] "locality": [ "
portland" ], "region": [ "oregon" ], "country": [ "us" ], "latitude": [ "45.52345" ], "longitude": [ "-122.682677" ] }, "lang": "en", "value": "mozilla" } ] }, "lang": "en" } ], ...
HTML: Hypertext Markup Language
introduction to html this module sets the stage, getting you used to im
portant concepts and syntax such as looking at applying html to text, how to create hyperlinks, and how to use html to structure a web page.
... html forms forms are a very im
portant part of the web — these provide much of the functionality you need for interacting with websites, e.g.
... cors settings attributes some html elements that provide sup
port for cors, such as <img> or <video>, have a crossorigin attribute (crossorigin property), which lets you configure the cors requests for the element's fetched data.
... guide to media types and formats on the web the <audio> and <video> elements allow you to play audio and video media natively within your content without the need for external software sup
port.
Common MIME types - HTTP
two primary mime types are im
portant for the role of default types: text/plain is the default value for textual files.
...this table lists some im
portant mime types for the web: extension kind of document mime type .aac aac audio audio/aac .abw abiword document application/x-abiword .arc archive document (multiple files embedded) application/x-freearc .avi avi: audio video interleave video/x-msvideo .azw amazon kindle ebook format application/vnd.amaz...
...ds opendocument spreadsheet document application/vnd.oasis.opendocument.spreadsheet .odt opendocument text document application/vnd.oasis.opendocument.text .oga ogg audio audio/ogg .ogv ogg video video/ogg .ogx ogg application/ogg .opus opus audio audio/opus .otf opentype font font/otf .png
portable network graphics image/png .pdf adobe
portable document format (pdf) application/pdf .php hypertext preprocessor (personal home page) application/x-httpd-php .ppt microsoft powerpoint application/vnd.ms-powerpoint .pptx microsoft powerpoint (openxml) application/vnd.openxmlformats-officedocument.presentationml.presentation ...
... (rtf) application/rtf .sh bourne shell script application/x-sh .svg scalable vector graphics (svg) image/svg+xml .swf small web format (swf) or adobe flash document application/x-shockwave-flash .tar tape archive (tar) application/x-tar .tif .tiff tagged image file format (tiff) image/tiff .ts mpeg trans
port stream video/mp2t .ttf truetype font font/ttf .txt text, (generally ascii or iso 8859-n) text/plain .vsd microsoft visio application/vnd.visio .wav waveform audio format audio/wav .weba webm audio audio/webm .webm webm video video/webm .webp webp image image/webp .woff web open ...
Access-Control-Allow-Headers - HTTP
header type response header forbidden header name no syntax access-control-allow-headers: <header-name>[, <header-name>]* access-control-allow-headers: * directives <header-name> the name of a sup
ported request header.
...it indicates that in addition to the cors-safelisted request headers, a custom header named x-custom-header is sup
ported by cors requests to the server.
... access-control-allow-headers: x-custom-header multiple headers this example shows access-control-allow-headers when it specifies sup
port for multiple headers.
...-method, access-control-request-headers, and origin, such as: options /resource/foo access-control-request-method: delete access-control-request-headers: origin, x-requested-with origin: https://foo.bar.org response if the server allows cors requests to use the delete method, it responds with an access-control-allow-methods response header, which lists delete along with the other methods it sup
ports: http/1.1 200 ok content-length: 0 connection: keep-alive access-control-allow-origin: https://foo.bar.org access-control-allow-methods: post, get, options, delete access-control-max-age: 86400 if the requested method isn't sup
ported, the server will respond with an error.
Host - HTTP
the host request header specifies the host and
port number of the server to which the request is being sent.
... if no
port is included, the default
port for the service requested (e.g., 443 for an https url, and 80 for an http url) is implied.
... header type request header forbidden header name yes syntax host: <host>:<
port> directives <host> the domain name of the server (for virtual hosting).
... <
port> optional tcp
port number on which the server is listening.
Firefox user agent string reference - HTTP
though fixed in firefox 69, previous 32-bit versions of firefox running on 64-bit processors would re
port that the system is using a 32-bit cpu.
...for increased interoperability, if the browser is running on a version below 4 it will re
port 4.4.
... android versions 4 and above will re
port the version accurately.
... see also firefox os user agent string (blog post w/bug 777710 reference) final user agent string for firefox 4 (blog post) recommendations on sniffing the ua string for cross-browser sup
port window.navigator.useragent add android version to fennec ua string (bug 1169772) comments to mozilla.dev.platform ...
HTTP Messages - HTTP
the request target, usually a url, or the absolute path of the protocol,
port, and domain are usually characterized by the request context.
... get http://developer.mozilla.org/docs/web/http/messages http/1.1 the authority component of a url, consisting of the domain name and optionally the
port (prefixed by a ':'), is called the authority form.
...this is an additional step in http/2, between http/1.1 messages and the underlying trans
port protocol.
...the http/2 framing mechanism adds a new intermediate layer between the http/1.x syntax and the underlying trans
port protocol, without fundamentally modifying it: building upon proven mechanisms.
Control flow and error handling - JavaScript
« previousnext » javascript sup
ports a compact set of statements, specifically control flow statements, that you can use to incorporate a great deal of interactivity in your application.
... im
portant: javascript before ecmascript2015 (6th edition) does not have block scope!
...javascript sup
ports two conditional statements: if...else and switch.
... it is also im
portant to note that the finally block will execute whether or not an exception is thrown.
Introduction - JavaScript
in contrast to java's compile-time system of classes built by declarations, javascript sup
ports a runtime system based on a small number of data types representing numeric, boolean, and string values.
...javascript also sup
ports functions without any special declarative requirements.
...this standardized version of javascript, called ecmascript, behaves the same way in all applications that sup
port the standard.
...javascript sup
ports all functionality outlined in the ecmascript specification.
Date.prototype.getUTCMilliseconds() - JavaScript
the getutcmilliseconds() method returns the milliseconds
portion of the time object's value.
... syntax dateobj.getutcmilliseconds() return value an integer number, between 0 and 999, representing the milliseconds
portion of the given date object.
... this method is a companion to the other utc based methods that give hour
portion, minute
portion, etc.; this method gives milliseconds
portion.
... examples using getutcmilliseconds() the following example assigns the milliseconds
portion of the current time to the variable milliseconds.
Date.prototype.toDateString() - JavaScript
the todatestring() method returns the date
portion of a date object in english in the following format separated by spaces: first three letters of the week day name first three letters of the month name two digit day of the month, padded on the left a zero if necessary four digit year (at least), padded on the left with zeros if necessary e.g.
... syntax dateobj.todatestring() return value a string representing the date
portion of the given date object in human readable form in english.
...in spidermonkey, this consists of the date
portion (day, month, and year) followed by the time
portion (hours, minutes, seconds, and time zone).
... sometimes it is desirable to obtain a string of the time
portion; such a thing can be accomplished with the totimestring() method.
Date.prototype.toTimeString() - JavaScript
the totimestring() method returns the time
portion of a date object in human readable form in american english.
... syntax dateobj.totimestring() return value a string representing the time
portion of the given date in human readable form in american english.
...in spidermonkey, this consists of the date
portion (day, month, and year) followed by the time
portion (hours, minutes, seconds, and time zone).
... sometimes it is desirable to obtain a string of the time
portion; such a thing can be accomplished with the totimestring() method.
Function.prototype.bind() - JavaScript
'what is trying to be bound is not callable'); } return function(){ var funcargs = args.concat(slice.call(arguments)) return thatfunc.apply(thatarg, funcargs); }; }; })(); you can partially work around this by inserting the following code at the beginning of your scripts, allowing use of much of the functionality of bind() in implementations that do not natively sup
port it.
...(this could be added if the implementation sup
ports object.defineproperty, or partially implemented [without throw-on-delete behavior] if the implementation sup
ports the __definegetter__ and __definesetter__ extensions.) the partial implementation creates functions that have a prototype property.
... however, provided arguments are still prepended to the constructor call: function point(x, y) { this.x = x; this.y = y; } point.prototype.tostring = function() { return `${this.x},${this.y}`; }; const p = new point(1, 2); p.tostring(); // '1,2' // not sup
ported in the polyfill below, // works fine with native bind: const yaxispoint = point.bind(null, 0/*x*/); const emptyobj = {}; const yaxispoint = point.bind(emptyobj, 0/*x*/); const axispoint = new yaxispoint(5); axispoint.tostring(); // '0,5' axispoint instanceof point; // true axispoint instanceof yaxispoint; // true new yaxispoint(17, 42) instanceof p...
... // example can be run directly in your javascript console // ...continued from above // can still be called as a normal function // (although usually this is undesired) yaxispoint(13); `${emptyobj.x},${emptyobj.y}`; // > '0,13' if you wish to sup
port the use of a bound function only using new, or only by calling it, the target function must enforce that restriction.
Number.prototype.toLocaleString() - JavaScript
english locale checking for sup
port for locales and options arguments the locales and options arguments are not sup
ported in all browsers yet.
... to check for sup
port in es5.1 and later implementations, the requirement that illegal language tags are rejected with a rangeerror exception can be used: function tolocalestringsup
portslocales() { var number = 0; try { number.tolocalestring('i'); } catch (e) { return e.name === 'rangeerror'; } return false; } prior to es5.1, implementations were not required to throw a range error exception if tolocalestring is called with arguments.
... a check that works in all hosts, including those sup
porting ecma-262 prior to ed 5.1, is to test for the features specified in ecma-402 that are required to sup
port regional options for number.prototype.tolocalestring directly: function tolocalestringsup
portsoptions() { return !!(typeof intl == 'object' && intl && typeof intl.numberformat == 'function'); } this tests for a global intl object, checks that it's not null and that it has a numberformat property that is a function.
...chinese decimal console.log(number.tolocalestring('zh-hans-cn-u-nu-hanidec')); // → 一二三,四五六.七八九 // when requesting a language that may not be sup
ported, such as // balinese, include a fallback language, in this case indonesian console.log(number.tolocalestring(['ban', 'id'])); // → 123.456,789 using options the results provided by tolocalestring can be customized using the options argument: var number = 123456.789; // request a currency format console.log(number.tolocalestring('de-de', { style: 'currency', currency: 'eur' })); // → 12...
Object.create() - JavaScript
note that while the setting of null as [[prototype]] is sup
ported in the real es5 object.create, this polyfill cannot sup
port it due to a limitation inherent in versions of ecmascript lower than 5.
... if (typeof object.create !== "function") { object.create = function (proto, propertiesobject) { if (typeof proto !== 'object' && typeof proto !== 'function') { throw new typeerror('object prototype may only be an object: ' + proto); } else if (proto === null) { throw new error("this browser's implementation of object.create is a shim and doesn't sup
port 'null' as the first argument."); } if (typeof propertiesobject != 'undefined') { throw new error("this browser's implementation of object.create is a shim and doesn't sup
port a second argument."); } function f() {} f.prototype = proto; return new f(); }; } examples classical inheritance with object.create() below is an example o...
...this is for a single inheritance, which is all that javascript sup
ports.
...if sup
port for older browsers is necessary, jquery.extend() or _.assign() can be used.
Promise - JavaScript
in that case the action (if appropriate) will be performed at the first asynchronous op
portunity.
...the constructor is primarily used to wrap functions that do not already sup
port promises.
...dle rejected promise (${reason}) here.`); }); // end log.insertadjacenthtml('beforeend', thispromisecount + ') promise made (sync code terminated)'); } if ("promise" in window) { let btn = document.getelementbyid("btn"); btn.addeventlistener("click",testpromise); } else { log = document.getelementbyid('log'); log.innerhtml = "live example not available as your browser doesn't sup
port the <code>promise<code> interface."; } this example is started by clicking the button.
... (you need a browser that sup
ports promise.
handler.getOwnPropertyDescriptor() - JavaScript
a property cannot be re
ported as non-existent, if it exists as a non-configurable own property of the target object.
... a property cannot be re
ported as non-existent, if it exists as an own property of the target object and the target object is not extensible.
... a property cannot be re
ported as existent, if it does not exists as an own property of the target object and the target object is not extensible.
... a property cannot be re
ported as non-configurable, if it does not exists as an own property of the target object or if it exists as a configurable own property of the target object.
String.prototype.replaceAll() - JavaScript
as of august 2020 the replaceall() method is sup
ported by firefox but not by chrome.
...a number of special replacement patterns are sup
ported; see the "specifying a string as a parameter" section below.
... $` inserts the
portion of the string that precedes the matched substring.
... $' inserts the
portion of the string that follows the matched substring.
WebAssembly.CompileError - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jscompileerrorchrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0compileerror() constructorchrome ...
... full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port ...
... 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
WebAssembly.LinkError - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jslinkerrorchrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0linkerror() constructorchrome ...
... full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 5...
...2notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
WebAssembly.RuntimeError - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsruntimeerrorchrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0runtimeerror() constructorchrome ...
... full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port ...
... 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
Lexical grammar - JavaScript
keywords reserved keywords as of ecmascript 2015 break case catch class const continue debugger default delete do else ex
port extends finally for function if im
port in instanceof new return super switch this throw try typeof var void while with yield future reserved keywords the following are reserved as future keywords by the ecmascript specification.
... a.im
port a['im
port'] a = { im
port: 'test' }.
... function im
port() {} // illegal.
... `string text` `string text line 1 string text line 2` `string text ${expression} string text` tag `string text ${expression} string text` automatic semicolon insertion some javascript statements must be terminated with semicolons and are therefore affected by automatic semicolon insertion (asi): empty statement let, const, variable statement im
port, ex
port, module declaration expression statement debugger continue, break, throw return the ecmascript specification mentions three rules of semicolon insertion.
JavaScript typed arrays - JavaScript
each entry in a javascript typed array is a raw binary value in one of a number of sup
ported formats, from 8-bit integers to 64-bit floating-point numbers.
...moreover, not all methods available for normal arrays are sup
ported by typed arrays (e.g.
... xmlhttprequest.prototype.send() xmlhttprequest instances' send() method now sup
ports typed arrays and arraybuffer objects as argument.
...this can be done using array.from(), or using the following code where array.from() is unsup
ported.
Guide to streaming audio and video - Web media technologies
https live streaming https live streaming (hls) is a protocol developed by apple and sup
ported by safari on all of their platforms.
... hls may also be sup
ported in other environments, although in some cases this sup
port is conditional.
... for example, because many web sites' mobile-specific content assume that mobile browsers sup
port hls, firefox for android does as well, in order to avoid strange compatibility errors from occurring due to this assumption being incorrect.
... the desktop version of android, however, does not sup
port hls.
Web media technologies
guides overview of media technology on the web a general look at the open web technologies and apis that provide sup
port for audio and video playback, manipulation, and recording.
...this includes recommendations for what formats to use for what kinds of content, best practices including how to provide fallbacks and how to prioritize media types, and also includes general browser sup
port information for each media container and codec.
... positional audio in a 3d environment in 3d environments, which may either be 3d scenes rendered to the screen or a mixed reality experience experienced using a headset, it's im
portant for audio to be performed so that it sounds like it's coming from the direction of its source.
... webxr webxr, which has replaced the now-obsolete webvr api, is a technology that provides sup
port for creating virtual reality (vr) and augmented reality (ar) content.
Using dns-prefetch - Web Performance
combining the two provides an op
portunity to further reduce the perceived latency of cross-origin requests.
... the logic behind pairing these hints is because sup
port for dns-prefetch is better than sup
port for preconnect.
... browsers that don’t sup
port preconnect will still get some added benefit by falling back to dns-prefetch.
...if a non-sup
porting browser encounters a dns-prefetch hint—or any other resource hint—your site won’t break.
How to make PWAs re-engageable using Notifications and Push - Progressive web apps (PWAs)
the technology is still at a very early stage — some working examples use the google cloud messaging platform, but are being rewritten to sup
port vapid (voluntary application identification), which offers an extra layer of security for your app.
...if not, we initialize a new subscription: const response = await fetch('./vapidpublickey'); const vapidpublickey = await response.text(); const convertedvapidkey = urlbase64touint8array(vapidpublickey); the app fetches the server's public key and converts the response to text; then it needs to be converted to a uint8array (to sup
port chrome).
...you can use the following ones:"); console.log(webpush.generatevapidkeys()); return; } webpush.setvapiddetails( 'https://serviceworke.rs/', process.env.vapid_public_key, process.env.vapid_private_key ); next, a module defines and ex
ports all the routes an app needs to handle: getting the vapid public key, registering, and then sending notifications.
... module.ex
ports = function(app, route) { app.get(route + 'vapidpublickey', function(req, res) { res.send(process.env.vapid_public_key); }); app.post(route + 'register', function(req, res) { res.sendstatus(201); }); app.post(route + 'sendnotification', function(req, res) { const subscription = req.body.subscription; const payload = req.body.payload; const options = { ttl: req.body.ttl }; settimeout(function() { webpush.sendnotification(subscription, payload, options) .then(function() { res.sendstatus(201); }) .catch(function(error) { console.log(error); res.sendstatus(500); }); }, req.body.delay * 1000); ...
Graphic design for responsive sites - Progressive web apps (PWAs)
this really depends on what target devices you have to sup
port, how complex the graphics need to be, and how much interactivity your graphics require.
... css media queries allow us to serve different css rules dependant on view
port dimensions, and you should consider using mobile first media queries where possible.
...these may not be sup
ported in older browsers like ie6-8, but they generally degrade gracefully, are fairly easy to write, and become much more flexible and powerful when combined with javascript and other technologies.
... webgl/canvas you can create a canvas to draw interactive graphics on using the html <canvas> element, then use the canvas api to create shapes, lines, im
port image files, create text, do compositing operations, and much more.
Responsive Navigation Patterns - Progressive web apps (PWAs)
you could rank the item priorities to ensure the most im
portant items always appear in the top navigation.
... pros: one button in header maximizes space for content on a small screen im
portant items stay visiblein most screen sizes and you decide the item priorities legibility of navigation items is maintained with adequate spacing, by automatically hiding items that don't fit cons: navigation items might be less discoverable because some items are hidden in the drop-down or toggle menu users may not notice the button contains a navigation menu in the smallest screen size one more step is needed to access the hidden navigation items pattern 2: expandable bottom menu similar to the first pattern, the top navigation items rearrange for smaller widths until there is not enough space.
...you could rank the item priorities to ensure the most im
portant items always appear in the top navigation.
... pros: expandable menu is easy to discover im
portant items are always visible and you decide the item priorities legibility of navigation items is maintained with adequate spacing, by automatically hiding items that don't fit cons: one more step is needed to access the navigation items that are hidden navigation items might be less discoverable because some items are hidden less space for content in the smallest screen size pattern 3: left hidden menu the main navigation is always on the left except in the smallest scre...
stroke-linejoin - SVG: Scalable Vector Graphics
ue --> <path d="m7,5 a2,2 0,0,0 2,-3 a3,3 0 0 1 2,3.5" stroke="black" fill="none" stroke-linejoin="round" /> <!-- upper right path: effect of the "bevel" value --> <path d="m13,5 a2,2 0,0,0 2,-3 a3,3 0 0 1 2,3.5" stroke="black" fill="none" stroke-linejoin="bevel" /> <!-- bottom left path: effect of the "miter-clip" value with fallback to "miter" if not sup
ported.
... --> <path d="m3,11 a2,2 0,0,0 2,-3 a3,3 0 0 1 2,3.5" stroke="black" fill="none" stroke-linejoin="miter-clip" /> <!-- bottom right path: effect of the "arcs" value with fallback to "miter" if not sup
ported.
...<use xlink:href="#highlight" x="6" /> <use xlink:href="#highlight" x="12" /> <use xlink:href="#highlight" x="2" y="6" /> <use xlink:href="#highlight" x="8" y="6" /> </svg> usage context value arcs | bevel |miter | miter-clip | round default value miter animatable yes arcs note: the arcs value as been introduced in svg2 and it isn't widely sup
ported yet, see browser compatibility bellow for details.
... <circle cx="5" cy="5" r="0.05" fill="pink" /> <path d="m7,5 l0.75,-3 l0.75,3" stroke="pink" fill="none" stroke-width="0.025" /> <circle cx="7" cy="5" r="0.05" fill="pink" /> <circle cx="7.75" cy="2" r="0.05" fill="pink" /> <circle cx="8.5" cy="5" r="0.05" fill="pink" /> </g> </svg> miter-clip note: the miter-clip value as been introduced in svg2 and it isn't widely sup
ported yet, see browser compatibility bellow for details.
<svg> - SVG: Scalable Vector Graphics
the svg element is a container that defines a new coordinate system and view
port.
... value type: <string> ; default value: text/css; animatable: no height the displayed height of the rectangular view
port.
... value type: <number> ; default value: none; animatable: no viewbox the svg view
port coordinates for the current svg fragment.
... value type: <list-of-numbers> ; default value: none; animatable: yes width the displayed width of the rectangular view
port.
Namespaces crash course - SVG: Scalable Vector Graphics
it is im
portant to understand the concept of namespaces and how they are used if you plan to author svg content.
... versions of svg viewers prior to the release of firefox 1.5 unfortunately paid scant attention to namespaces, but they are essential to multi-xml dialect sup
porting user agents such as gecko-based browsers which must be very strict.
... note that namespace names are just strings, so the fact that the svg namespace name also looks like a uri isn't im
portant.
...when scripting svg, it is im
portant to use the namespace aware methods.
Using templates and slots - Web Components
this was possible before, but it is made a lot easier by the html <template> element (which is well-sup
ported in modern browsers).
... so 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-sup
ported in browsers; the shadow dom api is sup
ported by default in firefox (version 63 onwards), chrome, opera, safari, and edge (starting with version 79).
...this has more limited sup
port than <template>, available since chrome 53, opera 40, safari 10, firefox 59, and edge 79.
... so, if we want to add a slot into our trivial example, we could update our template's paragraph element like this: <p><slot name="my-text">my default text</slot></p> if the slot's content isn't defined when the element is included in the markup, or if the browser doesn't sup
port slots, <my-paragraph> just contains the fallback content "my default text".
<xsl:output> - XSLT: Extensible Stylesheet Language Transformations
standalone (not sup
ported.) if present, indicates that a standalone declaration should occur in the output document and gives its value.
... indent (not sup
ported.) specifies if the output should be indented to indicate its hierarchic structure.
... media-type (not sup
ported.) specifies the output document mime type.
... gecko sup
port partial sup
port.
XSLT elements reference - XSLT: Extensible Stylesheet Language Transformations
ated is placed inside curly brackets: <img src="{$image-dir}/mygraphic.jpg"/> this would result in the following: <img src="/images/mygraphic.jpg"/> the element annotations that follow include a description, a syntax listing, a list of required and optional attributes, a description of type and position, its source in the w3c recommendation and an explanation of the degree of present gecko sup
port.
... use the {{listsubpages}} macro once the bcd for <xsl:fallback>, <xsl:im
port>, <xsl:namespace-alias>, <xsl:number>, <xsl:output>, <xsl:stylesheet>, <xsl:text> and <xsl:value-of> is fully migrated.
... <xsl:apply-im
ports><xsl:apply-templates><xsl:attribute-set><xsl:attribute><xsl:call-template><xsl:choose><xsl:comment><xsl:copy-of><xsl:copy><xsl:decimal-format><xsl:element><xsl:fallback><xsl:for-each><xsl:if><xsl:im
port><xsl:include><xsl:key><xsl:message><xsl:namespace-alias><xsl:number><xsl:otherwise><xsl:output><xsl:param><xsl:preserve-space><xsl:processing-instruction><xsl:sort><xsl:strip-space><xsl:stylesheet><xsl:template><xsl:text><xsl:transform><xsl:value-of><xsl:variable><xsl:when><xsl:with-param> <xsl:apply-im
ports> <xsl:apply-templates> <xsl:attribute> <xsl:attribute-set> <xsl:call-template> <xsl:choose> <xsl:comment> <xsl:copy> <xsl:copy-of> <xsl:decimal-format> <xsl:element> <xsl:fallback> (not sup
ported) <xsl:for-each> <xsl:if> <xsl:im
port> (mostly sup
ported) ...
...<xsl:include> <xsl:key> <xsl:message> <xsl:namespace-alias> (not sup
ported) <xsl:number> (partially sup
ported) <xsl:otherwise> <xsl:output> (partially sup
ported) <xsl:param> <xsl:preserve-space> <xsl:processing-instruction> <xsl:sort> <xsl:strip-space> <xsl:stylesheet> (partially sup
ported) <xsl:template> <xsl:text> (partially sup
ported) <xsl:transform> <xsl:value-of> (partially sup
ported) <xsl:variable> <xsl:when> <xsl:with-param> ...
The Netscape XSLT/XPath Reference - XSLT: Extensible Stylesheet Language Transformations
elements xsl:apply-im
ports (sup
ported) xsl:apply-templates (sup
ported) xsl:attribute (sup
ported) xsl:attribute-set (sup
ported) xsl:call-template (sup
ported) xsl:choose (sup
ported) xsl:comment (sup
ported) xsl:copy (sup
ported) xsl:copy-of (sup
ported) xsl:decimal-format (sup
ported) xsl:element (sup
ported) xsl:fallback (not sup
ported) xsl:for-each (sup
ported) xsl:if (sup
ported) xsl:im
port (mostly sup
ported) xsl:include (sup
ported) xsl:key (sup
ported) xsl...
...:message (sup
ported) xsl:namespace-alias (not sup
ported) xsl:number (partially sup
ported) xsl:otherwise (sup
ported) xsl:output (partially sup
ported) xsl:param (sup
ported) xsl:preserve-space (sup
ported) xsl:processing-instruction xsl:sort (sup
ported) xsl:strip-space (sup
ported) xsl:stylesheet (partially sup
ported) xsl:template (sup
ported) xsl:text (partially sup
ported) xsl:transform (sup
ported) xsl:value-of (partially sup
ported) xsl:variable (sup
ported) xsl:when (sup
ported) xsl:with-param (sup
ported) axes ancestor ancestor-or-self attribute child descendant descendant-or-self following following-sibling namespace (not sup
ported) parent preceding preceding-sibling self functions boolean() (sup
ported) ceiling() (sup
ported) concat() (suppo...
...rted) contains() (sup
ported) count() (sup
ported) current() (sup
ported) document() (sup
ported) element-available() (sup
ported) false() (sup
ported) floor() (sup
ported) format-number() (sup
ported) function-available() (sup
ported) generate-id() (sup
ported) id() (partially sup
ported) key() (sup
ported) lang() (sup
ported) last() (sup
ported) local-name() (sup
ported) name() (sup
ported) namespace-uri() (sup
ported) normalize-space() (sup
ported) not() (sup
ported) number() (sup
ported) position() (sup
ported) round() (sup
ported) starts-with() (sup
ported) string() (sup
ported) string-length() (sup
ported) substring() (sup
ported) substring-after() (sup
ported) substring-before() (sup
ported) sum() (sup
ported) system-property() (sup
ported) translate() (s...
...up
ported) true() (sup
ported) unparsed-entity-url() (not sup
ported) ...
Navigator.mozNotification - Archive of obsolete content
mobile only in gecko 2.0 available only in firefox mobile as of gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) provides sup
port for creating notification objects, which are used to display desktop notification alerts to the user.
... currently, these are only sup
ported on firefox mobile and firefox os.
... the sup
port for this property as been dropped in favor of the standard notification constructor.
Private Properties - Archive of obsolete content
unlike other languages, javascript does not have native sup
port for private properties.
...however, note that weakmaps might not be sup
ported by all implementations yet.
...since xpcom allows the user to do virtually anything, security is very im
portant.
Working with Events - Archive of obsolete content
the add-on sdk sup
ports event-driven programming.
... for example, the following add-on registers a listener with the tabs module to listen for the ready event, and logs a string to the console re
porting the event: var tabs = require("sdk/tabs"); tabs.on("ready", function () { console.log("tab loaded"); }); it is not possible to enumerate the set of listeners for a given event.
... in the latter case the options object passed to the constructor typically defines properties whose names are the names of sup
ported event types prefixed with "on": for example, "onopen", "onready" and so on.
Guides - Archive of obsolete content
private properties learn how private properties can be implemented in javascript using prefixes, closures, and weakmaps, and how the sdk sup
ports private properties by using namespaces (which are a generalization of weakmaps).
... xul migration xul migration guide techniques to help
port a xul add-on to the sdk.
...
porting example a walkthrough of
porting a relatively simple xul-based add-on to the sdk.
simple-storage - Archive of obsolete content
usage the simple storage module ex
ports an object called storage that is persistent and scoped to your add-on.
... im
portant: if you use this method, you must end your debugging session by quitting firefox normally, not by cancelling the shell command.
... accessing storage from the console in the add-on debugger, you can access your add-on's simple-storage programmatically from the console using the following: loader.modules['resource://gre/modules/commonjs/sdk/simple-storage.js'].ex
ports.storage clarification from mozilla needed: writing the above line in add-on debugger console results in "referenceerror: loader is not defined".
content/worker - Archive of obsolete content
it ex
ports the worker trait, which enables content scripts and the add-on code to exchange messages using the
port or postmessage apis.
... properties
port object that allows you to: send customized messages to the worker using the
port.emit function receive events from the worker using the
port.on function url the url of the content.
...the script may not be initialized yet, or may already have been unloaded you can handle the detach event in the content script itself though: // in content script self.
port.on("detach", function() { window.close(); }); ...
Implementing the widget - Archive of obsolete content
the widget's content script the widget's content script just listens for left- and right- mouse clicks and posts the corresponding message to the add-on code: this.addeventlistener('click', function(event) { if(event.button == 0 && event.shiftkey == false) self.
port.emit('left-click'); if(event.button == 2 || (event.button == 0 && event.shiftkey == true)) self.
port.emit('right-click'); event.preventdefault(); }, true); save this in your data/widget directory as widget.js.
... main.js now in the lib directory open main.js and add the following code: var widgets = require('sdk/widget'); var data = require('sdk/self').data; var annotatorison = false; function toggleactivation() { annotatorison = !annotatorison; return annotatorison; } ex
ports.main = function() { var widget = widgets.widget({ id: 'toggle-switch', label: 'annotator', contenturl: data.url('widget/pencil-off.png'), contentscriptwhen: 'ready', contentscriptfile: data.url('widget/widget.js') }); widget.
port.on('left-click', function() { console.log('activate/deactivate'); widget.contenturl = toggleactivation() ?
... data.url('widget/pencil-on.png') : data.url('widget/pencil-off.png'); }); widget.
port.on('right-click', function() { console.log('show annotation list'); }); } the annotator is inactive by default.
Add-on SDK - Archive of obsolete content
guides contributor's guide learn how to start contributing to the sdk and about the most im
portant idioms used in the sdk code such as modules, classes and inheritance, private properties, and content processes.
... xul migration a guide to
porting xul add-ons to the sdk.
... this guide includes a comparison of the two toolsets and a working example of
porting a xul add-on.
Customizing the download progress bar - Archive of obsolete content
the myextension.css file will look something like this: richlistitem progressmeter { %ifdef xp_win min-height: 17px !im
portant; %else %ifdef xp_macosx -moz-appearance: none !im
portant; background-image: url(chrome://myextension/skin/progress_bg_osx.png) !im
portant; %endif %endif } richlistitem .progress-bar { %ifdef xp_win -moz-appearance: none !im
portant; background-image: url(chrome://myextension/skin/progress_fd_win.png) !im
portant; %else %ifdef xp_macosx background-image: url(chrome://mye...
...xtension/skin/progress_fd_osx.gif) !im
portant; %endif %endif } note: this file only sup
ports windows and mac, but it would be straightforward to add sup
port for linux.
...the background image (the first one in the file) should be a segment of whatever you want the unfilled
portion of the progress bar to look like.
Downloading Files - Archive of obsolete content
components.utils.im
port("resource://gre/modules/privatebrowsingutils.jsm"); const webbrowserpersist = components.constructor("@mozilla.org/embedding/browser/nswebbrowserpersist;1", "nsiwebbrowserpersist"); var persist = webbrowserpersist(); var targetfile = services.dirsvc.get("desk", ci.nsifile); targetfile.append("file.bin"); // obtain the privacy context of the bro...
... downloading binary files with a progress listener to download a binary file with custom progress listener: components.utils.im
port("resource://gre/modules/privatebrowsingutils.jsm"); const webbrowserpersist = components.constructor("@mozilla.org/embedding/browser/nswebbrowserpersist;1", "nsiwebbrowserpersist"); var persist = webbrowserpersist(); var targetfile = services.dirsvc.get("desk", ci.nsifile); targetfile.append("file.bin"); var obj_uri = services.io.newuri(aurltod...
... components.utils.im
port("resource://gre/modules/privatebrowsingutils.jsm"); const webbrowserpersist = components.constructor("@mozilla.org/embedding/browser/nswebbrowserpersist;1", "nsiwebbrowserpersist"); var persist = webbrowserpersist(); // obtain the privacy context of the browser window that the url // we are downloading comes from.
Forms related code snippets - Archive of obsolete content
it is sup
ported in firefox & chrome (v8) and partially sup
ported in opera 9+ and safari.
... it is not sup
ported in internet explorer 6-9, or in the preview of internet explorer 10.
... note: the filereader() constructor was not sup
ported by internet explorer for versions before 10.
Examples and demos from articles - Archive of obsolete content
[article] note: the filereader() constructor was not sup
ported by internet explorer for versions before 10.
...[article] code snippets and tutorials javascript complete cookies reader/writer with full unicode sup
port this little framework consists of a complete cookies reader/writer with unicode sup
port.
... im
port scripts here is a possible example of how to dynamically im
port scripts with javascript.
JS XPCOM - Archive of obsolete content
every xpcom object must implement the nsisup
ports interface.
... determining which interfaces an xpcom component sup
ports to display a list of all interfaces that an xpcom component sup
ports, do the following: // |c| is the xpcom component instance for each (i in components.interfaces) { if (c instanceof i) { alert(i); } } in this context, instanceof is the same as queryinterface except that it returns false instead of throwing an exception when |c| doesn't sup
port interface |i|.
... components.utils.im
port("resource://gre/modules/services.jsm"); components.utils.im
port("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 s...
LookupNamespaceURI - Archive of obsolete content
note that all gecko-based browsers (including firefox) sup
port node.lookupnamespaceuri.
...document : htmldocument; // sup
port htmldocument if document not present // if document is present, is this method also present?
...namespaceurihelper (node, prefix) { // adapted directly from http://www.w3.org/tr/dom-level-3-core/namespaces-algorithms.html#lookupnamespaceurialgo var i, att, htmlmode = document.contenttype, // mozilla only xmlnspattern = /^xmlns:(.*)$/; switch (node.nodetype) { case 1: // element_node (could also just test for node.element_node, etc., if sup
ported in all browsers) if (node.namespaceuri != null && node.prefix === prefix) { // note: prefix could be "null" in the case we are looking for default namespace return node.namespaceuri; } if (node.attributes.length) { for (i = 0; i < node.attributes.length; i++) { at...
Extension Etiquette - Archive of obsolete content
xpcom contract ids, for instance, should always begin with an @, followed by a domain name that the author controls, e.g., "@example.com/foo/bar;1" it is im
portant that the prefix that you use be unlikely to conflict with other code, and that it be indicative of the name of your add-on.
...the mozilla extensions (inspector/re
porter/talkback) believe starting with a verb is the best way.
...for instance, a boolean for the re
porter extension's option for hiding the privacy statement is "extensions.re
porter.hideprivacystatement".
Inline options - Archive of obsolete content
firefox 7 sup
ports a new syntax for defining extensions' preferences for both bootstrapped and traditional extensions.
...if you need script sup
port, see the display notifications section.
... <radio value="true" label="enabled"/> </radiogroup> </setting> <!-- button example - not tied to a preference, but attached to a command --> <setting title="do something" type="control"> <button id="myaddon-button" label="click me" oncommand="alert('thank you!');"/> </setting> setting element changed notifications most of the setting elements (it might be all i havent really looked), sup
port oninputchanged attribute.
Installing Extensions and Themes From Web Pages - Archive of obsolete content
return false; this last part is the most im
portant - the install function must return false so that when the link is clicked, only the script is run, and the link href is not navigated to.
...the icon can be any image format sup
ported by firefox, and should be 32x32 pixels in size.
...you can use any hash function sup
ported by nsicryptohash.
Chapter 1: Introduction to Extensions - Archive of obsolete content
instead, firefox can sup
port these features through extensions.
...add-ons manager handles the following tasks: safely installs and uninstalls add-ons makes sure add-ons are compatible with the version of firefox you're using manages a whitelist of sites trusted for installing add-ons helps troubleshoot add-ons by disabling them and offering a safe mode confirms and runs updates provides access to add-ons' settings dialogs provides access to add-ons' sup
port sites development environment amenities initially, there wasn't adequate documentation available, and extension developers were largely left to fend for themselves1; however, now there's a considerable store of knowledge.
... because firefox and its extensions are designed to sup
port multiple languages, excellent extensions come from all over the world, and can be quickly localized by anyone interested.
Adding Events and Commands - Archive of obsolete content
this is one of the most im
portant and commonly used events in xul.
...you can get information on key modifiers (in case the user was holding a modifier key like alt while performing the event), screen coordinates for mouse events, and most im
portantly, the target element for the event.
... broadcasters keeping a consistent ui is another im
portant aspect of extension behavior.
Appendix A: Add-on Performance - Archive of obsolete content
nevertheless, loading pages is pretty im
portant in firefox, and users expect it to be fast.
...even if it is not as im
portant as other areas, firefox shutdown can also be slowed down because of add-ons.
... if there's anything you can unload before shutdown, or if there's anything you can do to unload things more efficiently, then it's im
portant that you do.
Case Sensitivity in class and id Names - Archive of obsolete content
we have discovered, however, that many authors are running into trouble with class and id names because they're used to the bugs of browsers that don't fully sup
port open standards.
...it is also im
portant to avoid using class or id names which are a case-insensitive match within the same document.
... recommendation because of the flaws which are present in some existing implementations and the restrictions defined in html 4.01, it is doubly im
portant to ensure that your class and id names are of a consistent case throughout a document, and that you do not attempt to define names which are case-insensitive matches.
JXON - Archive of obsolete content
an im
portant consideration is that, when using the third or the fourth algorithm, an xml document can be used to create any type of javascript object.
...it is sup
ported in firefox & chrome (v8) and partially sup
ported in opera 9+ and safari.
... it is not sup
ported in internet explorer 6-9, or in the preview of internet explorer 10.
Defining Cross-Browser Tooltips - Archive of obsolete content
the classic example is a "tooltip" of an image; when the user pauses the mouse pointer over an image, the contents of the alt attribute are displayed as a "tooltip." gecko-based browsers such as mozilla, netscape 6+, and compuserve 7 do not sup
port this behavior.
...this assumes that the browser can find the image and that it sup
ports the image format used; if either of these is not true, and the image cannot be displayed, then the alt text should be displayed in place of the missing image.
...please consult an element's definition to verify that it sup
ports this attribute...
Images, Tables, and Mysterious Gaps - Archive of obsolete content
should this property be adopted, then any browser sup
porting it could emulate traditional "shrinkwrap" behavior without risking other layout upset with the following rule: td {line-box-contain: font replaced;} /* proposed for css3 */ there are other possible fixes contained within the current css3 working drafts, such as line-height-policy.
... recommendations absent sup
port for css3, it is difficult to provide a clear set of steps for fixing every instance of these problems, because the best solution for a given document will greatly depend on its structure.
... with a judicious mixture of approaches and a reduction of single-pixel image tricks-- which, in a css-capable browser, are unnecessary anyway-- it is quite possible to sidestep this strange effect of standards sup
port.
Autodial for Windows NT - Archive of obsolete content
it is im
portant to note that the function of this system service in no way depends on the settings found in control panel | internet options | connections.
... issues there have been a few bug re
ports filed against this new feature that are the result of the fact that mozilla now looks at the control panel | internet options | connections settings.
... original document information author(s): benjamin chuang last updated date: october 2, 2002 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Building TransforMiiX standalone - Archive of obsolete content
we sup
port building a standalone version of transformiix on windows, unix and os x.
...building from a full mozilla tree is not sup
ported.
... original document information author: axel hecht last updated date: april 5, 2004 copyright information:
portions of this content are © 1998–2006 by individual mozilla.org contributors; content available under a creative commons license ...
Structure of an installable bundle - Archive of obsolete content
chrome.manifest, components, defaults) in bootstrapped extensions are not processed by a sup
porting application.
... platform-specific files gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) removed sup
port for platform-specific subdirectories, described below.
... platform-specific subdirectories: gecko 1.9.2.x and earlier note: platform-specific subdirectory sup
port was removed in gecko 2.0.
Creating a hybrid CD - Archive of obsolete content
the cd should sup
port hfs (macintosh), joliet (win32), and rock ridge (unix).
... 'mswd' 'wdbn' "word file" .mov raw 'tvod' 'moov' "quicktime movie" .bin raw 'sitx' 'bina' "mac binary" .h ascii 'cwie' 'text' "c/c++ header file" .c ascii 'cwie' 'text' "c source file" .cp ascii 'cwie' 'text' "c++ source file" .cpp ascii 'cwie' 'text' "c++ source file" .exp ascii 'cwie' 'text' "symbol ex
port file" .mcp raw 'cwie' 'mmpr' "codewarrior project file" .r ascii 'mps ' 'text' "rez file" .html ascii 'moss' 'text' "html file" .htm ascii 'moss' 'text' "html file" .txt ascii 'moss' 'text' "text file" readme ascii 'moss' 'text' "text file" changes ascii 'moss' 'text' "text file" install ascii 'moss' 'text' "text f...
... original document information author(s): dawn endico last updated date: may 1, 2001 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Dehydra Function Reference - Archive of obsolete content
require sup
ports optional named arguments via javascript object where each parameter is a property.
...msg is a string to be presented as a gcc warning optional: loc is the location that should be re
ported for the warning.
... msg is a string to be presented as a gcc error optional: loc is the location that should be re
ported for the warning.
Developing New Mozilla Features - Archive of obsolete content
our
portability requirements may be new to even seasoned developers.
...but our developers are a precious commodity and their time is probably the most im
portant resource we have.
... original document information author(s): mitchell baker last updated date: october 30, 2004 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Drag and drop events - Archive of obsolete content
note: the drag and drop event sup
port advertised in the firefox 3 release notes is not the same as the events described in the drag and drop section of the html 5 working draft.
...firefox 3 does not sup
port the 'drag' event.
... this sup
port is added in firefox 3.5, and is documented separately on the page [drag and drop].
Drag and Drop - Archive of obsolete content
next » as of gecko 1.9.1 (firefox 3.5), these apis are officially deprecated the newer, simpler,
portable api should be used in their place.
... xpcom drag and drop interfaces two interfaces are used to sup
port drag and drop.
... isdataflavorsup
ported(flavor) returns true if the data being dragged contains data of the specified flavor.
Editor Embedding Guide - Archive of obsolete content
call a command -- docommand: commandmanager->docommand(acommand, acommandparams); acommand is a const char * to a sup
ported command name (see list below).
... setbooleanvalue setlongvalue setdoublevalue setstringvalue setcstringvalue setisup
portsvalue removevalue each will take a name value pair.
... first getnext (returns the next name in the name/value pair list) hasmoreelements getvaluetype (numeric enum type see nsicommandparams for values) if the name/value pair is known or it was obtained using the methods described above, it is possible to call the following methods: getbooleanvalue getlongvalue getdoublevalue getstringvalue getcstringvalue getisup
portsvalue all of these take pointers to values except for getstringvalue which demands a reference to an nsastring.
Error Console - Archive of obsolete content
the error console is a tool available in most mozilla-based applications that is used for re
porting errors in the application chrome and in web pages user opens.
... it re
ports javascript-related errors and warnings, css errors and arbitrary messages from chrome code.
... extensions can write to the error console from javascript using components.utils.re
porterror, or if you're fine with logging to the os-provided console, dump().
Document Loading - From Load Start to Finding a Handler - Archive of obsolete content
sup
porting roles necko this is the mozilla networking library.
... nsuriloader::openuri gets a channel to open, a boolean indicating whether this load is the result of a link click, and an nsisup
ports "window context" (the docshell triggering the load, actually, but in drag and heavy makeup).
... original document information author(s): boris zbarsky last updated date: october 24, 2003 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Creating a Help Content Pack - Archive of obsolete content
understanding the syntax is im
portant because small syntax errors can mean that a whole file won't be loaded correctly.
... the index file one im
portant note on the index file is that there is no automatically generated set of top-level letters (e.g., a for accessibility and automation or b for book and border).
... the table of contents file the table of contents file is the most im
portant data source you'll create.
Settings - Archive of obsolete content
because it is still under development, the api currently lives in the future and must be im
ported before it is used: specifying settings in a manifest to specify its settings, a jetpack defines a variable named manifest in its global namespace before it im
ports the settings api.
...cebook", type: "group", label: "facebook", settings: [ { name: "username", type: "text", label: "username", default: "jdoe" }, { name: "password", type: "password", label: "secret" } ] }, { name: "music", type: "boolean", label: "music", default: true }, { name: "volume", type: "range", label: "volume", min: 0, max: 10, default: 5 } ] }; // im
port after defining manifest!
... jetpack.future.im
port("storage.settings"); this definition will result in a user interface with an input field for each setting defined above.
Clipboard Test - Archive of obsolete content
jetpack's clipboard sup
port api provides a standardized way for features to access the clipboard.
... this api currently lives in the future and must be im
ported for use.
... jetpack.future.im
port("clipboard"); methods additional information can be found at clipboard api proposal ...
Simple Storage - Archive of obsolete content
the namespace currently lives in the future and must be im
ported before it is used: jetpack.future.im
port("storage.simple"); methods sync()as described above, the jetpack.storage.simple object is automatically written to disk, but a feature may force flush by calling jetpack.storage.simple.sync().
...examples this code persistently stores some data: jetpack.future.im
port("storage.simple"); var mystorage = jetpack.storage.simple; mystorage.fribblefrops = [1, 3, 3, 7]; mystorage.heimelfarbs = { bar: "baz" }; and this code -- pretend it's in the same jetpack as the code above -- simply uses that data: mystorage.fribblefrops.foreach(function (elt) console.log(elt)); var bar = mystorage.heimelfarbs.bar; jetpack.notifications.show(bar.baz); that's all there is to it!
...jetpack.future.im
port("menu"); jetpack.future.im
port("selection"); jetpack.future.im
port("storage.simple"); // create the persistent notes array if it doesn't already exist.
Metro browser chrome tests - Archive of obsolete content
it currently allows you to run javascript code in the same scope as the immersive browser and re
port results using the same functions as the mochitest test framework.
...test comparison functions used in metro browser chrome tests are identical to those sup
ported by mochitests, see how the comparison functions work in the mochitest documentation for more details.
...exceptions in tests any exceptions thrown under test() will be caught and re
ported as a general failure.
How to Write and Land Nanojit Patches - Archive of obsolete content
it will also generate a commit that updates the nanojit-im
port-rev file in your target repository; this file records which commits have been copied over from nanojit.
...then find the corresponding bug(s) and commit the (hopefully already-reviewed!) tr/tm
portion of the patch(es) on top of your current, un-pushed tip.
...you can explicitly manipulate the revision from which the copying process begins by writing a nanojit-central revision id to the file nanojit-im
port-rev, held in your target repository.
New Security Model for Web Services - Archive of obsolete content
boolean canaccess(in nsiuri atrans
porturi, in astring atype); atrans
porturi - the service uri atype - type requested by the script ( ex.
...) return pr_true if access granted else pr_false void invalidatecache(in string atrans
porturi); invalidate cached entry for the given trans
port uri.
...re
ports errors (validation, wellformedness, file not found, etc.) to the console via nsiconsoleservice.
Proxy UI - Archive of obsolete content
camino configured in os (networking preferences) (recently added - some sup
port for reading os and account settings.)ui elements preferences panel overview the ui is based on selecting a proxy mode, then filling out any additional needed information in "related" ui.
... manual proxy is a list of proxy types that require a hostname and a
port number.
...automatic proxy configuration url sup
ports a url (which is checked via urifixup) and a reload button.
Reading textual data - Archive of obsolete content
unsup
ported byte sequences you can specify what should happen with byte sequences that do not correspond to a valid character.
... if you do not want any replacement, you can specify 0x0000 as replacement character; that way, readstring will throw an exception when reaching unsup
ported bytes.
...it can be used like nsilineinputstream, except that it sup
ports non-ascii characters, and has no problems with charsets with embedded nulls (like utf-16 and utf-32).
Remotely debugging Firefox for Metro - Archive of obsolete content
in firefox for metro, and set the following required preference: devtools.debugger.remote-enabled = true you may also want to set these optional preferences: devtools.debugger.force-local = false (if you want to connect from a different machine over the network) devtools.debugger.remote-host (to change the tcp hostname where firefox will listen for connections) devtools.debugger.remote-
port (to change the tcp
port number where firefox will listen for connections) devtools.debugger.prompt-connection = false (allow connections without displaying a confirmation prompt.
...you'll see a page that looks like this: if you are running firefox for metro on the same computer with the default settings, use the default host (localhost) and
port (6000), and press the "connect" button.
... if you are connecting to firefox for metro on a different computer or a different
port, enter the appropriate hostname and
port number and then press "connect." in the windows 8 (metro) browser next you'll see a dialog in firefox for metro asking you to confirm the connection.
Table Layout Regression Tests - Archive of obsolete content
a typical beginning of a dump (*.rgd file) looks like: <frame va="15022440" type="view
port(-1)" state="270340" parent="0"> <view va="47171904"> </view> <stylecontext va="15022232"> <font serif 240 240 0 /> <color data="-16777216"/> <background data="0 2 3 -1 0 0 "/> <spacing data="left: null top: null right: null bottom: null left: null top: null right: null bottom: null left: 1[0x1]enum top: 1[0x1]enum right: 1[0x1]enum bottom: 1[0x1]enum left: null top: null...
...i would like to thank chris karnaze for his guidance and fantasai for her language sup
port.
... original document information author(s): bernd mielke other contributors: boris zbarsky last updated date: february 5, 2007 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Using addresses of stack variables with NSPR threads on win16 - Archive of obsolete content
however, since it affects the
portability of code, it was deemed prudent to include a short memo describing the issue.
...the only
portable manner to write this program requires that the shared structure be allocated from the heap.
... original document information author: larryh@netscape.com, wan teh chang last updated date: december 1, 2004 this note is about writing win16-
portable code that uses nspr threads, probably not interesting to today's developers ...
Venkman - Archive of obsolete content
venkman builds on the js/jsd
portion of john's 1998 work, exposing it as an xpcom component.
... mailing list newsgroup rss feed irc: #venkman on irc.mozilla.org re
port a bug in venkman if you find a problem with venkman, please follow directives mentioned at venkman faq section 5.4 and then you may re
port a bug on javascript debugger component.
... related topics javascript, web development, developing mozilla original document information author(s): robert ginda other contributors: doctor unclear last updated date: july 13, 2007 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
confirm - Archive of obsolete content
method of install object syntax int confirm( string atext ); int confirm( string atext, string adialogtitle, number abuttonflags, string abutton0title, string abutton1title, string abutton2title, string acheckmsg, object acheckstate ); parameters the second, extended confirm() method is sup
ported starting with gecko 1.8.
...previous gecko versions only sup
port the first, one-parameter method and will throw an error on occuring the extended form.
...notes the preferred method for detecting sup
port for custom dialog boxes is querying the existence of the button constants.
Deprecated and defunct markup - Archive of obsolete content
--neil 03 march 2011 <bulletinboard> (made to sup
port left/top styles, but <stack> can now do as well) <gripper> (inside of <scrollbar><thumb>; not to be used by itself) <listboxbody> (internal use only; part of xbl for <listbox>) <menubutton> (experiment in combining buttons and menus; use <button type> instead) <nativescrollbar> (displayed a native scrollbar; had been for mac only with native themes on) <outliner> (former name for <...
...ke <textbox>) <thumb> (<button> with deprecated <gripper>; implements sliding box in center of scrolbar) <title> (to add a caption on a <titledbox> <titledbox> (box with a frame) <titledbutton> (attempt to combine text and images before <button>) <toolbarpaletteitem> required to embed non-buttons in customisable toolbars --neil 03 march 2011 <treebody> (old/experimental and unsup
ported xul tags) lives on as the internal name for the ancestor <treechildren> element --neil 03 march 2011 <treecaption> (old/experimental and unsup
ported xul tags) <treecolgroup> (former name for <treecols> <treecolpicker> (internal use only; part of xbl for <tree>) <treefoot> (old/experimental and unsup
ported xul tags) <treeindentation> (old/experimental and unsup
ported xul tags) was...
... a part of the old <tree> that predated <outliner> that was not converted to <listbox>--neil 03 march 2011 <treeicon> (old/experimental and unsup
ported xul tags) <treerows> (internal use only; part of xbl for <tree>) attributes @debug="true" provided struts and springs around boxes to facilitate identification of flex issues but does not seem to work now you need a special debug_layout build --neil 03 march 2011 references xul element reference by neal deakin rapid application development with mozilla, by nigel mcfarlane ...
Getting File Information - Archive of obsolete content
file and stream guide: [ nsiscriptableio | accessing files | getting file information | reading from files | writing to files | moving, copying and deleting files | uploading and downloading files | working with directories ] im
portant note: the pages from the file and stream guide use the io object (nsiscriptableio), which was not available in any released version of the platform (pending some fixes).
... there are alternative xpcom apis you can use, your help in updating this pages to use the sup
ported api is very much welcome!
... some of the permissions may not be sup
ported on some platforms.
Uploading and Downloading Files - Archive of obsolete content
file and stream guide: [ nsiscriptableio | accessing files | getting file information | reading from files | writing to files | moving, copying and deleting files | uploading and downloading files | working with directories ] im
portant note: the pages from the file and stream guide use the io object (nsiscriptableio), which was not available in any released version of the platform (pending some fixes).
... there are alternative xpcom apis you can use, your help in updating this pages to use the sup
ported api is very much welcome!
...this is simpler but it doesn't allow sending additional data and web servers usually need special configuration to sup
port put operations.
Writing to Files - Archive of obsolete content
file and stream guide: [ nsiscriptableio | accessing files | getting file information | reading from files | writing to files | moving, copying and deleting files | uploading and downloading files | working with directories ] im
portant note: the pages from the file and stream guide use the io object (nsiscriptableio), which was not available in any released version of the platform (pending some fixes).
... there are alternative xpcom apis you can use, your help in updating this pages to use the sup
ported api is very much welcome!
...for a list of sup
ported character encodings, see sup
ported character sets.
Moving, Copying and Deleting Files - Archive of obsolete content
file and stream guide: [ nsiscriptableio | accessing files | getting file information | reading from files | writing to files | moving, copying and deleting files | uploading and downloading files | working with directories ] im
portant note: the pages from the file and stream guide use the io object (nsiscriptableio), which was not available in any released version of the platform (pending some fixes).
... there are alternative xpcom apis you can use, your help in updating this pages to use the sup
ported api is very much welcome!
... var file = io.newfile("home", "im
portantdata"); var destination = io.newfile("desktop", ""); destination.append("backups"); file.copyto(destination, ""); this example copies an item called 'im
portantdata' into a directory called 'backups' within the desktop directory.
ContextMenus - Archive of obsolete content
on platforms that sup
port it, it will be marked as a default item.
... determining what was context clicked it is im
portant to remember that a context menu may be opened in other ways than just with the mouse.
...this is useful instead of comparing the tag, as several different tags sup
port images.
Building Trees - Archive of obsolete content
however, since templates are often used with trees—especially with large amounts of data—the template system sup
ports a special builder just for creating trees.
...the sup
ported properties are: label, mode, properties, src and value.
...sup
port for this was introduced in gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4).
XML Templates - Archive of obsolete content
« previousnext » mozilla also sup
ports the use of xml datasources.
... an xml document will be loaded and xpath expressions may be used to take
portions of the xml document and generate content from these.
...sup
port for this was introduced in gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4).
Custom toolbar button - Archive of obsolete content
sup
ported applications you can use the steps on this page with any or all of these mozilla applications: firefox 1.5 or a later version seamonkey 2.0 or a later version thunderbird 1.5 or a later version sunbird 0.3 or a later version pre-release versions of these (alphas, betas and release candidates) are also ok.
... note: there is a similar tutorial for seamonkey 1.x on the page: custom toolbar button:seamonkey earlier versions and other mozilla applications also sup
port extensions, but some parts of this tutorial are not appropriate for them.
... if your text editor does not sup
port utf-8, search the internet for a better one that you can download.
Adding Labels and Images - Archive of obsolete content
this association is also im
portant for accessibility, so that screen readers read aloud the label for the control as the user tabs to it.
...the control attribute is only sup
ported for labels.
...the example below shows this: <image src="images/banner.jpg"/> although you can use this syntax, it would be better in order to sup
port different themes to use a style sheet to set the image url.
Cross Package Overlays - Archive of obsolete content
« previousnext » this section describes how to apply overlays to files that don't im
port them.
...in the examples in the previous section, the overlays were im
ported by the window.
...you can sup
port both firefox 2 and earlier and firefox 3 by duplicating the <code><span class="plain">' ..
Manifest Files - Archive of obsolete content
note: starting in gecko 2.0, only the file named chrome.manifest is read automatically; if you need to read multiple manifest files, use the manifest command in that file to im
port additional manifests.
... use manifest flags to configure the scenarios in which the secondary manifest is im
ported.
... if you are creating skin and/or locale
portions, repeat the steps above, except that the format of the contents.rdf file is slightly different.
Using Remote XUL - Archive of obsolete content
introduction note: sup
port for remote xul has long been a potential security concern; sup
port for it was disabled in gecko 2.0.
...s://www.mozilla.org/mpl/" /> <menuitem label="newsbot" value="https://www.mozilla.org/newsbot/" /> </menupopup> </menu> <menu label="developer docs"> <menupopup> <menuitem label="roadmap" value="https://www.mozilla.org/roadmap.html" /> <menuitem label="projects" value="https://www.mozilla.org/projects/" /> <menuitem label="
ports" value="https://www.mozilla.org/
ports/" /> <menuitem label="module owners" value="https://www.mozilla.org/owners.html" /> <menuitem label="hacking" value="https://www.mozilla.org/hacking/" /> <menuitem label="get the source" value="https://www.mozilla.org/source.html" /> <menuitem label="build it" value="https://www.mozilla.org/build/" ...
.../> </menupopup> </menu> <menu label="testing"> <menupopup> <menuitem label="download" value="https://www.mozilla.org/releases/" /> <menuitem label="re
port a bug" value="https://bugzilla.mozilla.org/enter_bug.cgi?format=guided" /> <menuitem label="bugzilla" value="https://www.mozilla.org/bugs/" /> <menuitem label="bug writing" value="https://www.mozilla.org/quality/bug-writing-guidelines.html" /> </menupopup> </menu> <menu label="tools"> <menupopup> <menuitem label="view source" value="https://lxr.mozilla.org/seamonkey/" /> <menuitem label="tree status" value="https://tinderbox.mozilla.org/showbuilds.cgi?tree=seamonkey" /> <menuitem label="new checkins" value="https://...
Using Visual Studio as your XUL IDE - Archive of obsolete content
to combine both, you can also add your own xbl elements to the xul schema to get autocompletion-sup
port and validation for those in your xul files.
...visual assist and file extensions since version 10.5, visual assist sup
ports javascript and xml.
...vs just sup
ports ecmascript 3rd edition and thus doesn't know these keywords.
Using the Editor from XUL - Archive of obsolete content
the im
portant stuff in editorstartup() begins where we get or create an editorshell.
... editorstartup() does some other minor bits of setup before finally kicking off the url load, which the most im
portant part here.
...this parameter is more im
portant when the editor is in a text widget, where it points to the the subtree of the parent document that corresponds to widget content.
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 im
ports 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.
...you can either add multiple <tt>xml-stylesheet</tt> processing instructions to your xul file, or create an <tt>@im
port</tt> chain.
... 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>@im
port</tt> chains first, im
port the global skin in your custom style sheet using the css <tt>@im
port</tt> rule: @im
port 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 depending on the selected theme mozilla is able to automa...
arrowscrollbox - Archive of obsolete content
currently, smooth scrolling sup
ports horizontal arrowscrollboxes only.
...currently, smooth scrolling sup
ports horizontal arrowscrollboxes only.
...ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
panel - Archive of obsolete content
warning: for firefox versions between 3.6 and 4.0, placing an iframe, browser or editor inside a panel is not sup
ported.
...ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata hidepopup() return type: no return value closes the popup immediately.
...an unanchored popup appears at the position specified by x and y, relative to the view
port of the document containing the popup node.
CommandLine - Archive of obsolete content
define your own command line handler component: components/clh.js const nsisup
ports = components.interfaces.nsisup
ports; const nsicategorymanager = components.interfaces.nsicategorymanager; const nsicomponentregistrar = components.interfaces.nsicomponentregistrar; const nsicommandline = components.interfaces.nsicommandline; const nsicommandlinehandler = components.interfaces.nsicommandlinehandler; const nsifactory = components.i...
...nterfaces.nsifactory; const nsimodule = components.interfaces.nsimodule; const class_id = components.id("178cfbb6-503c-11dc-8314-0800200c9a66"); const class_name = "applicationnameclh"; const contract_id = "@example.com/applicationname/clh;1"; const cld_category = "m-applicationname"; var apphandler = { /* nsisup
ports */ queryinterface : function clh_qi(aiid) { if (aiid.equals(nsicommandlinehandler) || aiid.equals(nsifactory) || aiid.equals(nsisup
ports)) return this; throw components.results.ns_error_no_interface; }, /* nsicommandlinehandler */ handle : function clh_handle(acmdline) { var observerservice = components.classes["@mozilla.org/observer-service;1"] .getservice(components.interfaces...
...ne-args-changed", null); }, helpinfo : " -test <value> a test attribute\n", /* nsifactory */ createinstance : function mdh_ci(aouter, aiid) { if (aouter != null) { throw components.results.ns_error_no_aggregation; } return this.queryinterface(aiid); }, lockfactory : function mdh_lock(alock) { /* no-op */ } }; var apphandlermodule = { /* nsisup
ports */ queryinterface : function mod_qi(aiid) { if (aiid.equals(nsimodule) || aiid.equals(nsisup
ports)) return this; throw components.results.ns_error_no_interface; }, /* nsimodule */ getclassobject : function mod_gch(acompmgr, acid, aiid) { if (acid.equals(class_id)) return apphandler.queryinterface(aiid); throw components.results.ns_error_failure;...
Deploying XULRunner - Archive of obsolete content
this document explains how deployment should be managed for self contained
portable applications built on xulrunner.
... it may turn out to be easier to create a self contained
portable application, as described here, and deploy it with a generic installer that would create shortcuts to scripts that launch your application in the unregistered bundled xulrunner.
...other executables and libraries the core changes to xul and gecko that require this new file layout were implemented in gecko 34, except that the xulrunner application was not updated to know about the change, so it will re
port an error: "unable to load xpcom." xulrunner was fixed in gecko 39.
XULRunner FAQ - Archive of obsolete content
you can write your application in any language sup
ported by the mozilla web platform, including html, xhtml, svg, or xul.
... i think i've found a bug, how do i re
port it?
...please search to make sure that your bug has not already been re
ported.
XULRunner Hall of Fame - Archive of obsolete content
now available with xulrunner 30 with i18n sup
port.
... mathml sup
port is significant.
...build instructions convertigo enterprise mashup server a web integrator and web clipper tool to build enterprise mashups nightingale nightingale is a communtiy fork of the songbird media player, bringing back linux sup
port and much more.
calIFileType - Archive of obsolete content
califiletype is used in caliim
porter and caliex
porter to determine which file types are sup
ported for im
port/ex
port.
...defined in calendar/base/public/caliim
portex
port.idl interface code [scriptable, uuid(efef8333-e995-4f45-bdf7-bfcabbd9793e)] interface califiletype : nsisup
ports { readonly attribute astring defaultextension; readonly attribute astring extensionfilter; readonly attribute astring description; }; attributes defaultextension the default extension that should be associated with files of this type.
...related interfaces caliim
porter caliex
porter example code see calhtmlex
port.js.
Mozprofile - Archive of obsolete content
api usage to use mozprofile as an api you can im
port mozprofile.profile and/or the addonmanager.
...example: from mozprofile im
port firefoxprofile # create new profile to pass to mozmill/mozrunner profile = firefoxprofile(addons=["adblock.xpi"]) setting preferences preferences can be set in several ways: using the api: you can pass preferences in to the profile class's constructor: obj = firefoxprofile(preferences=[("accessibility.typeaheadfind.flashbar", 0)]) using a json blob file: mozprofile --preferences myprefs.json using a .ini file: mozprofile --preferences myprefs.ini via the command line: mozprofile --pref key:value --pref key:v...
... python-profilemanager : python cli interface similar to profilemanager profile documentation : http://sup
port.mozilla.com/kb/profiles ...
2006-10-26 - Archive of obsolete content
discussions should be easier to im
port bookmark backups user asking for thoughts about having bookmarks manager's im
port wizard im
port from backups in the bookmarkbackups folder.
...(what it is, how to use it) cross-post-and followup fx2 announcment to sup
port-firefox request for when the announcement about firefox 2's release to be posted on the mozilla.dev.apps.firefox newsgroup.
... bug in firefox when im
port passwords from seamonkey a possible bug find - perhaps a version error instead?
2006-10-27 - Archive of obsolete content
discussions should be easier to im
port bookmark backups user asking for thoughts about having bookmarks manager's im
port wizard im
port from backups in the bookmarkbackups folder.
...(what it is, how to use it) cross-post-and followup fx2 announcment to sup
port-firefox request for when the announcement about firefox 2's release to be posted on the mozilla.dev.apps.firefox newsgroup.
... bug in firefox when im
port passwords from seamonkey a possible bug find - perhaps a version error instead?
2006-12-01 - Archive of obsolete content
it sup
ports a apache2 module and stand alone version.
... peter wilson lists some im
portant comparisons between spidermonkey and php.
... he states that javascript is powerful server-side scripting but it lacks in popularity since its only sup
ported by netscape, lacks a wide range of libraries, minimal marketing sup
port.
NPN_GetValue - Archive of obsolete content
isplayed; returns window npnvjavascriptenabledbool: tells whether javascript is enabled; true=javascript enabled, false=not enabled npnvasdenabledbool: tells whether smartupdate (former name: asd) is enabled; true=smartupdate enabled, false=not enabled npnvisofflinebool: tells whether offline mode is enabled; true=offline mode enabled, false=not enabled npnvtoolkit: npnvsup
portsxembedbool: npnvwindownpobject: returns the npobject * pointer for the dom window object; see getting the page url in npapi plugin for a rough example npnvpluginelementnpobject: npnvsup
portswindowless: tells whether the browser sup
ports windowless plugins.
... npnvplugindrawingmodel: (mac only) npnvsup
portsquickdrawbool : (mac only) npnvsup
portscoregraphicsbool : (mac only) value function returns the name of the plug-in in the value parameter.
... gecko 1.9.2 note starting with gecko 1.9.2 (firefox 3.6), the variables npnvservicemanager, npnvdomelement, and npnvdomwindow are no longer sup
ported.
Adobe Flash - Archive of obsolete content
thus client-side detection for the right version of flash is an im
portant aspect of creating a scripted flash experience.
...and, of course, eventually flash sup
port will be removed from firefox entirely.
...future flash versions may sup
port the object element for use with fscommands in netscape gecko browsers.
Encryption and Decryption - Archive of obsolete content
symmetric-key encryption plays an im
portant role in the ssl protocol, which is widely used for authentication, tamper detection, and encryption over tcp/ip networks.
...nevertheless, private-key encryption is useful, because it means you can use your private key to sign data with your digital signature-an im
portant requirement for electronic commerce and other commercial applications of cryptography.
...for example, 128-bit keys for use with the rc4 symmetric-key cipher sup
ported by ssl provide significantly better cryptographic protection than 40-bit keys for use with the same cipher.
Using SSH to connect to CVS - Archive of obsolete content
if all else fails, openssh is a widely used and highly
portable implementation.
... make sure you have a ~/.ssh/config file that has at least the following directives preferredauthentications hostbased,publickey,password host cvs.mozilla.org proxycommand corkscrew <i>proxyserver.foo.com</i> <i>
port</i> %h %p replaceproxyserver.foo.com with the hostname of your proxy server, and
port with the numeric tcp
port on which the http tunnel is running.
...since it's im
portant that you kill the agent when you're finished with it, the last three lines start a child environment that, when exited, will result in the agent's process being killed.
:-moz-system-metric() - Archive of obsolete content
syntax values -moz-windows-compositormedia: media/visual accepts min/max prefixes: no:-moz-system-metric(images-in-menus)the :-moz-system-metric(images-in-menus) css pseudo-class matches an element if the computer's user interface sup
ports images in menus.:-moz-system-metric(mac-graphite-theme):-moz-system-metric(mac-graphite-theme) will match an element if the user has chosen the "graphite" appearance in the "appearance" prefpane of the mac os x system preferences.:-moz-system-metric(scrollbar-end-backward)the :-moz-system-metric(scrollbar-end-backward) css pseudo-class will match an element if the computer's user interface inclu...
...ard) css pseudo-class will match an element if the computer's user interface includes a backward arrow button at the start of scrollbars.:-moz-system-metric(scrollbar-start-forward)the :-moz-system-metric(scrollbar-start-forward) css pseudo-class will match an element if the computer's user interface includes a forward arrow button at the start of scrollbars.:-moz-system-metric(scrollbar-thumb-pro
portional)the :-moz-system-metric(scrollbar-thumb-pro
portional) css pseudo-class will match an element if the computer's user interface uses pro
portional scrollbar thumbs; that is, the draggable thumb on the scrollbar resizes to indicate the relative size of the visible area of the document.:-moz-system-metric(touch-enabled)the :-moz-system-metric(touch-enabled) css pseudo-class will match an element ...
...if the device on which the content is being rendered offers a sup
ported touch-screen interface.:-moz-system-metric(windows-default-theme)the :-moz-system-metric(windows-default-theme) css pseudo-class matches an element if the user is currently using one of the following themes in windows: luna, royale, zune, or aero (i.e., vista basic, vista standard, or aero glass).
Date.getVarDate() - Archive of obsolete content
warning: this method is sup
ported in internet explorer only.
... requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
Debug.debuggerEnabled - Archive of obsolete content
syntax var dbgenabled = debug.debuggerenabled; requirements sup
ported in the following document modes: internet explorer 10 standards and internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
... not sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards.
Debug.setNonUserCodeExceptions - Archive of obsolete content
} })(); requirements sup
ported in the following document modes: internet explorer 10 standards and internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
... not sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards.
Enumerator.atEnd - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
... if (drv.isready) { var freegb = drv.freespace / bytespergb; var totalgb = drv.totalsize / bytespergb; s += freegb.tofixed(3) + " gb free of "; s += totalgb.tofixed(3) + " gb"; } else { s += "not ready"; } s += "<br />"; e.movenext(); } return(s); } requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
Enumerator.item - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
... if (drv.isready) { var freegb = drv.freespace / bytespergb; var totalgb = drv.totalsize / bytespergb; s += freegb.tofixed(3) + " gb free of "; s += totalgb.tofixed(3) + " gb"; } else { s += "not ready"; } s += "<br />"; e.movenext(); } return(s); } requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
Enumerator.moveFirst - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
... if (drv.isready) { var freegb = drv.freespace / bytespergb; var totalgb = drv.totalsize / bytespergb; s += freegb.tofixed(3) + " gb free of "; s += totalgb.tofixed(3) + " gb"; } else { s += "not ready"; } s += "<br />"; e.movenext(); } return(s); } requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
Enumerator.moveNext - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
... if (drv.isready) { var freegb = drv.freespace / bytespergb; var totalgb = drv.totalsize / bytespergb; s += freegb.tofixed(3) + " gb free of "; s += totalgb.tofixed(3) + " gb"; } else { s += "not ready"; } s += "<br />"; e.movenext(); } return(s); } requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
Enumerator - Archive of obsolete content
it is sup
ported in internet explorer only, not in windows 8.x store apps.
... requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
Error.description - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
... try { // cause an error: x = y } catch(e) { // prints "[object error]": document.write(e) document.write (" "); // prints 5009: document.write((e.number & 0xffff)) document.write (" "); // prints "'y' is undefined": document.write(e.description); document.write (" "); // prints "'y' is undefined": document.write(e.message) } requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards, internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
Error.number - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
... error code: 5009 facility code: 10 error message: 'y' is undefined requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards, internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
ScriptEngineBuildVersion - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
... example the following example illustrates the use of the scriptenginebuildversion function: if(window.scriptenginebuildversion) { console.log(window.scriptenginebuildversion()); } // output: <current build version> requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards, internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
ScriptEngineMajorVersion - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
... example the following example illustrates the use of the scriptenginemajorversion function: if (window.scriptenginemajorversion) { console.log(window.scriptengine()); } output: <current major version> requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards, internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
ScriptEngineMinorVersion - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
... if (window.scriptengineminorversion) { console.log(window.scriptengineminorversion()); } //output: <current minor version> requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards, internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
VBArray.dimensions - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
...vbarraytest(vba) { var i; var a = new vbarray(vba); var s = ""; for (i = 1; i <= a.dimensions(); i++) { s += "the upper bound of dimension "; s += i + " is "; s += a.ubound(i); s += ".<br />"; } return(s); } --> </script> </head> <body> <script type="text/javascript"> document.write(vbarraytest(createvbarray())); </script> </body> requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
VBArray.getItem - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
...--> </script> <script type="text/javascript"> <!-- function getitemtest(vbarray) { var i, j; var a = new vbarray(vbarray); for (i = 0; i <= 2; i++) { for (j =0; j <= 2; j++) { document.writeln(a.getitem(i, j)); } } } --> </script> </head> <body> <script type="text/javascript"> <!-- getitemtest(createvbarray()); --> </script> </body> requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
VBArray.lbound - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
...barraytest(vba){ var i; var a = new vbarray(vba); var s = ""; for (i = 1; i <= a.dimensions(); i++) { s += "the lower bound of dimension "; s += i + " is "; s += a.lbound(i); s += ".<br />"; } return (s); } --> </script> </head> <body> <script type="text/javascript"> document.write(vbarraytest(createvbarray())); </script> </body> requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
VBArray.toArray - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
...next createvbarray = a end function --> </script> <script type="text/javascript"> <!-- function vbarraytest(vbarray) { var a = new vbarray(vbarray); var b = a.toarray(); var i; for (i = 0; i < 9; i++) { document.writeln(b[i]); } } --> </script> </head> <body> <script type="text/javascript"> <!-- vbarraytest(createvbarray()); --> </script> </body> requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
VBArray.ubound - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
...arraytest(vba) { var i; var a = new vbarray(vba); var s = ""; for (i = 1; i <= a.dimensions(); i++) { s += "the upper bound of dimension "; s += i + " is "; s += a.ubound(i); s += ".<br />"; } return (s); } --> </script> </head> <body> <script type="text/javascript"> document.write(vbarraytest(createvbarray())); </script> </body> requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
VBArray - Archive of obsolete content
this object is a microsoft extension and is only sup
ported in internet explorer.
... requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, and internet explorer 10 standards.
... not sup
ported in windows 8.x store apps.
New in JavaScript 1.5 - Archive of obsolete content
multiple catch clauses in a try...catch statement are sup
ported.
... changed functionality in javascript 1.5 runtime errors are now re
ported as exceptions.
... positive and negative lookahead assertions are sup
ported.
New in JavaScript 1.8.5 - Archive of obsolete content
strict mode sup
port array.tostring() now works even on non-arrays by either returning the result of calling its join() method if one is available or by calling its tostring() method.
... new objects object description old proxy api offers sup
port for creating object and function proxies that enable meta-programming in javascript.
... changed functionality in javascript 1.8.5 iso 8601 sup
port in date: the date object's parse() method now sup
ports simple iso 8601 format date strings.
Reference - Archive of obsolete content
i also sup
port the use of a deprecated pre box with these examples.
...thanks for your thoughts --callek 15:05, 13 january 2006 (pst) notification when reorganization is finished leandro (localiser for the
portuguese wiki) would like to be emailed when the js reference reorganization has been finished.
...but someone trying write some javascript 2.0, wanting a list of all the features it sup
ports, might be annoyed at having to read through *all* the updates.
XForms - Archive of obsolete content
note: sup
port for xforms was removed from firefox in firefox 19.
... xforms sup
port can be added to firefox and seamonkey by installing the mozilla xforms extension.
... this extension, while sup
porting a significant subset of the xforms 1.0 and 1.1 candidate recommendations, is not actively maintained any more since about 2010.
RDF in Mozilla FAQ - Archive of obsolete content
second, and more im
portantly, the rdf model is used along with xul templates as an abstract "api" for displaying information.
... you can force an rdf/xml datasource (or any datasource that sup
ports nsirdfremotedatasource) to reload using the refresh() method of nsirdfremotedatasource.
...(shut down mozilla first since it overwrites your preferences file when you quit.) user_pref("signed.applets.codebase_principal_sup
port", true); mozilla will ask you if you want to grant the scripts in duplicates.xul permission to access xpconnect; respond in the affirmative.
Introduction to game development for the Web - Game development
use its power to write the code for your game, or look at using technologies like emscripten or asm.js to easily
port your existing games.
... pointer lock api the pointer lock api lets you lock the mouse or other pointing device within your game's interface so that instead of absolute cursor positioning you receive coordinate deltas that give you more precise measurements of what the user is doing, and prevent the user from accidentally sending their input somewhere else, thereby missing im
portant action.
...this is a web-sup
ported implementation of opengl es 2.0.
Desktop gamepad controls - Game development
previous overview: control mechanisms next now we'll look at adding something extra — sup
port for gamepad controls, via the gamepad api.
... api status, browser and hardware sup
port the gamepad api is still in working draft status, although browser sup
port is already quite good — around 63% global coverage, according to caniuse.com.
... the list of sup
ported devices is also quite extensive — most popular gamepads (e.g.
Unconventional controls - Game development
when everything is installed and the controller is connected to your computer we can proceed with implementing sup
port in our little demo.
... there's even a cylon.js-sup
ported makey button functionality inspired by the makey makey board, so you can use the popular cylon robotics framework for your experiments with arduino or raspberry pi.
... connecting the boards and using them may look like this: var cylon = require('cylon'); cylon.robot({ connections: { arduino: { adaptor: 'firmata',
port: '/dev/ttyacm0' } }, devices: { makey: { driver: 'makey-button', pin: 2 } }, work: function(my) { my.makey.on('push', function() { console.log("button pushed!"); }); } }).start(); as the description says: this gpio driver allows you to connect a 10 mohm resistor to a digital pin on your arduino or raspberry pi to control your robots with bananas, clay, or drawable circuitry.
Techniques for game development - Game development
using webrtc peer-to-peer data channels in addition to providing sup
port for audio and video communication, webrtc lets you set up peer-to-peer data channels to exchange text or binary data actively between your players.
... efficient animation for web games this article covers techniques and advice for creating efficient animation for web games, with a slant towards sup
porting lower end devices such as mobile phones.
... audio for web games audio is an im
portant part of any game — it adds feedback and atmosphere.
2D maze game with device orientation - Game development
without the framework, to add the canvas element to the page, you would have to write something like this inside the <body> tag: <canvas id='game' width='320' height='480'></canvas> the im
portant thing to remember is that the framework is setting up helpful methods to speed up a lot of things like image manipulation or assets management, which would be a lot harder to do manually.
... controlling the ball it’s cool to have the ball ready to be thrown around in the play area, but it’s also im
portant to be able to actually move it!
... the best way to use it in our case is to vibrate the phone every time the ball hits the walls — inside the wallcollision function: if("vibrate" in window.navigator) { window.navigator.vibrate(100); } if the vibrate method is sup
ported by the browser and available in the window.navigator object, vibrate the phone for 100 miliseconds.
Visual-js game engine - Game development
m/frenchtoast747/webgl-obj-loader textures download from http://textures.com more texture downloads http://www.textures4photoshop.com/ female body v3.blend this file has been released by andrescuccaro under the following license: creative commons attribution 3.0 about gui for windows (canvas2d part only) : windows gui application version 1.0 (using visual-js 0.9 lib) im
portant : you will need net 4.5.2 minimum also redistribution pack for c++ how to start project ?
... 1) click create application 2) enter new application name in input prompt 3) select folder for server part of application (im
portant : www is not secure place) 4) select folder for client part of application ( any path in www) 5) new app name will appear in project list , select and click open application 6) open your server folder : install node.js modules one way - use windows bat-s file (in server root folder with prefix install_ ) second way - open cmd terminal and enter next command : npm install mysql npm install delivery npm install express npm install mkdirp npm install socket.io npm install nodemailer@0.7.0 very easy installation and project files generator .
...- im
portant safari not working at the moment chrome , firefox , opera tutorial - pencil (animation path) : how to use pencil tool to create path object .
HSTS - MDN Web Docs Glossary: Definitions of Web-related terms
http strict trans
port security lets a web site inform the browser that it should never load the site using http and should automatically convert all attempts to access the site using http to https requests instead.
... it consists in one http header, strict-trans
port-security, sent by the server with the resource.
... learn more strict-trans
port-security owasp article: http strict trans
port security wikipedia: http strict trans
port security ...
XInclude - MDN Web Docs Glossary: Definitions of Web-related terms
when used in conjunction with xpointer (firefox sup
ports a subset of it, and is used in the code sample below), xinclude can also target just specific
portions of a document for inclusion.
... firefox does not sup
port it natively, but the following function aims to allow its use with documents passed into it.
... break; } request.send(null); if((request.status === 200 || request.status === 0) && request[responsetype] !== null) { response = request[responsetype]; if (responsetype === 'responsexml') { // apply xpointer (only xpath1() subset is sup
ported) var responsenodes; if (xpointer) { var xpathresult = response.evaluate( xpointer, response, null, ...
XLink - MDN Web Docs Glossary: Definitions of Web-related terms
simple xlinks are "sup
ported" in firefox (at least in svg and mathml), though they do not work as links if one loads a plain xml document with xlinks and attempts to click on the relevant points in the xml tree.
... xlink is used in svg, mathml, and other im
portant standards.
... specification xlink 1.0 xlink 1.1 (currently a working draft) see also xml in mozilla code snippets:getattributens - a wrapper for dealing with some browsers not sup
porting this dom method code snippets:xml:base function - a rough attempt to find a full xlink-based on an xlink:href attribute (or <xi:include href=>) and its or an ancestor's xml:base.
Origin - MDN Web Docs Glossary: Definitions of Web-related terms
web content's origin is defined by the scheme (protocol), host (domain), and
port of the url used to access it.
... two objects have the same origin only when the scheme, host, and
port all match.
... examples of same origin http://example.com/app1/index.html http://example.com/app2/index.html same origin because same scheme (http) and host (example.com) http://example.com:80 http://example.com same origin because a server delivers http content through
port 80 by default examples of different origin http://example.com/app1 https://example.com/app2 different schemes http://example.com http://www.example.com http://myapp.example.com different hosts http://example.com http://example.com:8080 different
ports specifications specification status comment html livi...
Assessment: Accessibility troubleshooting - Learn web development
can you do a test of the current color contrast (text/background), re
port the results of the test, and then fix it by changing the assigned colors?
... semantic html the content is still not very accessible — re
port on what happens when you try to navigate it using a screenreader.
... the <audio> player isn't accessible to those using older browsers that don't sup
port html5 audio.
Advanced styling effects - Learn web development
like text shadows, box shadows are sup
ported pretty well across browsers, including ie9+ and edge.
... note: blend modes are also very new, and slightly less well sup
ported than filters.
... there is no sup
port as yet in edge, and safari only sup
ports some of the blend mode options.
Images, media, and form elements - Learn web development
im
portant: you should take care when changing the styling of form elements to make sure it is still obvious to the user they are form elements.
...they are not as im
portant as they once were, as browsers are typically more consistent than in the past.
... we have covered a lot in this article, but can you remember the most im
portant information?
CSS selectors - Learn web development
in css, selectors are defined in the css selectors specification; like any other part of css they need to have sup
port in browsers for them to work.
... the majority of selectors that you will come across are defined in the level 3 selectors specification, which is a mature specification, therefore you will find excellent browser sup
port for these selectors.
...i have also included a link to the mdn page for each selector where you can check browser sup
port information.
CSS building blocks - Learn web development
handling different text directions in recent years, css has evolved in order to better sup
port different directionality of content, including right-to-left but also top-to-bottom content (such as japanese) — these different directionalities are called writing modes.
... overflowing content in this lesson we will look at another im
portant concept in css — overflow.
...understanding how big the different features in your design will be is im
portant, and in this lesson, we will summarize the various ways elements get a size via css and define a few terms around sizing that will help you in the future.
Getting started with CSS - Learn web development
the list-style-type property is a good property to look at on mdn to see which values are sup
ported.
...leaving the underline in place, can be an im
portant clue for people to realize that some text inside a paragraph can be clicked on — this is the behavior they are used to.
... a plain html document is generally accessible to everyone — as you start to style that document it is im
portant that you don't make it less accessible.
What do common web layouts contain? - Learn web development
especially im
portant for mobile browsers so you don't clutter the small screen up.
...because the image on the top-right is l-shaped, because b1 looks like a column sup
porting the shifted main content, and because the "m" and "i" of the mica logo create a vertical line of force.
... this is a good example of a classic layout sup
porting some design creativity.
What are browser developer tools? - Learn web development
it also allows you to instantly modify the html and css and see the results of your changes reflected live in the browser view
port.
...the available menu options vary among browsers, but the im
portant ones are mostly the same: delete node (sometimes delete element).
...it allows you to run lines of javascript against the page currently loaded in the browser, and re
ports the errors encountered as the browser tries to execute your code.
What is a web server? - Learn web development
in this article, we explain what web servers are, how web servers work, and why they are im
portant.
...(for example, html documents, images, css stylesheets, and javascript files) a web server connects to the internet and sup
ports physical data interchange with other devices connected to the web.
... communicating through http second, a web server provides sup
port for http (hypertext transfer protocol).
JavaScript basics - Learn web development
the section below introduces some aspects of the core language, and offers an op
portunity to play with a few browser api features too.
...is the standard for introductory programming examples.) im
portant: if you haven't been following along with the rest of our course, download this example code and use it as a starting point.
... im
portant: in this article, try entering the example code lines into your javascript console to see what happens.
Add a hitmap on top of an image - Learn web development
formerly, image maps were a popular navigation device, but it’s im
portant to thoroughly consider their performance and accessibility ramifications.
... text links (perhaps styled with css) are preferable to image maps for several reasons: text links are lightweight, maintainable, often more seo-friendly, and sup
port accessibility needs (e.g., screen readers, text-only browsers, translation services).
... hotspots must be large enough to tap comfortably, at any view
port size.
Using data attributes - Learn web development
the main issues to consider are internet explorer sup
port and performance.
... internet explorer 11+ provides sup
port for the standard, but all earlier versions do not sup
port dataset.
... to sup
port ie 10 and under you need to access data attributes with getattribute() instead.
Document and website structure - Learn web development
nam tincidunt congue enim, ut
porta lorem lacinia consectetur.</p> <h3>subsection</h3> <p>donec ut librero sed accu vehicula ultricies a non tortor.
...mauris vitae nisi at sem facilisis semper ac in est.</p> <p>vivamus fermentum semper
porta.
... you've reached the end of this article, but can you remember the most im
portant information?
What’s in the head? Metadata in HTML - Learn web development
it contains information such as the page <title>, links to css (if you choose to style your html content with css), links to custom favicons, and other metadata (data about the html, such as the author, and im
portant keywords that describe the document.) in this article we'll cover all of the above and more, in order to give you a good basis for working with markup.
... objective: to learn about the html head, its purpose, the most im
portant items it can contain, and what effect it can have on the html document.
... a favicon can be added to your page by: saving it in the same directory as the site's index page, saved in .ico format (most browsers will sup
port favicons in more common formats like .gif or .png, but using the ico format will ensure it works as far back as internet explorer 6.) adding the following line into your html's <head> block to reference it: <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> here is an example of a favicon in a bookmarks panel: there are lots of other icon types to consider these days as w...
Mozilla splash page - Learn web development
next, create a 1200px wide landscape version of red-panda.jpg, and a 600px wide
portrait version that shows the panda in more of a close up shot.
... in each case (except one — which one is inherently responsive?) we want the browser to serve the 120px wide version when the view
port width is 500px wide or less, or the 400px wide version otherwise.
... an art directed red panda inside the <div> with the class of red-panda, we want to insert a <picture> element that serves the small
portrait panda image if the view
port is 600px wide or less, and the large landscape image otherwise.
Cooperative asynchronous JavaScript: Timeouts and intervals - Learn web development
it's im
portant to know that you can (and often will) run other code before a settimeout() call executes, or between iterations of setinterval().
...the general pattern you'd use looks something like this: let starttime = null; function draw(timestamp) { if (!starttime) { starttime = timestamp; } currenttime = timestamp - starttime; // do something based on current time requestanimationframe(draw); } draw(); browser sup
port requestanimationframe() is sup
ported in more recent browsers than setinterval()/settimeout().
... so, unless you need to sup
port older versions of ie, there is little reason to not use requestanimationframe().
Introduction to web APIs - Learn web development
apis for drawing and manipulating graphics are now widely sup
ported in browsers — the most popular ones are canvas and webgl, which allow you to programmatically update the pixel data contained in an html <canvas> element to create 2d and 3d scenes.
... for example, you might draw shapes such as rectangles or circles, im
port an image onto the canvas, and apply a filter to it such as sepia or grayscale using the canvas api, or create a complex 3d scene with lighting and textures using webgl.
... the telegram apis allows you to embed content from telegram channels on your website, in addition to providing sup
port for bots.
A first splash into JavaScript - Learn web development
we can't promise that you'll develop "programmer brain" in five minutes, but we will give you plenty of op
portunity to practice thinking like a programmer throughout the course.
... all we have left to do now in this article is talk about a few other im
portant code features that you've already seen, although you may have not realized it.
...loops are a very im
portant concept in programming, which allow you to keep running a piece of code over and over again, until a certain condition is met.
Storing the information you need — Variables - Learn web development
this is an im
portant distinction to make.
...there is no reason to use var, unless you need to sup
port old versions of internet explorer with your code (it doesn't sup
port let until version 11; the modern windows edge browser sup
ports let just fine).
... you've reached the end of this article, but can you remember the most im
portant information?
What went wrong? Troubleshooting JavaScript - Learn web development
at this point, let's consult the developer console to see if it re
ports any syntax errors, then try to fix them.
... this time the error being re
ported is "typeerror: loworhi is null", on line 78.
...for example, if we were to change this line inside checkguess(): if (userguess === randomnumber) { to if (userguess = randomnumber) { the test would always return true, causing the program to re
port that the game has been won.
Working with JSON - Learn web development
"name": "madame uppercut", "age": 39, "secretidentity": "jane wilson", "powers": [ "million tonne punch", "damage resistance", "superhuman reflexes" ] }, { "name": "eternal flame", "age": 1000000, "secretidentity": "unknown", "powers": [ "immortality", "heat immunity", "inferno", "tele
portation", "interdimensional travel" ] } ] } if we loaded this object into a javascript program, parsed in a variable called superheroes for example, we could then access the data inside it using the same dot/bracket notation we looked at in the javascript object basics article.
...the order in which things are appended is im
portant, as this is the order they will be displayed inside the html.
... you've reached the end of this article, but can you remember the most im
portant information?
Object building practice - Learn web development
next, we set constants called width and height, and the width and height of the canvas element (represented by the canvas.width and canvas.height properties) to equal the width and height of the browser view
port (the area that the webpage appears on — this can be gotten from the window.innerwidth and window.innerheight properties).
...this can range between 0 (top left hand corner) to the width and height of the browser view
port (bottom right hand corner).
... open the browser's javascript console, and then refresh the page so that the canvas size changes to the smaller visible view
port that remains when the console opens.
Object prototypes - Learn web development
note: it's im
portant to understand that there is a distinction between an object's prototype (available via object.getprototypeof(obj), or via the deprecated __proto__ property) and the prototype property on constructor functions.
... im
portant: the prototype property is one of the most confusingly-named parts of javascript — you might think that this points to the prototype object of the current object, but it doesn't (that's an internal object that can be accessed by __proto__, remember?).
... you've reached the end of this article, but can you remember the most im
portant information?
The business case for web performance - Learn web development
previous overview: performance we've discussed the im
portance of web performance.
...it highlights the im
portance of understanding how cumulative experiences impact conversion and retention rates.
...kpis can be both a set of im
portant business metrics in measuring the impact of user experience and performance on the business's top line, and a way of demonstrating the benefits of prioritizing performance.
JavaScript performance - Learn web development
often times third party scripts and apis are added, including a/b testing, tracking pixels, and features like maps and sup
port features.
...module bundlers like webpack sup
port code-splitting.
...often times third party scripts and apis are added, including a/b testing, tracking pixels, and features like maps and sup
port features.
Introduction to the server side - Learn web development
most of the code to sup
port a dynamic website must run on the server.
... web developers can't control what browser every user might be using to view a website — browsers provide inconsistent levels of compatibility with client-side code features, and part of the challenge of client-side programming is handling differences in browser sup
port gracefully.
...sup
port for sessions, sup
port for users and authentication, easy database access, templating libraries, etc.).
Website security - Learn web development
im
portant: the single most im
portant lesson you can learn about website security is to never trust data from the browser.
... configure your web server to use https and http strict trans
port security (hsts).
...most im
portantly, you should understand that a web application cannot trust any data from the web browser.
Ember Interactivity: Footer functionality, conditional rendering - Learn web development
enter the following terminal command to do so: ember generate component-class footer next, go and find the newly-created todomvc/app/components/footer.js file and update it to the following: im
port component from '@glimmer/component'; im
port { inject as service } from '@ember/service'; ex
port default class footercomponent extends component { @service('todo-data') todos; } now we need to go back to our todo-data.js file and add some functionality that will allow us to return the number of incomplete todos (useful for showing how many are left), and clear the completed todos out of t...
... creating a todo class run the following command in your terminal: ember generate component-class todo now go to the newly-created todomvc/app/components/todo.js file and update the contents to look like so, to give the todo component access to the service: im
port component from '@glimmer/component'; im
port { inject as service } from '@ember/service'; ex
port default class todocomponent extends component { @service('todo-data') todos; } next, go back again to our todo-data.js service file and add the following action just below the previous ones, which will allow us to toggle a completion state for each todo: @action togglecompletion(todo) { ...
...properties vue conditional rendering: editing existing todos focus management with vue refs vue resources svelte getting started with svelte starting our svelte todo list app dynamic behavior in svelte: working with variables and props componentizing our svelte app advanced svelte: reactivity, lifecycle, accessibility working with svelte stores typescript sup
port in svelte deployment and next steps ...
Ember resources and troubleshooting - Learn web development
using the design patterns provided by the framework, a route using fetch() would look something like this: im
port route from '@ember/routing/route'; ex
port default class myroute extends route { async model() { let response = await fetch('some/url/to/json/data'); let json = await response.json(); return { data: json }; } } see more information on specifying the route's model here.
... more concretely, using mut allows for template-only settings functions to be declared: <checkbox @value={{this.somedata}} @ontoggle={{fn (mut this.somedata) (not this.somedata)}} /> whereas, without mut, a component class would be needed: im
port component from '@glimmer/component'; im
port { tracked } from '@glimmer/tracking'; im
port { action } from '@ember/object'; ex
port default class example extends component { @tracked somedata = false; @action setdata(newvalue) { this.somedata = newvalue; } } which would then be called in the template like so: <checkbox @data={{this.somedata}} @onchange={{this.setdata}} /> due to the...
...properties vue conditional rendering: editing existing todos focus management with vue refs vue resources svelte getting started with svelte starting our svelte todo list app dynamic behavior in svelte: working with variables and props componentizing our svelte app advanced svelte: reactivity, lifecycle, accessibility working with svelte stores typescript sup
port in svelte deployment and next steps ...
React resources - Learn web development
create-react-app makes it possible to im
port css files into javascript modules, so that css is only sent to your user when the corresponding component is rendered.
... for this app, we could have for example written a dedicated form.css file to house the styles of those respective components, then im
ported the styles into their respective modules like this: im
port form from './form'; im
port './form.css' this approach makes it easy to identify and manage the css that belongs to a specific component.
...properties vue conditional rendering: editing existing todos focus management with vue refs vue resources svelte getting started with svelte starting our svelte todo list app dynamic behavior in svelte: working with variables and props componentizing our svelte app advanced svelte: reactivity, lifecycle, accessibility working with svelte stores typescript sup
port in svelte deployment and next steps ...
Understanding client-side JavaScript frameworks - Learn web development
along the way, we'll learn about a few im
portant concepts such as calling components inside other components, passing data to them via props and saving data state.
...typescript sup
port in svelte we will now learn how to use typescript in svelte applications.
...it is very im
portant to be able to get help with learning a complex subject, especially when you are just starting out.
Cross browser testing - Learn web development
this includes linting code, handing css prefixes, using browser dev tools to track down problems, using polyfills to add sup
port into browsers, tackling responsive design problems, and more.
... implementing feature detection feature detection involves working out whether a browser sup
ports a certain block of code, and running different code dependent on whether it does (or doesn't), so that the browser can always provide a working experience rather than crashing/erroring in some browsers.
... this article details how to write your own simple feature detection, how to use a library to speed up implementation, and native features for feature detection such as @sup
ports.
Embedding API for Accessibility
in part, being accessible means sup
porting a built-in accessibility apis for a platform, such as microsoft active accessibility or atk for linux and unix desktops.
...mozilla already sup
ports some of these options.
... this document lays out what we already have, and what we'll need later, in the embedding api to sup
port accessibility.
Information for External Developers Dealing with Accessibility
implementing an msaa server, a practical guide a document for developers who need to sup
port microsoft active accessibility (msaa) in a desktop application, in order to make it accessible with 3rd party assistive technologies, containing practical tips and the details of mozilla's implementation.
... accessibility api cross reference should be helpful at anyone looking at implementing accessibility api sup
port for a product on multiple platforms.
... purpose newsgroup mailing list google group developer discussion mozilla.dev.accessibility subscribe/unsubscribe google group end user sup
port mozilla.sup
port.accessibility subscribe/unsubscribe google group ...
Mozilla Plugin Accessibility
many plugins lack accessibility api sup
port most plugins that work with mozilla do not yet sup
port accessibility apis.
... a notable acception is the adobe pdf plugin on windows, which sup
ports msaa.
...seamonkey has no message bar for plugin installation the message bar will be
ported to seamonkey as part of the toolkit merging work that will occur for xulrunner.
Lightweight themes
firefox may reveal more of the lower
portion of the image if another toolbar or other ui element is added to the top of the window.
... the upper right-hand side of the image should have the most im
portant information - as a user increases the width of the browser window, the browser reveals more of the left-hand side of the image.
... im
portant: please be sure you have the rights to use the image in your theme!
Adding a new event
and the header file should be ex
ported as "mozilla/dom/fooevent.h".
... add the header file to ex
ports.mozilla.dom in dom/events/moz.build.
... the last half of it is the implementation of legacy event creator of javascript such as: var event = document.createevent("fooevent"); if you sup
port this feature, you need to modify here.
Creating Sandboxed HTTP Connections
(arequest, acontext, aprogress, aprogressmax) { }, onstatus : function (arequest, acontext, astatus, astatusarg) { }, // nsihttpeventsink (not implementing will cause annoying exceptions) onredirect : function (aoldchannel, anewchannel) { }, // we are faking an xpcom interface, so we need to implement qi queryinterface : function(aiid) { if (aiid.equals(components.interfaces.nsisup
ports) || aiid.equals(components.interfaces.nsiinterfacerequestor) || aiid.equals(components.interfaces.nsichanneleventsink) || aiid.equals(components.interfaces.nsiprogresseventsink) || aiid.equals(components.interfaces.nsihttpeventsink) || aiid.equals(components.interfaces.nsistreamlistener)) return this; throw components.results.ns_nointerface; }...
... } } }, queryinterface : function(aiid) { if (aiid.equals(components.interfaces.nsisup
ports) || aiid.equals(components.interfaces.nsiobserver)) return this; throw components.results.ns_nointerface; } }; // get the observer service and register for the two coookie topics.
...n the nsiinputstream and the type (in this case, "application/x-www-form-urlencoded"): var uploadchannel = gchannel.queryinterface(components.interfaces.nsiuploadchannel); uploadchannel.setuploadstream(inputstream, "application/x-www-form-urlencoded", -1); due to a bug, calling setuploadstream will reset the nsihttpchannel to be a put request, so now the request type is set to post: // order im
portant - setuploadstream resets to put httpchannel.requestmethod = "post"; ...
Debugging Table Reflow
the following constraint types are known: enoconstraint = 0, epixelconstraint = 1, // pixel width epercentconstraint = 2, // percent width epro
portionconstraint = 3, // 1*, 2*, etc.
... cols attribute assigns 1* e0pro
portionconstraint = 4 // 0*, means to force to min width after this follows the width information for each column: widths=-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 the table code knows ten different width's: #define num_widths 10 #define num_major_widths 3 // min, des, fix #define min_con 0 // minimum width required of the content + padding #define des_con 1 // desired width of the content + padding #define fix 2 // fixed width either from the content or cell, col, etc.
...ine min_adj 3 // minimum width + padding due to col spans #define des_adj 4 // desired width + padding due to col spans #define fix_adj 5 // fixed width + padding due to col spans #define pct 6 // percent width of cell or col #define pct_adj 7 // percent width of cell or col from percent colspan #define min_pro 8 // desired width due to pro
portional <col>s or cols attribute #define final 9 // width after the table has been balanced, considering all of the others in the last log snippet none of these width's has been set.
Debugging on Mac OS X
if you are debugging firefox, thunderbird, or some other application that sup
ports multiple profiles, using a separate profile for debugging purposes is recommended.
... one im
portant issue that the mozilla .lldbinit file fixes is that by default some breakpoints will be listed as "pending", and xcode will not stop at them.
... the .lldbinit file in the source tree im
ports many useful mozilla specific lldb settings, commands and formatters into lldb, but you may need to take one of the following steps to make sure this file is used.
Debugging on Windows
here are some wildcards you can use (tested with vc 8): nscomptr.*\:\:.*=nostepinto (nsg|g)etter_*addrefs.*=nostepinto ns_convertutf.* ; might be too broad: (ns|promise)[^\:]*[ss]tring.* ...add common functions to this list should probably make a .reg file for easy im
porting obtaining stdout and other file handles running the following command in the command window in visual studio returns the value of stdout, which can be used with various debugging methods (such as nsgenericelement::list) that take a file* param: debug.evaluatestatement {,,msvcr80d}(&__iob_func()[1]) (alternatively you can evaluate {,,msvcr80d}(&__iob_func()[1]) in the quickwatch window) s...
... if you attempt to use ns_debugbreak etc to perform post-mortem debugging on a 64bit windows 7, but as soon as you try and continue debugging the program crashes with an access violation, you may be hitting a windows bug relating to avx sup
port.
... (and just in-case those links die, the work-around is to execute bcdedit /set xsavedisable 1 from an elevated command-prompt to disable avx sup
port.) got a tip?
Simple SeaMonkey build
(for some mac os x versions, you will find it in a directory called "optional installs".) install mac
ports.
... run these commands to install the other build tools: sudo
port sync sudo
port install mercurial libidl autoconf213 yasm problems?
...the sup
port for libxul builds is still experimental but it should work if you --disable-mailnews.
Simple Sunbird build
building sunbird is no longer sup
ported.
...(for some mac os x versions, you will find it in a directory called "optional installs".) install mac
ports.
... run these commands to install the other build tools: sudo
port sync sudo
port install mercurial libidl autoconf213 problems?
SVG Guidelines
although this kind of data is sup
ported by the browser, it can only be displayed when the svg is opened in a new tab.
...here's an example taking into account the list below: version x="0" and y="0" enable-background (unsup
ported by gecko and now deprecated by the filter effects specification) id (id on root element has no effect) xmlns:xlink attribute when there are no xlink:href attributes used throughout the file other unused xml namespace definitions xml:space when there is no text used in the file other empty tags, this may be obvious, but those are sometimes found in svgs unreferenced ids (usually on gra...
... avoid excessive grouping editors can sometimes do excessive grouping while ex
porting svgs.
mozbrowserloadend
non-standard this feature is not on a current w3c standards track, but it is sup
ported on the firefox os platform.
... although implementations may change in the future and it is not sup
ported widely across browsers, it is suitable for use in code dedicated to firefox os apps.
...when the front page of https://developer.mozilla.org is loaded, for example, the e.detail.backgroundcolor value re
ported is rgb(0, 83, 159).
mozbrowserresize
the mozbrowserresize event is fired when a browser <iframe> view
port is resized in some way.
... details the details property returns an anonymous javascript object with the following properties: width a number representing the new width of the <iframe> view
port, in device pixels.
... height a number representing the new height of the <iframe> view
port, in device pixels.
Embedding the editor
<htmlarea> is intended as a shorthand for a rich-text multiline text widget embedded in an html document, and is not meant to infer that future versions of mozilla will sup
port this specific tag.
...(the current nseditorshell makes assumptions about the hosting xul document, which need to be broken.) composer embedded in a web page (<htmlarea>) ie 5 sup
ports the <htmlarea> element; if mozilla is to sup
port something similar, editor needs to be embeddable to the extent that this can be done.
... decide on how to implement editing session multiple-editor sup
port eliminate specific interdependencies between composer and the xul document, via nsieditoruserinterface create bottleneck for getting to the focussed editor; ensure that focus changes update state move editor ownership to docshell, creating nsieditorframe created the editing session api which copes with collections of editors (or make editor refocussable) open questions where should file ...
Gecko SDK
for gecko versions 2.0 and higher, you must recompile your component for each release as cross-version compatibility is no longer sup
ported.
...to get around it, you'll need to first install mac
ports as outlined in the mac os x build prerequisites and install libidl with it.
... contents of the sdk the sdk contains the following: 1.9.2 idl files for frozen interfaces (under idl/) header files for frozen interfaces, xpcom functions, and nspr functions (under include/) im
port libraries or shared libraries (under lib/) static utility libraries (under lib/) various tools (under bin/) for more information about safely linking xpcom components using the xpcom "glue" library, see xpcom glue.
HTML parser threading
additionally, each nshtml5parser has an associated nshtml5treeopexecutor that turns the output (tree operations; discussed later) of the
portable parser core into actions performed on the gecko dom.
...the termination and interruption indicators are guarded by a more narrowly scoped mterminatedmutex, so parseavailabledata() has the op
portunity to receive an order to terminate or interrupt even while the parser thread is holding mterminatedmutex.
...public identifiers and system identifiers are deleted by the tree op or by the
portable parser core if they don't make it as far a tree op.
Script security
when objects share an origin but not a global - for example two web pages from the same protocol,
port, and domain - they belong to two different compartments, and the caller gets a transparent wrapper to the target object.
... however, the privileged target is able to copy objects and functions into the less privileged scope using the ex
portfunction() and cloneinto() functions, and the less privileged scope is then able to use them.
... b gets no access to a, although a may choose to ex
port objects to b.
Geckoview-Junit Tests
to run just one test: mozilla-central$ mach geckoview-junit <class>#<test> to run more than one test: mozilla-central$ mach geckoview-junit <class1>#<test1> <class2>#<test2> mach geckoview-junit also sup
ports running a list of tests that are specified in a text file.
...for example: im
port org.junit.ignore ...
...for example: im
port org.junit.assume.assumethat ...
How to get a stacktrace with WinDbg
(the keystroke for a pipe character on us keyboards is shift+\) submit the log file on a bug or via the sup
port site, even if nothing seems to happen during the debug process start debugging now that firefox is opened in the debugger, you need to configure your windbg to download symbols from the mozilla symbol server.
... after the crash or hang you need to capture the debug information to include in a bug comment or sup
port request.
...to provide the information to the development community, submit this file with a sup
port request or attach it to a related bug on bugzilla.
Extending a Protocol
the tutorial is designed for browser engineers who are implementing dom/web apis that need to, for example, send a message to the os or spin up something off the main thread - so it's biased towards sup
porting w3c/whatwg dom apis.
... private: ~echochild() = default; bool mactoralive; }; } // end of namespace dom } // end of namespace mozilla and add the echochild.h to dom/ipc/moz.build, as part of the ex
ports.mozilla.dom array.
...string& astring, echoparent::echoresolver&& aresolver); mozilla::ipc::ipcresult recv__delete__() override; void actordestroy(actordestroyreason awhy) override; private: ~echoparent() = default; bool mactoralive; }; } // end of namespace dom } // end of namespace mozilla #endif now, and add the echoparent.h to dom/ipc/moz.build, as part of the ex
ports.mozilla.dom array.
Code Samples
components.utils.im
port("resource://gre/modules/addonmanager.jsm"); addonmanager.getaddonbyid("yourextensionid", function(addon) { var addonlocation = addon.getresourceuri("").queryinterface(components.interfaces.nsifileurl).file.path; }); accessing file and version information components.utils.im
port("resource://gre/modules/addonmanager.jsm"); addonmanager.getaddonbyid("my-addon@foo.com", function(addon) { alert("my extension's version is " + addon.version); alert("did i remember to include that file.txt file in my xpi?
..."yes!" : "no"); alert("let's pretend i did, it's available from the url " + addon.getresourceuri("file.txt").spec); }); uninstall an add-on components.utils.im
port("resource://gre/modules/addonmanager.jsm"); addonmanager.getaddonbyid("youraddon@youraddon.com", function(addon) { addon.uninstall(); }); disable an add-on components.utils.im
port("resource://gre/modules/addonmanager.jsm"); addonmanager.getaddonbyid("youraddon@youraddon.com", function(addon) { if (addon.isactive) addon.userdisabled = addon.isactive; }); listening for add-on uninstall this example sets a variable beinguninstalled that you can check when you get a profile-before-change message to do cleanup for your add-on on uninstall.
... var beinguninstalled; let listener = { onuninstalling: function(addon) { if (addon.id == "youraddon@youraddon.com") { beinguninstalled = true; } }, onoperationcancelled: function(addon) { if (addon.id == "youraddon@youraddon.com") { beinguninstalled = (addon.pendingoperations & addonmanager.pending_uninstall) != 0; } } } try { components.utils.im
port("resource://gre/modules/addonmanager.jsm"); addonmanager.addaddonlistener(listener); } catch (ex) {} ...
DeferredTask.jsm
to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/deferredtask.jsm"); use this, for instance, if you write data to a file and you expect that you may have to rewrite data very soon afterwards.
... a common use case occurs when a data structure should be saved into a file every time the data changes, using asynchronous calls, and multiple changes to the data may happen within a short time: let savedeferredtask = new deferredtask(function* () { yield os.file.writeatomic(...); // any uncaught exception will be re
ported.
... ); instead, if you are going to delete the saved data from disk anyways, you might as well prevent any pending write from starting, while still ensuring that any write that is currently in progress terminates, so that the file is not in use any more: savedeferredtask.disarm(); savedeferredtask.finalize().then(() => os.file.remove(...)) .then(null, components.utils.re
porterror); ...
Interfacing with the Add-on Repository
im
porting the repository code module before you can use the add-on repository api, you need to im
port the code module: components.utils.im
port("resource://gre/modules/addonrepository.jsm"); having done this, you can then access the api through the resulting addonrepository object.
...the im
portant thing to note is that this will handle the failure case.
... installing the add-on the shownotification() routine displays a notification box offering to install the recommended add-on, if one was found, or re
ports an error if the search failed: shownotification: function(prompt, button, installobj) { this.install = installobj; var box = popupnotifications.show(gbrowser.selectedbrowser, "sample-popup", prompt, null, /* anchor id */ { label: button, accesskey: "i", callback: function() { if (popupnotifications.install) { ...
NetUtil.jsm
to use these utilities, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/netutil.jsm"); once you've im
ported the module, you can then use its methods.
... note: sup
port for specifying an nsiinputstream as the input source was added in gecko 5.
... note: starting in gecko 2, this method sup
ports specifying an nsifile as the target of the uri.
Sqlite.jsm
before you can use this module, you need to im
port it into your scope: components.utils.im
port("resource://gre/modules/sqlite.jsm") obtaining a connection sqlite.jsm ex
ports the sqlite symbol.
... here is an example: components.utils.im
port("resource://gre/modules/sqlite.jsm"); try { const conn = await sqlite.openconnection({ path: "mydatabase.sqlite", sharedmemorycache: false }); // connection is the opened sqlite connection (see below for api).
...these are arguably the most im
portant apis in this type.
Localizing with Koala
just type a single dot (".") in the url field to enable mercurial sup
port in koala.
...this will allow you to track changes, ex
port them to remote repositories (first on bitbucket, later on hg.mozilla.org) and revert files to earlier versions in case of errors.
...koala sup
ports mercurial and allows you to add and commit files automatically from komodo.
Translation phase
these are the l10n tools we use to localize mozilla applications: pootle a user-friendly web
portal built on the translate toolkit api.
... addons.mozilla.org (amo) a
portal for all users interested in finding add-ons for their local mozilla applications.
... sup
port.mozilla.com (sumo) a
portal for anyone who needs technical sup
port for their mozilla applications.
SVN for Localizers
the svn client is the localizer's communication
portal for accessing the mozilla svn server.
...it's very im
portant for you to update your working copy with the newest files from mozilla svn repository before you start making changes.
...it's very im
portant that you do this often.
Localization technical reviews
here is some of the criteria we use to perform technical reviews: revision attachment contains only relevant files we run into ex
ports that contain .xpi langpacks and other random files.
... compare-locale we run the compare-locales tool on the new locale to get the statistics on translation of strings and re
port basic errors.
...if they don't, we re
port any strange access keys or translations that localizers might have changed during their initial translation process.
MathML In Action
in either case, head over to bugzilla to re
port the discrepancies.
... bugzilla has a big memory for these things, and besides, how would your problems be fixed if they are not re
ported?!
...your feedback can be manifested by putting mathml content on the web, re
porting bugs in bugzilla, and, if you can help with code, inspecting/improving the current code, and/or picking up an item in the todo list.
Mozilla MathML Project
the mozilla mathml project is mozilla's project to build and enhance mathml sup
port within firefox and other mozilla-based applications.
... various mathml tests - these pages were im
ported from layout/mathml/tests/.
...sidje other contributors: frédéric wang last updated date: april 4, 2010 copyright information:
portions of this content are © 1999–2010 by individual mozilla.org contributors; content available under a creative commons license | details.
Mozilla Development Strategies
work on the most im
portant bugs first everyone likes to check in.
... work on multiple bugs in parallel you should be working on the most im
portant bugs first.
...cvs commit client.mak nmake -f client.mak original document information author(s): seth spitzer and alec flett last updated date: september 3, 2006 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Mozilla projects on GitHub
projects this listing covers the larger-scale and more im
portant mozilla projects on github.
... project name description pdf.js a
portable document format (pdf) reader written entirely in javascript.
... kitsune kitsune is the platform that drives the mozilla sup
port web site, sumo.
Measuring performance using the PerfMeasurement.jsm code module
the first thing you need to do is to im
port the module into your scope: components.utils.im
port("resource://gre/modules/perfmeasurement.jsm") you can then create a perfmeasurement object.
... you give the constructor a bit-mask of events you're interested in; see note: at present, perfmeasurement.jsm is only functional on linux, but it is planned to add sup
port for windows (bug 583322) and osx (bug 583323) as well, and we welcome patches for other operating systems.
... when you're done benchmarking, you can read out each of the counters you asked for as properties: let re
port = "cpu cycles: " + monitor.cpu_cycles + "\n" + "cache refs: " + monitor.cache_references + "\n" + "cache misses: " + monitor.cache_misses + "\n"; monitor.reset(); alert(re
port); the reset() method clears all of the enabled counters, as you might expect.
Refcount tracing and balancing
refcount tracing logs calls to addref and release, preferably for a particular set of classes, including call-stacks in symbolic form (on platforms that sup
port this).
...this requires c++ dynamic casts, so it is not sup
ported on all platforms.
... xpcom_mem_alloc_log for platforms that don't have stack-crawl sup
port, xpcom sup
ports logging at the call site to addref/release using the usual cpp __file__ and __line__ number macro expansion hackery.
TraceMalloc
the built mozilla application will sup
port the following additional command-line options: --trace-malloc filename the application will log allocation and deallocation events with stack traces in a binary format to the given file.
...if you run with --trace-malloc -, your code can call ns_tracemallocdumpallocations(pathname) at op
portune times, and a human-readable listing of the current heap, including stack traces for every allocation, will be written to pathname.
...it will produce a re
port like the following.
Debugging out-of-memory problems
out-of-memory exceptions from js setting memory.dump_re
ports_on_oom in about:config to true will cause the browser to automatically write about:memory dumps to a temp file printed to the browser console (note: not web console) when an oom crash is encountered.
... ideally, memory.dump_re
ports_on_oom would generate an about:memory dump, but it does not currently.
...note: replace "/storage/emulated/0/download/" in the re
ported file path with the device's download path (e.g.
Emscripten
im
portant: this page provides a very brief introduction to what emscripten is.
... with emscripten, c/c++ developers don’t have the high cost of
porting code manually to javascript — or having to learn javascript at all.
... practically any
portable c or c++ codebase can be compiled into javascript using emscripten, ranging from high performance games that need to render graphics, play sounds, and load and process files, through to application frameworks like qt.
L20n HTML Bindings
it is im
portant to note that applying translations doesn't replace dom elements, but only modifies their text nodes and their attributes.
... when all dom nodes are localized, the document element will fire a documentlocalized event, which you can listen to: document.addeventlistener('documentlocalized', function() { // the dom has been localized and the user sees it in their language yourapp.init(); }); exposing context data you can expose im
portant bits of data to the localization context in form of context data.
...we plan to add sup
port for a language pack service in the future that can tap into this scenario on the client side.
Localization Use Cases
this article documents a few op
portunities to improve the localization of gaia (the ui layer of firefox os) by using l20n.
...size}} {{$unit}} available an italian translation might look like this: availablesize = {[ plural(size) ]} availablesize[one] = {{$size}} {{$unit}} disponibile availablesize[other] = {{$size}} {{$unit}} disponibili it's easy to imagine how developers might forget to pluralize some strings that in other languages might require pluralization (or other grammatical features that the framework sup
ports).
...this takes the responsibility away from the developers and puts it in the hands of localizers, at the same time transforming it from a burden into an op
portunity.
AsyncTestUtils extended framework
boilerplate add the following code to the top of your test file to im
port everything you need: load("../../mailnews/resources/loghelper.js"); load("../../mailnews/resources/asynctestutils.js"); load("../../mailnews/resources/messagegenerator.js"); load("../../mailnews/resources/messagemodifier.js"); load("../../mailnews/resources/messageinjection.js"); if the directory where you are adding the tests does not have a head_*.js file that has the two following lines, add them at the top of your test file (before the lines shown above): load("../../mailnews/resources/maildirservice.js"); load("..
...if you need to get fancy about having flags set on the folder, we sup
port that, but please check the method documentation.
...the messagescenariofactory produces specific pre-configured message threading configurations using fresh messages (im
portant in avoiding duplicate messages for code that cares, like gloda).
Anonymous Shared Memory
pr_memunmap(addr); pr_closefilemap(fm); second protocol server: fm = pr_openanonfilemap(dirname, size, filemapprot); fmstring = pr_ex
portfilemapasstring( fm ); addr = pr_memmap(fm); ...
...application specific technique to find fmstring from parent fm = pr_im
portfilemapfromstring( fmstring ) addr = pr_memmap(fm); ...
...pr_memunmap(addr); pr_closefilemap(fm); anonymous shared memory functions pr_openanonfilemap pr_processattrsetinheritablefilemap pr_getinheritedfilemap pr_ex
portfilemapasstring pr_im
portfilemapfromstring ...
Atomic Operations
the functions define a
portable api that may be reliably used in any environment.
... atomic operations functions the api defined for the atomic functions is consistent across all sup
ported platforms.
...therefore, to preserve
portability, it is recommended that clients use the nspr api for atomic operations.
Dynamic Library Linking
dynamic library search path ex
porting symbols from the main executable program dynamic library search path the dynamic library search path is the list of directories in which to look for a dynamic library.
... ex
porting symbols from the main executable program on some systems, symbols defined in the main executable program are not ex
ported by default.
... on hp-ux, you must link the executable program with the -e linker option in order to ex
port all symbols in the main program to shared libraries.
I/O Functions
only the ascii character set is sup
ported.
... list of functions: pr_openudpsocket pr_newudpsocket pr_opentcpsocket pr_newtcpsocket pr_im
porttcpsocket pr_connect pr_connectcontinue pr_accept pr_bind pr_listen pr_shutdown pr_recv pr_send pr_recvfrom pr_sendto pr_transmitfile pr_acceptread pr_getsockname pr_getpeername pr_getsocketoption pr_setsocketoption converting between host and network addresses pr_ntohs pr_ntohl pr_htons pr_htonl pr_familyinet memory-mapped i/o functions the memory-mapped i/o functions ...
... pr_createfilemap pr_memmap pr_memunmap pr_closefilemap anonymous pipe function pr_createpipe polling functions this section describes two of the most im
portant polling functions provided by nspr: pr_poll pr_getconnectstatus pollable events a pollable event is a special kind of file descriptor.
PR_VersionCheck
compares the version of nspr assumed by the caller (the im
ported version) with the version being offered by the runtime (the ex
ported version).
... syntax #include <prinit.h> prbool pr_versioncheck(const char *im
portedversion); parameter pr_versioncheck has one parameter: im
portedversion the version of the shared library being im
ported.
... description pr_versioncheck tests whether the version of the library being im
ported (im
portedversion) is compatible with the running version of the shared library.
JSS
or -- git clone https://github.com/dogtagpki/jss.git all future upstream enquiries to jss should now use the pagure issue tracker system: https://pagure.io/jss/issues documentation regarding the jss project should now be viewed at: http://www.dogtagpki.org/wiki/jss note: as much of the jss documentation is sorely out-of-date, updated information will be a work in progress, and many
portions of any legacy documentation will be re-written over the course of time.
...jss sup
ports most of the security standards and encryption technologies sup
ported by nss.
...introduces the ssl protocol, including information about cryptographic ciphers sup
ported by ssl and the steps involved in the ssl handshake.
NSS_3.11.10_release_notes.html
bug 291384: certutil -k behavior doesn't match usage bug 374247: modutil -disable command not disabling modules' slots bug 384459: certification path validation fails when authority key identifier extension contains key identifier bug 385946: can't im
port certificate into cert database in fips mode (certutil).
... bug 398680: assertion botch in ssl3_registerserverhelloextensionsender doing second handshake with ssl_forcehandshake bug 403240: threads hanging in nss_initlock bug 403888: memory leak in trustdomain.c bug 416067: certutil -l -h token doesn't re
port token authentication failure bug 417637: tstclnt crashes if -p option is not specified bug 421634: don't send an sni client hello extension bearing an ipv6 address bug 422918: add verisign class 3 public primary ca - g5 to nss bug 424152: add thawte primary root ca to nss bug 424169: add geotrust primary certification authority root to nss bug 425469: add multiple new roots: geotrust ...
... feedback bugs discovered should be re
ported by filing a bug re
port with mozilla.org bugzilla (product nss).
NSS 3.16.2.2 release notes
this fixes a regression introduced in nss 3.16.2 that prevented nss from im
porting some rsa private keys (such as in pkcs #12 files) generated by other crypto libraries.
... bugs fixed in nss 3.16.2.2 bug 1049435 - im
porting an rsa private key fails if p < q compatibility nss 3.16.2.2 shared libraries are backward compatible with all older nss 3.x shared libraries.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.16.6 release notes
this fixes a regression introduced in nss 3.16.2 that prevented nss from im
porting some rsa private keys (such as in pkcs #12 files) generated by other crypto libraries.
... bugs fixed in nss 3.16.6 bug 1049435 - im
porting an rsa private key fails if p < q compatibility nss 3.16.6 shared libraries are backward compatible with all older nss 3.x shared libraries.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.18 release notes
nss 3.18 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_18_rtm/src/ new in nss 3.18 new functionality when im
porting certificates and keys from a pkcs#12 source, it's now possible to override the nicknames, prior to im
porting them into the nss database, using new api sec_pkcs12decoderrenamecertnicknames.
... in pk11pub.h __pk11_setcertificatenickname - this is an internal symbol for nss use only, as with all ex
ported nss symbols that have a leading underscore '_'.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.19.2.1 release notes
because nss includes
portions of the affected nspr code at build time, it is necessary to use nspr 4.10.10 when building nss.
... bug 1205157 (nspr, cve-2015-7183): a logic bug in the handling of large allocations would allow exceptionally large allocations to be re
ported as successful, without actually allocating the requested memory.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.19.4 release notes
because nss includes
portions of the affected nspr code at build time, it is necessary to use nspr 4.10.10 when building nss.
... bug 1205157 (nspr, cve-2015-7183): a logic bug in the handling of large allocations would allow exceptionally large allocations to be re
ported as successful, without actually allocating the requested memory.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.20.1 release notes
because nss includes
portions of the affected nspr code at build time, it is necessary to use nspr 4.10.10 when building nss.
... bug 1205157 (nspr, cve-2015-7183): a logic bug in the handling of large allocations would allow exceptionally large allocations to be re
ported as successful, without actually allocating the requested memory.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.21 release notes
new in nss 3.21 new functionality certutil now sup
ports a --rename option to change a nickname (bug 1142209) tls extended master secret extension (rfc 7627) is sup
ported (bug 1117022) new info functions added for use during mid-handshake callbacks (bug 1084669) new functions in nss.h nss_optionset - sets nss global options nss_optionget - gets the current value of nss global options in secmod.h secmod_createmoduleex - cre...
... ckm_tls_mac - computes tls finished mac in secoidt.h nss_use_alg_in_ssl_kx - policy flag indicating that keys are used in tls key exchange in sslerr.h ssl_error_rx_short_dtls_read - error code for failure to include a complete dtls record in a udp packet ssl_error_no_sup
ported_signature_algorithm - error code for when no valid signature and hash algorithm is available ssl_error_unsup
ported_signature_algorithm - error code for when an unsup
ported signature and hash algorithm is configured ssl_error_missing_extended_master_secret - error code for when the extended master secret is missing after having been negotiated ssl_error_unexpected_extended_master_secret...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.23 release notes
nss 3.23 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_23_rtm/src/ new in nss 3.23 new functionality chacha20/poly1305 cipher and tls cipher suites now sup
ported (bug 917571, bug 1227905) experimental-only sup
port tls 1.3 1-rtt mode (draft-11).
...clients that perform a version downgrade (which is a dangerous practice) call this with the highest version number that they possibly sup
port.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.26 release notes
nss 3.26 requires netscape
portable runtime (nspr) 4.12 or newer.
... nss 3.26 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_26_rtm/src/ new in nss 3.26 new functionality the selfserv test utility has been enhanced to sup
port alpn (http/1.1) and 0-rtt added sup
port for the system-wide crypto policy available on fedora linux, see http://fedoraproject.org/wiki/changes/cryptopolicy introduced build flag nss_disable_libpkix which allows compilation of nss without the libpkix library notable changes in nss 3.26 the following ca certificate was added cn = isrg root x1 sha-256 fingerprint: 96:bc:ec:06:26:49:76:f3:74:60:77:9a:cf:28:c5:a7:cf:e8:a3:c0:aa:e1:1a:8f:fc:ee:05:c0:bd:df:08:c6 npn is disabled,...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.38 release notes
nss 3.38 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_38_rtm/src/ new in nss 3.38 new functionality added sup
port for the tls record size limit extension.
... when repeatedly im
porting the same certificate into an sql database, the existing nickname will be kept.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.44 release notes
notable changes in nss 3.44 it is now possible to build nss as a static library (bug 1543545) initial sup
port for building for ios.
... bugs fixed in nss 3.44 1501542 - implement checkarmsup
port for android 1531244 - use __builtin_bswap64 in crypto_primitives.h 1533216 - cert_decodecertpackage() crash with netscape certificate sequences 1533616 - sdb_getattributevaluenolock should make at most one sql query, rather than one for each attribute 1531236 - provide accessor for certcertificate.dercert 1536734 - lib/freebl/crypto_primitives.c assumes a big endian machine 1532384 - in nss test certificates, use @example.com (not @bogus.com) 1538479 - post-handshake messages after async server authentication break when using record layer separation 1521578 - x25519 sup
port in pk11pars.c 1540205 - freebl build fails with -dnss_disable_chachapoly 1532312 - post-handshake auth doesn't interoperate with openssl 1542741 - ...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.46 release notes
hangs on windows x64 when building nss since changeset 9162c654d06915f0f15948fbf67d4103a229226f bug 1564875 - improve rebuilding with build.sh bug 1565243 - sup
port tc_owner without email address in nss taskgraph bug 1563778 - increase maxruntime on mac taskcluster tools, ssl tests bug 1561591 - remove -wmaybe-uninitialized warning in tstclnt.c bug 1561587 - remove -wmaybe-uninitialized warning in lgattr.c bug 1561558 - remove -wmaybe-uninitialized warning in httpserv.c bug 1561556 - remove -wmaybe-uninitialized warning in tls13esni.c bug 1561332 - ec.
... 'int' and 'unsigned long' bug 1564714 - print certutil commands during setup bug 1565013 - hacl image builder times out while fetching gpg key bug 1563786 - update hacl-star docker image to pull specific commit bug 1559012 - improve gcm perfomance using pmull2 bug 1528666 - correct resumption validation checks bug 1568803 - more tests for client certificate authentication bug 1564284 - sup
port profile mobility across windows and linux bug 1573942 - gtest for pkcs11.txt with different breaking line formats bug 1575968 - add strsclnt option to enforce the use of either ipv4 or ipv6 bug 1549847 - fix nss builds on ios bug 1485533 - enable nss_ssl_tests on taskcluster this bugzilla query returns all the bugs fixed in nss 3.46: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixe...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.49 release notes
bug 1606025 - remove -wmaybe-uninitialized warning in sslsnce.c bug 1606119 - fix ppc hw crypto build failure bug 1605545 - memory leak in pk11install_platform_generate bug 1602288 - fix build failure due to missing posix signal.h bug 1588714 - implement checkarmsup
port for win64/aarch64 bug 1585189 - nss database uses 3des instead of aes to encrypt db entries bug 1603257 - fix ubsan issue in softoken ckm_nss_chacha20_ctr initialization bug 1590001 - additional hrr tests (cve-2019-17023) bug 1600144 - treat clienthello with message_seq of 1 as a second clienthello bug 1603027 - test that esni is regenerated after helloretryrequest bug 1593167 - intermitten...
...t mis-re
porting potential security risk sec_error_unknown_issuer bug 1535787 - fix automation/release/nss-release-helper.py on macos bug 1594933 - disable building dbm by default bug 1562548 - improve gcm perfomance on aarch32 this bugzilla query returns all the bugs fixed in nss 3.49: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&product=nss&target_milestone=3.49 compatibility nss 3.49 shared libraries are backward compatible with all older nss 3.x shared libraries.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.53 release notes
nss 3.53 will be a long-term sup
port release, sup
porting firefox 78 esr.
... bug 1561331 - additional modular inverse test bug 1629553 - rework and cleanup gmake builds bug 1438431 - remove mkdepend and "depend" make target bug 290526 - sup
port parallel building of nss when using the makefiles bug 1636206 - hacl* update after changes in libintvector.h bug 1636058 - fix building nss on debian s390x, mips64el, and riscv64 bug 1622033 - add option to build without seed this bugzilla query returns all the bugs fixed in nss 3.53: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&p...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS Sample Code Sample_1_Hashing
sample code 1 /* nspr headers */ #include <prprf.h> #include <prtypes.h> #include <plgetopt.h> #include <prio.h> /* nss headers */ #include <secoid.h> #include <secmodt.h> #include <sechash.h> typedef struct { const char *hashname; secoidtag oid; } nametagpair; /* the hash algorithms sup
ported */ static const nametagpair hash_names[] = { { "md2", sec_oid_md2 }, { "md5", sec_oid_md5 }, { "sha1", sec_oid_sha1 }, { "sha256", sec_oid_sha256 }, { "sha384", sec_oid_sha384 }, { "sha512", sec_oid_sha512 } }; /* * maps a hash name to a secoidtag.
... * returns null if the name is not a sup
ported algorithm */ static secoidtag hashnametooidtag(const char *hashname) { int i, nhashes = sizeof(hash_names); secoidtag hashtag = sec_oid_unknown; for (i = 0; i < nhashes; i++) { if (
port_strcasecmp(hashname, hash_names[i].hashname) == 0) { hashtag = hash_names[i].oid; break; } } return hashtag; } /* * newline */ static void newline(prfiledesc* out) { pr_fprintf(out, "\n"); } /* * printashex */ void printashex(prfiledesc* out, unsigned char *data, unsigned int len) { unsigned i; int column; unsigned int limit = 15; unsigned int level = 1; column = level; if (!len) { pr_fprintf(out, "(empty)\n"); return; } for (i = 0; i < len; i++) ...
...hoidtag = hashnametooidtag(hashname); if (hashoidtag == sec_oid_unknown) { fprintf(stderr, "%s: invalid digest type - %s\n", progname, hashname); usage(progname); } /* digest it and print the result */ rv = digestfile(pr_stdout, pr_stdin, hashoidtag); if (rv != secsuccess) { fprintf(stderr, "%s: problem digesting data (%d)\n", progname,
port_geterror()); } rv = nss_shutdown(); if (rv != secsuccess) { exit(-1); } return 0; } </sechash.h></secmodt.h></secoid.h></prio.h></plgetopt.h></prtypes.h></prprf.h> ...
Hashing - sample 1
*/ /* nspr headers */ #include <prprf.h> #include <prtypes.h> #include <plgetopt.h> #include <prio.h> /* nss headers */ #include <secoid.h> #include <secmodt.h> #include <sechash.h> #include <nss.h> typedef struct { const char *hashname; secoidtag oid; } nametagpair; /* the hash algorithms sup
ported */ static const nametagpair hash_names[] = { { "md2", sec_oid_md2 }, { "md5", sec_oid_md5 }, { "sha1", sec_oid_sha1 }, { "sha256", sec_oid_sha256 }, { "sha384", sec_oid_sha384 }, { "sha512", sec_oid_sha512 } }; /* * maps a hash name to a secoidtag.
... * returns null if the name if not a sup
ported algorithm */ static secoidtag hashnametooidtag(const char *hashname) { int i, nhashes = sizeof(hash_names); secoidtag hashtag = sec_oid_unknown; for (i = 0; i < nhashes; i++) { if (
port_strcasecmp(hashname, hash_names[i].hashname) == 0) { hashtag = hash_names[i].oid; break; } } return hashtag; } /* * newline */ static void newline(prfiledesc* out) { pr_fprintf(out, "\n"); } /* * printashex */ void printashex(prfiledesc* out, unsigned char *data, unsigned int len) { unsigned i; int column; unsigned int limit = 15; unsigned int level = 1; column = level; if (!len) { pr_fprintf(out, "(empty)\n"); return; } for (i = 0; i < len; i...
...hoidtag = hashnametooidtag(hashname); if (hashoidtag == sec_oid_unknown) { fprintf(stderr, "%s: invalid digest type - %s\n", progname, hashname); usage(progname); } /* digest it and print the result */ rv = digestfile(pr_stdout, pr_stdin, hashoidtag); if (rv != secsuccess) { fprintf(stderr, "%s: problem digesting data (%d)\n", progname,
port_geterror()); } rv = nss_shutdown(); if (rv != secsuccess) { exit(-1); } return 0; } ...
sample1
/* nspr headers */ #include <prprf.h> #include <prtypes.h> #include <plgetopt.h> #include <prio.h> #include <prprf.h> /* nss headers */ #include <secoid.h> #include <secmodt.h> #include <sechash.h> typedef struct { const char *hashname; secoidtag oid; } nametagpair; /* the hash algorithms sup
ported */ static const nametagpair hash_names[] = { { "md2", sec_oid_md2 }, { "md5", sec_oid_md5 }, { "sha1", sec_oid_sha1 }, { "sha256", sec_oid_sha256 }, { "sha384", sec_oid_sha384 }, { "sha512", sec_oid_sha512 } }; /* maps a hash name to a secoidtag.
... * returns null if the name is not a sup
ported algorithm */ static secoidtag hashnametooidtag(const char *hashname) { int i, nhashes = sizeof(hash_names); secoidtag hashtag = sec_oid_unknown; for (i = 0; i < nhashes; i++) { if (
port_strcasecmp(hashname, hash_names[i].hashname) == 0) { hashtag = hash_names[i].oid; break; } } return hashtag; } /* newline */ static void newline(prfiledesc* out) { pr_fprintf(out, "\n"); } /* printashex */ void printashex(prfiledesc* out, unsigned char *data, unsigned int len) { unsigned i; int column; unsigned int limit = 15; unsigned int level = 1; column = level; if (!len) { pr_fprintf(out, "(empty)\n"); return; ...
... hashoidtag = hashnametooidtag(hashname); if (hashoidtag == sec_oid_unknown) { fprintf(stderr, "%s: invalid digest type - %s\n", progname, hashname); usage(progname); } /* digest it and print the result */ rv = digestfile(pr_stdout, pr_stdin, hashoidtag); if (rv != secsuccess) { fprintf(stderr, "%s: problem digesting data (%d)\n", progname,
port_geterror()); } rv = nss_shutdown(); if (rv != secsuccess) { exit(-1); } return 0; } ...
PKCS 12 functions
the nss version column indicates which versions of nss sup
port the function.
... function name/documentation source code nss versions sec_pkcs12addcertandkey mxr 3.2 and later sec_pkcs12addpasswordintegrity mxr 3.2 and later sec_pkcs12createex
portcontext mxr 3.2 and later sec_pkcs12createpasswordprivsafe mxr 3.2 and later sec_pkcs12createunencryptedsafe mxr 3.2 and later sec_pkcs12decoderfinish mxr 3.2 and later sec_pkcs12decodergetcerts mxr 3.4 and later sec_pkcs12decoderim
portbags mxr 3.2 and later sec_pkcs12decoderiterateinit mxr 3.10 and later sec_pkcs12decoderiteratenext ...
... sec_pkcs12decodersettargettokencas mxr 3.8 and later sec_pkcs12decoderstart mxr 3.2 and later sec_pkcs12decoderupdate mxr 3.2 and later sec_pkcs12decodervalidatebags mxr 3.2 and later sec_pkcs12decoderverify mxr 3.2 and later sec_pkcs12destroyex
portcontext mxr 3.2 and later sec_pkcs12enablecipher mxr 3.2 and later sec_pkcs12encode mxr 3.2 and later sec_pkcs12isencryptionallowed mxr 3.2 and later sec_pkcs12setpreferredcipher mxr 3.2 and later ...
NSS tools : crlutil
-i im
port a crl to the cert database -e erase all crls of specified type from the cert database -l list existing crl located in cert database file.
... -i crl-im
port-file specify the file which contains the crl to im
port -f password-file specify a file that will automatically supply the password to include in a certificate or to access a certificate database.
...[-p dbprefix] [-l alg] [-a] [-b] * listing all crls or a named crl: crlutil -l [-n crl-name] [-d krydir] * deleting crl from db: crlutil -d -n nickname [-d keydir] [-p dbprefix] * erasing crls from db: crlutil -e [-d keydir] [-p dbprefix] * deleting crl from db: crlutil -d -n nickname [-d keydir] [-p dbprefix] * erasing crls from db: crlutil -e [-d keydir] [-p dbprefix] * im
port crl from file: crlutil -i -i crl [-t crltype] [-u url] [-d keydir] [-p dbprefix] [-b] see also certutil(1) see also additional resources nss is maintained in conjunction with pki and security-related projects through mozilla dn fedora.
NSS Tools certutil-tasks
nss security tools: certutil tasks newsgroup: mozilla.dev.tech.crypto task list better error re
porting.
... sup
port im
porting keys from a file.
... improve hardware token sup
port.
NSS tools : crlutil
-i im
port a crl to the cert database -e erase all crls of specified type from the cert database -l list existing crl located in cert database file.
... -i crl-im
port-file specify the file which contains the crl to im
port -f password-file specify a file that will automatically supply the password to include in a certificate or to access a certificate database.
... named crl: crlutil -l [-n crl-name] [-d krydir] * deleting crl from db: crlutil -d -n nickname [-d keydir] [-p dbprefix] * erasing crls from db: crlutil -e [-d keydir] [-p dbprefix] * deleting crl from db: crlutil -d -n nickname [-d keydir] [-p dbprefix] * erasing crls from db: crlutil -e [-d keydir] [-p dbprefix] * im
port crl from file: crlutil -i -i crl [-t crltype] [-u url] [-d keydir] [-p dbprefix] [-b] see also certutil(1) see also additional resources nss is maintained in conjunction with pki and security-related projects through mozilla dn fedora.
Necko FAQ
todo how does the proxy sup
port work?
... todo what about socks sup
port?
... todo original document information author(s): gagan saksena last updated date: december 21, 2001 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Small Footprint
smalljs.jar ant build script in rhino sup
ports smalljar target that will generate smalljs.jar that does not include tools, optimizer, javaadapter and class generation library, regular expressions, e4x implementataion and deprecated files.
... to build such minimalist jar without debug information, run the following command from the top directory of rhino distribution: ant clean ant -ddebug=off -dno-regexp=true -dno-e4x=true smalljar if you omit -dno-regexp=true, then the resulting smalljs.jar will include regular expression sup
port.
... similarly omitting -dno-e4x=true results in smalljs.jar that includes runtime sup
port for e4x.
Rhino scopes and contexts
before using rhino in a concurrent environment, it is im
portant to understand the distinction between contexts and scopes.
... it's im
portant to understand that a scope is independent of the context that created it.
... a notion of a sealed object is a javascript extension sup
ported by rhino and it means that properties can not be added/deleted to the object and the existing object properties can not be changed.
SpiderMonkey Build Documentation
spidermonkey does not sup
port building in your source directory.
...that tends to be easier with clang as clang has cross-compiling sup
port built in.
... sup
port for js_threadsafe was recently removed, and threadsafe builds are now enabled by default.
Property cache
tele
portation.
...the jit code "tele
ports" directly to the appropriate object.
... branded scopes exist to sup
port this case.
JIT Optimization Outcomes
accessnottypedarray accessnotstring statictypedarrayuint32 statictypedarraycantcomputemask outofbounds getelemstringnotcached nonnativereceiver indextype setelemnondensenontanotcached nosimdjitsup
port optimization failed because simd jit sup
port was not enabled.
...the native callee function was called with an unsup
ported number of arguments, or calling non-constructing functions with new.
...the native callee function was called with arguments with types that the built-in specialization does not sup
port.
JS::CreateError
syntax // added in spidermonkey 45 bool js::createerror(jscontext *cx, jsexntype type, handleobject stack, handlestring filename, uint32_t linenumber, uint32_t columnnumber, jserrorre
port *re
port, handlestring message, mutablehandlevalue rval); // obsolete since jsapi 39 bool js::createerror(jscontext *cx, jsexntype type, handlestring stack, handlestring filename, uint32_t linenumber, uint32_t columnnumber, jserrorre
port *re
port, handlestring message, mutablehandlevalue rval); name type description cx jscontext * pointer to a js context from which to derive runtime information.
... re
port jserrorre
port * a pointer to jserrorre
port instance.
... see also mxr id search for js::createerror jsexntype jserrorre
port bug 984048 bug 1038238 -- change stack parameter from js::handlestring to js::handleobject ...
JSClass.flags
mxr id search for jsclass_has_private jsclass_private_is_nsisup
ports mozilla extension.
... the private field of each object of this class points to an xpcom object (see nsisup
ports).
... mxr id search for jsclass_private_is_nsisup
ports jsclass_is_domjsclass added in spidermonkey 17 objects are dom.
JSConvertOp
however, the engine itself only requires sup
port for jstype_string, jstype_number, and jstype_void, if js_convertvalue is not used.
... if you do not use the js_convertvalue method, you may omit sup
port for other types.
... (sup
port for the other types may eventually be removed.) the callback returns true to indicate success or false to indicate failure.
JS_CompileFunction
used to re
port filename or url in error messages.
...used to re
port the offending line in the file or url if an error occurs.
...similarly, lineno is used to re
port the line number where an error occurred during compilation.
JS_CompileFunctionForPrincipals
used to re
port filename or url in error messages.
...used to re
port the offending line in the file or url if an error occurs.
...similarly, lineno is used to re
port the line number of the function or file where an error occurred during compilation.
JS_CompileScriptForPrincipals
used to re
port filename or url in error messages.
...used to re
port the offending line in the file or url if an error occurs.
...similarly, lineno is used to re
port the line number of the script or file where an error occurred during compilation.
JS_EvaluateScript
used to re
port filename or url in error messages.
...used to re
port the offending line in the file or url if an error occurs.
...similarly, lineno is used to re
port the line number of the script or file where an error occurred during compilation.
JS_EvaluateScriptForPrincipals
used to re
port filename or url in error messages.
...used to re
port the offending line in the file or url if an error occurs.
...similarly, lineno is used to re
port the line number of the script or file where an error occurred during compilation.
JS_InstanceOf
if non-null, re
port an error if obj is not of type clasp.
...if non-null, re
port an error if obj is not of type clasp.
...otherwise, it returns false; it also re
ports a typeerror containing the function's name.
Parser API
example: > var expr = reflect.parse("obj.foo + 42").body[0].expression > expr.left.property ({loc:null, type:"identifier", name:"foo"}) > expr.right ({loc:{source:null, start:{line:1, column:10}, end:{line:1, column:12}}, type:"literal", value:42}) it is also available since firefox 7; it can be im
ported into the global object via: components.utils.im
port("resource://gre/modules/reflect.jsm") or into a specified object via: components.utils.im
port("resource://gre/modules/reflect.jsm", obj) built-in objects whether in spidermonkey shell or firefox (after im
porting), the global singleton object reflect currently contains just the parse method.
... note: the debugger statement is new in ecmascript 5th edition, although spidermonkey has sup
ported it for years.
... e4x this section describes node types that are provided for e4x sup
port.
Mozinfo
downloading the software and running python setup.py develop will allow you to do im
port mozinfo from python.
... in addition, mozinfo ex
ports a dictionary, mozinfo.info, that contain these values.
... mozinfo also ex
ports: choices: a dictionary of possible values for os, bits, and processor main: the console_script entry point for mozinfo unknown: a singleton denoting a value that cannot be determined unknown has the string representation "unknown".
A Web PKI x509 certificate primer
*.yourcompany.com) but you want others outside of your organization to be able to browse to your website using https without having to manually im
port a root certificate, then you can get an ssl certificate from one of the cas who already have a root certificate included in the major browsers.
...(p384 also chosen for compatibility as most ssl/tls implementations sup
port this part of suite b).
...rror_path_len_constraint_invalid sec_error_unknown_critical_extension a certificate contains an extension marked as critical that is not handled by mozilla::pkix re-generate the certificate without the extension or with it not marked as critical sec_error_unknown_issuer either a missing intermediate or root certificate is necessary to verify the certificate im
port the root certificate into firefox or have the server send the intermediate sec_error_invalid_key sec_error_unsup
ported_keyalg sec_error_expired_issuer_certificate an issuer certificate is too old re-issue the issuer certificate mozilla_pkix_error_ca_cert_used_as_end_entity a certificate with a basic constraints extension with ca:true is...
Browser security
an im
portant aspect of developing code for any browser, including firefox, as well as any web-oriented project, is its security.
... these articles provide im
portant guides and references to ensuring the code you write is secure, including both design recommendations and testing guidelines.
...this article provides an overview of what these are and how they work.exploitable crashesthis article will help you determine if a crash is exploitable, find crashes which are exploitable, and to fix exploitable crashes.handling mozilla security bugsthis document describes how the new security organizational structure will work, and how security-related mozilla bug re
ports will be handled.pinning violation re
portsif a site makes use of key pinning, and your browser sees a certificate chain for that site which does not match the pin, firefox will reject the connection and display an error page.
Creating a Python XPCOM component
then you can im
port xpcom in any python module (mostly, in your component).
... defining the interface make a file named "nsipysimple.idl" to define the interface: #include "nsisup
ports.idl" [scriptable, uuid(2b324e9d-a322-44a7-bd6e-0d8c83d94883)] interface nsipysimple : nsisup
ports { attribute string yourname; void write( ); void change(in string avalue); }; this is the same as the nsisimple interface used here.
...make a file named "py_simple.py" for the actual code (again, in the 'components' directory): from xpcom im
port components, verbose class pysimple: #pythontestcomponent _com_interfaces_ = components.interfaces.nsipysimple _reg_clsid_ = "{c456ceb5-f142-40a8-becc-764911bc8ca5}" _reg_contractid_ = "@mozilla.org/pysimple;1" def __init__(self): self.yourname = "a default name" # or mname ?
XPCOM glue
frozen linkage: standalone glue (no dll dependencies) note: sup
port for locating a standalone glue was removed in gecko 6.0.
...however, when using threadsafe together with the glue libraries from gecko 1.8 or later, a special step needs to be taken to use ns_impl_threadsafe_isup
portsn.
... internal linkage will be unavailable to extension authors in xulrunner 1.9 (firefox 3) because the nonfrozen symbols will not be ex
ported from libxul.
XPCOM hashtable guide
hashtables may seem like arrays, but there are im
portant differences: array hashtable keys: integer: arrays are always keyed on integers, and must be contiguous.
... key type hashkey class strings nsstringhashkey/nscstringhashkey integers nsuint32hashkey/nsuint64hashkey pointers nsptrhashkey<t> owned interface pointers nsisup
portshashkey reference-counted concrete classes nsrefptrhashkey there are a number of more esoteric hashkey classes in nshashkeys.h, and you can always roll your own if none of these fit your needs (make sure you're not duplicating an existing hashkey class though!) once you've determined what hashtable and hashkey classes you need, you can put it all together.
... a few examples: a hashtable that maps utf-8 origin names to a dom window - nsinterfacehashtable<nscstringhashkey, nsidomwindow> a hashtable that maps 32 bit integers to floats - nsdatahashtable<nsuint32hashkey, float> a hashtable that maps nsisup
ports pointers to reference counted cacheentrys - nsrefptrhashtable<nsisup
portshashkey, cacheentry> a hashtable that maps jscontext pointers to a contextinfo struct - nsclasshashtable<nsptrhashkey<jscontext>, contextinfo> a hashset of strings - nsthashtable<nsstringhashkey> hashtable api the hashtable classes all expose the same basic api.
Components.classes
a new xpcom component instance can be created from the returned class object as follows: var obj = components.classes["@mozilla.org/sup
ports-array;1"] .createinstance(components.interfaces.nsisup
portsarray); which is a shortcut to var obj = components.classes["@mozilla.org/sup
ports-array;1"] .createinstance(); obj.queryinterface(components.interfaces.nsisup
portsarray); if you don't provide a specific interface to createinstance(), it will return an xpconnect wrapper for the component, whic...
...h only exposes the methods of the nsisup
ports interface (and under certain circumstances the special wrappedjsobject property).
...ts.interfaces by storing a reference to the object as a constant: const cc = components.classes, ci = components.interfaces; var os = cc["@mozilla.org/observer-service;1"] .getservice(ci.nsiobserverservice); a less known trick, useful when creating multiple instances of the same component, is to use the new operator on the class object: var clazz = components.classes["@mozilla.org/sup
ports-array;1"]; var inst = new clazz(components.interfaces.nsisup
portsarray); this implicitly calls the createinstance() method for you.
Components.interfaces
this includes nsisup
ports.queryinterface(), the optional parameter accepted by nsijscid.getservice(), nsijscid.createinstance() when called from javascript, and nsiclassinfo.getinterfaces().
...you can retrieve an interface object using: var iface = components.interfaces.nsisup
portsarray; this will return you the interface object for the nsisup
portsarray interface.
...for example, assume we have the following interface declaration: interface nsifoo : nsisup
ports { const pruint32 myflag = 5; }; the constant myflag can then be accessed using var myflag = components.interfaces.nsifoo.myflag; ...
XPConnect wrappers
less informed developers understand that wrappers exist and are somehow im
portant, but they don't know when they should use what wrappers, or if they should be seeing a wrapper.
...this is now deprecated and we are in the process of removing sup
port for it.
... if you need to make objects or functions defined in chrome code accessible to content, use components.utils.cloneinto or components.utils.ex
portfunction.
IAccessibleTable
[propget] hresult ncolumns( [out] long columncount ); parameters columncount number of columns in table (including columns outside the current view
port) return value s_ok.
...[propget] hresult nrows( [out] long rowcount ); parameters rowcount number of rows in table (including rows outside the current view
port) return value s_ok.
...[propget] hresult summary( [out] iunknown accessible ); parameters accessible returns a reference to an implementation dependent accessible object representing the table's summary or a null pointer if the table does not sup
port a summary.
jsdIStackFrame
warnings re
ported as errors.
...private data for this object is an nsisup
ports object.
...private data for this context, if it is an nsisup
ports, |null| otherwise.
mozISpellCheckingEngine
implement this interface to add sup
port for a new spell checking engine.
... inherits from: nsisup
ports last changed in gecko 1.7 this interface represents a spell checking engine.
...void getdictionarylist( [array, size_is(count)] out wstring dictionaries, out pruint32 count ); parameters dictionaries a list of dictionaries sup
ported by this spell checker.
nsIAccessibilityService
last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits from: nsiaccessibleretrieval method overview nsiaccessible createouterdocaccessible(in nsidomnode anode); nsiaccessible createrootaccessible(in nsipresshell ashell, in nsidocument adocument); nsiaccessible createhtml4buttonaccessible(in nsisup
ports aframe); nsiaccessible createhypertextaccessible(in nsisup
ports aframe); nsiaccessible createhtmlbraccessible(in nsisup
ports aframe); nsiaccessible createhtmlbuttonaccessible(in nsisup
ports aframe); nsiaccessible createhtmlaccessiblebymarkup(in nsiframe aframe, in nsiweakreference aweakshell, in nsidomnode adomnode); nsiaccessible createhtmlliaccessible(in nsisup
ports aframe, in n...
...sisup
ports abulletframe, in astring abullettext); nsiaccessible createhtmlcheckboxaccessible(in nsisup
ports aframe); nsiaccessible createhtmlcomboboxaccessible(in nsidomnode anode, in nsiweakreference apresshell); nsiaccessible createhtmlgenericaccessible(in nsisup
ports aframe); nsiaccessible createhtmlgenericaccessible(in nsisup
ports aframe); nsiaccessible createhtmlhraccessible(in nsisup
ports aframe); nsiaccessible createhtmlimageaccessible(in nsisup
ports aframe); nsiaccessible createhtmllabelaccessible(in nsisup
ports aframe); nsiaccessible createhtmllabelaccessible(in nsidomnode anode, in nsiweakreference apresshell); nsiaccessible createhtmlobjectframeaccessible(in nsobjectframe aframe); nsiaccessible createhtmlradiobuttonaccessible(in nsisup
ports aframe); ...
...nsiaccessible createhtmlselectoptionaccessible(in nsidomnode anode, in nsiaccessible aaccparent, in nsiweakreference apresshell); nsiaccessible createhtmltableaccessible(in nsisup
ports aframe); nsiaccessible createhtmltablecellaccessible(in nsisup
ports aframe); nsiaccessible createhtmltableheadaccessible(in nsidomnode adomnode); nsiaccessible createhtmltextaccessible(in nsisup
ports aframe); nsiaccessible createhtmltextfieldaccessible(in nsisup
ports aframe); nsiaccessible createhtmlcaptionaccessible(in nsisup
ports aframe); nsiaccessible getaccessible(in nsidomnode anode, in nsipresshell apresshell, in nsiweakreference aweakshell, inout nsiframe framehint, out boolean aishidden); nsiaccessible addnativerootaccessible(in voidptr aatkaccessible); void removenativerootacc...
nsIAuthModule
inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void getnexttoken([const] in voidptr aintoken, in unsigned long aintokenlength, out voidptr aouttoken, out unsigned long aouttokenlength); void init(in string aservicename, in unsigned long aserviceflags, in wstring adomain, in wstring ausername, in wstring apassword); void unwrap([const] in voidptr aintoken, in unsigned long aintokenlength, out voidptr aouttoken, out unsigned long aouttokenlength); void wrap([const] in voidptr aintoken, in unsigned long aintokenlength, in boolean confidential, out voidptr aouttoken, out unsi...
... exceptions thrown ns_error_not_implemented if the underlying authentication mechanism does not sup
port security layers.
... exceptions thrown ns_error_not_implemented if the underlying authentication mechanism does not sup
port security layers.
nsIAuthPrompt2
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) this interface is usually acquired using getinterface on notification callbacks or similar.
...to create an instance, use: var authprompt2 = components.classes["@mozilla.org/login-manager/prompter;1"] .createinstance(components.interfaces.nsiauthprompt2); method overview nsicancelable asyncpromptauth(in nsichannel achannel, in nsiauthpromptcallback acallback, in nsisup
ports acontext, in pruint32 level, in nsiauthinformation authinfo); boolean promptauth(in nsichannel achannel, in pruint32 level, in nsiauthinformation authinfo); constants constant value description level_none 0 the password will be sent unencrypted.
... nsicancelable asyncpromptauth( in nsichannel achannel, in nsiauthpromptcallback acallback, in nsisup
ports acontext, in pruint32 level, in nsiauthinformation authinfo ); parameters achannel the channel that requires authentication.
nsICRLManager
inherits from: nsisup
ports last changed in gecko 1.7 method overview wstring computenextautoupdatetime(in nsicrlinfo info, in unsigned long autoupdatetype, in double noofdays); void deletecrl(in unsigned long crlindex); nsiarray getcrls(); void im
portcrl([array, size_is(length)] in octet data, in unsigned long length, in nsiuri uri, in unsigned long type, in boolean dosilentdownload, in wstring crlkey); void reschedulecrlautoupdate(); boolean updatecrlfromurl(in wstring url, in wstring key); constants constant value description type_autoupdate_time_based 1 type_autoupdate_freq_based 2 methods computenextautoupdatetime() wstring computenextautoupdatetime( ...
...return value im
portcrl() im
port a crl into the certificate database.
... void im
portcrl( [array, size_is(length)] in octet data, in unsigned long length, in nsiuri uri, in unsigned long type, in boolean dosilentdownload, in wstring crlkey ); parameters data length uri type dosilentdownload crlkey reschedulecrlautoupdate() this would reschedule the autoupdate of crls with auto update enable.
nsICharsetResolver
inherits from: nsisup
ports last changed in gecko 1.7 method overview void notifyresolvedcharset(in acstring charset, in nsisup
ports closure); acstring requestcharset(in nsiwebnavigation awebnavigation, in nsichannel achannel, out boolean awantcharset, out nsisup
ports aclosure); methods notifyresolvedcharset() some implementations may request that they be notified when the charset is actually detected.
... void notifyresolvedcharset( in acstring charset, in nsisup
ports closure ); parameters charset the detected charset.
...acstring requestcharset( in nsiwebnavigation awebnavigation, in nsichannel achannel, out boolean awantcharset, out nsisup
ports aclosure ); parameters awebnavigation the nsiwebnavigation the document is being loaded in.
nsIChromeFrameMessageManager
void loadframescript( in astring aurl, in boolean aallowdelayedload ); parameters aurl the url of the script to load into the frame; this must be an absolute url, but data: urls are sup
ported.
... removedelayedframescript() removes a script from the list of scripts sup
porting delayed load.
... void removedelayedframescript( in astring aurl ); parameters aurl the url of the script to remove from the list of scripts sup
porting delayed load.
nsIControllers
inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) this interface is used to manage instances of the nsicontroller interface.
...getcontrollerforcommand() searches for a controller that sup
ports the given command.
...cmd_copy return value the first controller in the list that sup
ports the given command.
nsIConverterOutputStream
implementations not sup
porting buffering may ignore this parameter.
... areplacementcharacter the replacement character to use when an unsup
ported character is found.
... a value of 0x0000 will cause an exception to be thrown upon attempts to write unsup
ported characters.
nsICookieService
inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) see nsicookiemanager and nsicookiemanager2 for methods to manipulate the cookie database directly.
...getcookiestring() will query the documenturi property off of nsihttpchannelinternal if sup
ported, so getcookiestring() can be used in place of this method.
...setcookiestring() will query the documenturi property off of nsihttpchannelinternal if sup
ported, and setcookiestring() could also query the date header from the channel if achannel sup
ports nsihttpchannel.
nsIDOMGeoPositionCoords
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits from: nsisup
ports attributes attribute type description latitude double the user's current latitude, in degrees.
...zero if the device doesn't sup
port altitude detection.
...zero if the device doesn't sup
port altitude detection.
nsIDOMOfflineResourceList
last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) inherits from: nsisup
ports method overview void mozadd(in domstring uri); boolean mozhasitem(in domstring uri); domstring mozitem(in unsigned long index); void mozremove(in domstring uri); void swapcache(); void update(); attributes attribute type description mozitems nsidomofflineresourcelist the list of dynamically-managed ...
... onupdateready nsidomeventlistener an event listener to be called when a resource update is ready; this event is not currently used since versioned application caches aren't sup
ported yet.
... note: versioned application caches are not yet sup
ported; this method will throw an exception.
nsIDOMWindow
66 introduced gecko 1.0 deprecated gecko 44 inherits from: nsisup
ports last changed in gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4) starting with firefox 44, this file is empty as its features were either no longer used or are only available from c++ code; see dom/base/nspidomwindow.h for those.
...when setting this attribute, an ns_error_not_implemented error may be returned by implementations not sup
porting zoom.
... this attribute should always return 1.0 for implementations not sup
porting text zoom.
nsIDOMXPathEvaluator
inherits from: nsisup
ports last changed in gecko 1.7 implemented by: @mozilla.org/dom/xpath-evaluator;1.
...n instance, use: var domxpathevaluator = components.classes["@mozilla.org/dom/xpath-evaluator;1"] .createinstance(components.interfaces.nsidomxpathevaluator); method overview nsidomxpathexpression createexpression(in domstring expression, in nsidomxpathnsresolver resolver) nsidomxpathnsresolver creatensresolver(in nsidomnode noderesolver); nsisup
ports evaluate(in domstring expression, in nsidomnode contextnode, in nsidomxpathnsresolver resolver, in unsigned short type, in nsisup
ports result) methods createexpression() creates an nsidomxpathexpression which can then be used for (repeated) evaluations.
...nsisup
ports evaluate( in domstring expression, in nsidomnode contextnode, in nsidomxpathnsresolver resolver, in unsigned short type, in nsisup
ports result ); parameters expression a string representing the xpath to be evaluated.
nsIDeviceMotion
xpcom/system/nsidevicemotion.idlscriptable this interface is used to implement accelerometer sup
port.
... 1.0 66 introduced gecko 1.9.2 inherits from: nsisup
ports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) note: this interface was named nsidevicemotion prior to gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3).
... methods addlistener() when called, the accelerometer sup
port implementation must begin to notify the specified nsidevicemotionlistener by calling its nsidevicemotionlistener.onaccelerationchange() method as appropriate to share updated acceleration data.
nsIDirIndexListener
they can then be transformed into an output format (such as rdf, html and so on) inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void onindexavailable(in nsirequest arequest, in nsisup
ports actxt, in nsidirindex aindex); void oninformationavailable(in nsirequest arequest, in nsisup
ports actxt, in astring ainfo); methods onindexavailable() called for each directory entry.
... void onindexavailable( in nsirequest arequest, in nsisup
ports actxt, in nsidirindex aindex ); parameters arequest the request.
...void oninformationavailable( in nsirequest arequest, in nsisup
ports actxt, in astring ainfo ); parameters arequest the request.
getFile
c constant string value notes ns_os_system_dir "sysd" available on mac os x only these locations are sup
ported only on mac os x versions of gecko.
...dir "locfrmwrks" ns_osx_user_preferences_dir "usrprfs" ns_osx_local_preferences_dir "locprfs" ns_osx_picture_documents_dir "pct" ns_osx_movie_documents_dir "mov" ns_osx_music_documents_dir "music" ns_osx_internet_sites_dir "intrntsts" available on windows only these locations are sup
ported only on microsoft windows builds of gecko.
... ns_win_common_programs_dir "cmprgs" ns_win_common_startup_dir "cmstrt" ns_win_common_desktop_directory "cmdeskp" ns_win_appdata_dir "appdata" ns_win_local_appdata_dir "localappdata" ns_win_printhood "prnthd" ns_win_cookies_dir "cookd" available on unix only these locations are sup
ported only on unix builds of firefox os.
nsIFTPChannel
the nsiftpchannel is an extension of nsisup
ports used to determine if a channel is an ftp channel, and offering additional information about the ftp channel.
... you can determine if a channel is an ftp channel by checking to see if it implements this interface, by calling nsisup
ports.queryinterface() on it.
... last changed in gecko 1.9 (firefox 3) inherits from: nsisup
ports attributes attribute type description lastmodifiedtime prtime the time at which the ftp channel was last updated.
nsIFeedProgressListener
1.0 66 introduced gecko 1.8 inherits from: nsifeedresultlistener last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void handleentry(in nsifeedentry entry, in nsifeedresult result); void handlefeedatfirstentry(in nsifeedresult result); void handlestartfeed(in nsifeedresult result); void re
porterror(in astring errortext, in long linenumber, in boolean bozo); methods handleentry() called after each entry or item is processed.
... re
porterror() called by the feed processor when a fatal xml parsing error occurs, or if the document isn't a feed.
... void re
porterror( in astring errortext, in long linenumber, in boolean bozo ); parameters errortext a short description of the error.
nsIFrameLoader
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) note: this interface works in tandem with the nsicontentview interface to manage frames across processes if electrolysis is in use to sup
port per-frame processes.
... sendcrossprocesskeyevent() creates and sends a keyevent to the content view
port's process.
... sendcrossprocessmouseevent() creates and sends a mouseevent to the content view
port's process.
nsIFrameScriptLoader
idl file: mozilla-central/source/dom/base/nsimessagemanager.idl inherits from: nsisup
ports this interface is used to load frame scripts.
...data: urls are also sup
ported.
... removedelayedframescript() removes aurl from the list of scripts which sup
port delayed load.
nsIGeolocationProvider
1.0 66 introduced gecko 1.9.1 inherits from: nsisup
ports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) this must be called on the main thread interface provides location information to the nsgeolocator via the nsidomgeolocationcallback interface.
...you may find the wifi access point monitoring service useful if you wish to implement sup
port for wifi-based location services.
...method overview boolean isready(); obsolete since gecko 1.9.2 void shutdown(); void startup(); void watch(in nsigeolocationupdate callback); methods isready() obsolete since gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) re
ports whether or not the device is ready and has a position.
nsIHTMLEditor
inherits from: nsisup
ports last changed in gecko 5.0 (firefox 5.0 / thunderbird 5.0 / seamonkey 2.2) method overview void adddefaultproperty(in nsiatom aproperty, in astring aattribute, in astring avalue); void addinsertionlistener(in nsicontentfilter infilter); void align(in astring aalign); boolean breakisvisible(in nsidomnode anode); boolean candrag(in nsidomevent aevent); void checkselectionstateforanonymousbuttons(in nsiselection aselection); nsidomelement createanonymouselement(in astring atag, in nsidomnode aparentnode, in astring aanonclass, in boolean aiscreatedhidden); nsidomelement createelementwithdefaults(in astring ...
...tindentstate(out boolean acanindent, out boolean acanoutdent); void getinlineproperty(in nsiatom aproperty, in astring aattribute, in astring avalue, out boolean afirst, out boolean aany, out boolean aall); astring getinlinepropertywithattrvalue(in nsiatom aproperty, in astring aattribute, in astring avalue, out boolean afirst, out boolean aany, out boolean aall); nsisup
portsarray getlinkedobjects(); void getlistitemstate(out boolean amixed, out boolean ali, out boolean adt, out boolean add); void getliststate(out boolean amixed, out boolean aol, out boolean aul, out boolean adl); astring getparagraphstate(out boolean amixed); nsidomelement getselectedelement(in astring atagname); nsidomelement getselectioncontainer(); ...
... nsisup
portsarray getlinkedobjects(); parameters none.
nsIHttpChannel
if the new channel sup
ports nsihttpchannel, then it will be assigned a value to its redirectionlimit attribute one less than the value of the redirected channel's redirectionlimit attribute.
...this flag is ignored if the specified header does not sup
port merging (for example the "content-type" header can only have one value).
...this flag is ignored if the specified header does not sup
port merging (for example the "content-type" header can only have one value).
nsIHttpUpgradeListener
1.0 66 introduced gecko 6.0 inherits from: nsisup
ports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) this is used, for example, by websockets in order to upgrade an http channel to use the websocket protocol.
... method overview void ontrans
portavailable(in nsisockettrans
port atrans
port, in nsiasyncinputstream asocketin, in nsiasyncoutputstream asocketout); methods ontrans
portavailable() called when an http protocol upgrade attempt is completed, passing in the information needed by the protocol handler to take over the channel that is no longer being used by http.
...void ontrans
portavailable( in nsisockettrans
port atrans
port, in nsiasyncinputstream asocketin, in nsiasyncoutputstream asocketout ); parameters atrans
port the nsisockettrans
port describing the socket connection between the browser and the server; this socket can now be used for the new protocol instead of http.
nsIJSON
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4) note: this interface may only be used from javascript code, with the exception of the legacydecodetojsval() method.
...to create an instance, use: var nativejson = components.classes["@mozilla.org/dom/json;1"] .createinstance(components.interfaces.nsijson); method overview note: the idl file has
portions of the idl commented out because they represent things that can't actually be properly described by idl; however, for the purposes of this article, we'll pretend they can be and ignore that issue.
...only the five unicode encodings "utf-8", "utf-16le", "utf-16be", "utf-32le" and "utf-32be" are sup
ported.
nsILoadGroup
inherits from: nsirequest last changed in gecko 1.7 method overview void addrequest(in nsirequest arequest, in nsisup
ports acontext); void removerequest(in nsirequest arequest, in nsisup
ports acontext, in nsresult astatus); attributes attribute type description activecount unsigned long returns the count of "active" requests (that is requests without the load_background bit set).
...void addrequest( in nsirequest arequest, in nsisup
ports acontext ); parameters arequest the request to be added to the load group.
...void removerequest( in nsirequest arequest, in nsisup
ports acontext, in nsresult astatus ); parameters arequest the request to be removed from the load group.
nsIModule
inherits from: nsisup
ports last changed in gecko 0.9.9 method overview boolean canunload(in nsicomponentmanager acompmgr); void getclassobject(in nsicomponentmanager acompmgr, in nscidref aclass, in nsiidref aiid, [retval, iid_is(aiid)] out nsqiresult aresult); void registerself(in nsicomponentmanager acompmgr, in nsifile alocation, in string aloaderstr, in string atype); void unregisterself(in nsicomponentmanager acompmgr, in nsifile alocation, in string aloaderstr); methods canunload() this method may be queried to determine whether or not the component module ...
...it is very im
portant to ensure that no outstanding references to the module's code/data exist before returning true.
... ns_error_no_interface indicates that the requested interface is not sup
ported.
nsIMsgHeaderParser
inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) to create an instance, use: var msgheaderparser = components.classes["@mozilla.org/messenger/headerparser;1"] .createinstance(components.interfaces.nsimsgheaderparser); method overview string extractheaderaddressmailboxes(in string line); void extractheaderaddressname(in string line, out string name); void extractheaderaddressnames(in string line, out string usernames); astring makefulladdress(in astring aname, in astring aaddress); string makefulladdressst...
...ther_addrs, in prbool removealiasestome, out string newaddress); string unquotephraseoraddr(in string line, in boolean preserveintegrity); wstring unquotephraseoraddrwstring(in wstring line, in boolean preserveintegrity); methods extractheaderaddressmailboxes() given a string which contains a list of header addresses, returns a comma-separated list of just the 'mailbox'
portions.
... exceptions thrown missing exception missing description native code only!extractheaderaddressnames given a string which contains a list of header addresses, returns a comma-separated list of just the 'user name'
portions.
nsINavHistoryQuery
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) the nsinavhistoryquery is not intended to be a super-general query mechanism.
...this is im
portant because, if the user has their profile on a networked drive, query latency can be non-negligible method overview nsinavhistoryquery clone(); void getfolders([optional ]out unsigned long count, [retval,array,size_is(count)] out long long folders); void gettransitions([optional] out unsigned long count, [retval,array,size_is(count)] out unsigned long transitions); void setfolders([const,array, size_is(foldercount)] in long long folders, in unsigned long foldercount); void settransitions([const,array, size_is(count)] in unsigned long transitions, in unsigned long count); attributes attribute type description absolutebegintime prtime read only: retrieves the begin time value that the ...
...we don't currently sup
port >1 annotation name per query.
nsIObserver
inherits from: nsisup
ports last changed in gecko 0.9.6 method overview void observe(in nsisup
ports asubject, in string atopic, in wstring adata); methods observe() this method will be called when there is a notification for the topic that the observer has been registered for.
... void observe( in nsisup
ports asubject, in string atopic, in wstring adata ); parameters asubject in general reflects the object whose change or action is being observed.
...be careful, though, because other uses of nsiobserver may not sup
port these operations correctly within observe.
nsIParserUtils
1.0 66 introduced gecko 13.0 inherits from: nsisup
ports last changed in gecko 14.0 (firefox 14.0 / thunderbird 14.0 / seamonkey 2.11) warning: do not use this from within gecko--use nscontentutils, nstreesanitizer, and so on directly instead.
... at present, sanitizing css backgrounds, and so on., is not sup
ported, so setting this together with sanitizerallowstyle doesn't make sense.
... at present, sanitizing css syntax in svg presentational attributes is not sup
ported, so this option flattens out svg.
nsIPluginHost
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview nsifile createtempfiletopost(in string apostdataurl); native code only!
... native code only!instantiatedummyjavaplugin instantiate a "dummy" java plugin if a java plugin that sup
ports npruntime is installed.
...if the java plugin sup
ports npruntime and instantiation was successful, aowners instance will be non-null, if not, it will be null.
nsIProcessScriptLoader
idl file: mozilla-central/source/dom/base/nsimessagemanager.idl inherits from: nsisup
ports this interface is used by parent process message managers to load scripts into a child process.
...data: urls are also sup
ported.
... removedelayedprocessscript() removes aurl from the list of scripts which sup
port delayed load.
nsIRequest
inherits from: nsisup
ports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) for example nsichannel typically passes itself as the nsirequest argument to the nsistreamlistener on each onstartrequest, ondataavaliable, and onstoprequest invocation.
...this may have the effect of re-opening any underlying trans
port and will resume the delivery of data to any open streams.
...this may have the effect of closing any underlying trans
port (in order to free up resources), although any open streams remain logically opened and will continue delivering data when the trans
port is resumed.
nsIRequestObserver
inherits from: nsisup
ports last changed in gecko 1.0 method overview void onstartrequest(in nsirequest arequest, in nsisup
ports acontext); void onstoprequest(in nsirequest arequest, in nsisup
ports acontext, in nsresult astatuscode); methods onstartrequest() called to signify the beginning of an asynchronous request.
...void onstartrequest( in nsirequest arequest, in nsisup
ports acontext ); parameters arequest request being observed.
...void onstoprequest( in nsirequest arequest, in nsisup
ports acontext, in nsresult astatuscode ); parameters arequest request being observed.
nsISSLErrorListener
security/manager/ssl/public/nsisslerrorlistener.idlscriptable a mechanism to re
port a broken ssl connection.
... 1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) note: the recipient of this ssl status notification should not block.
...see also nsisockettrans
port ...
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.im
portglobalproperties) instead of this api.
... inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) implemented by: @mozilla.org/intl/scriptableunicodeconverter.
...throws ns_error_uconv_noconv if the requested charset is not sup
ported.
nsISearchEngine
last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits from: nsisup
ports method overview void addparam(in astring name, in astring value, in astring responsetype); nsisearchsubmission getsubmission(in astring data, [optional] in astring responsetype, [optional] in astring purpose); boolean sup
portsresponsetype(in astring responsetype); attributes attribute type description alias astring an optional shortcut alias for the engine.
... return value an nsisearchsubmission sup
portsresponsetype() determines whether the engine can return responses in the given mime type.
... boolean sup
portsresponsetype( in astring responsetype ); parameters responsetype the mime type to check for.
nsISeekableStream
xpcom/io/nsiseekablestream.idlscriptable provides seeking sup
port in data streams.
... inherits from: nsisup
ports last changed in gecko 1.7 method overview void seek(in long whence, in long long offset); void seteof(); long long tell(); constants constant value description ns_seek_set 0 specifies that the offset is relative to the start of the stream.
... tell() this method re
ports the current offset, in bytes, from the start of the stream.
nsISelectionPrivate
dom/base/nsiselectionprivate.idlscriptable internal sup
port for content selection handling.
... inherits from: nsisup
ports last changed in gecko 35 (firefox 35 / thunderbird 35 / seamonkey 2.32) warning: the content of this article may be out of date.
... this page wasn't updated since the initial im
port in 2011.
nsISound
inherits from: nsisup
ports last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) warning: this interface should not be used to play custom sounds in modern code.
... note: this function is not sup
ported on the macintosh.
... void playsystemsound( in astring soundalias ); parameters soundalias two different types of names are sup
ported: you can specify the name of a system sound provided by the host operating system; for example, if you specify "systemexclamation", you can play the windows alert sound, but it's played only on windows.
nsIStreamConverter
stream converter contractid format (the stream converter root key is defined in this file): @mozilla.org/streamconv;1?from=from_mime_type&to=to_mime_type method overview void asyncconvertdata(in string afromtype, in string atotype, in nsistreamlistener alistener, in nsisup
ports actxt); nsiinputstream convert(in nsiinputstream afromstream, in string afromtype, in string atotype, in nsisup
ports actxt); methods asyncconvertdata() asynchronous version: converts data arriving via the converter's nsistreamlistener.ondataavailable() method from one type to another, pushing the converted data out to the caller via alistener::ondataavailable().
...void asyncconvertdata( in string afromtype, in string atotype, in nsistreamlistener alistener, in nsisup
ports actxt ); parameters afromtype the mime type of the original/raw data.
...nsiinputstream convert( in nsiinputstream afromstream, in string afromtype, in string atotype, in nsisup
ports actxt ); parameters afromstream the stream representing the original/raw data.
nsITraceableChannel
1.0 66 introduced gecko 1.9.0.4 inherits from: nsisup
ports last changed in gecko 1.9.0.4 the typical way to use this interface is as follows: register for the "http-on-examine-response" notification to track all http responses; skip redirects (responsestatus = 3xx on nsihttpchannel), since otherwise you may end up with two listeners registered for a channel; qi the channel passed as the "subject" to your observer to nsitraceablechannel, and replace the default nsistreamlistener (that passes the data to the original requester - e.g.
... /////// start - do not edit var {classes: cc, interfaces: ci, results: cr, constructor: cc, utils: cu} = components; cu.im
port('resource://gre/modules/services.jsm'); var binaryinputstream = cc('@mozilla.org/binaryinputstream;1', 'nsibinaryinputstream', 'setinputstream'); var binaryoutputstream = cc('@mozilla.org/binaryoutputstream;1', 'nsibinaryoutputstream', 'setoutputstream'); var storagestream = cc('@mozilla.org/storagestream;1', 'nsistoragestream', 'init'); function tracinglistener() { this.receivedchunks = []; /...
...acontext); }, onstoprequest: function(arequest, acontext, astatuscode) { this.responsebody = this.receivedchunks.join(""); delete this.receivedchunks; this.responsestatus = astatuscode; this.originallistener.onstoprequest(arequest, acontext, astatuscode); this.deferreddone.resolve(); }, queryinterface: function(aiid) { if (aiid.equals(ci.nsistreamlistener) || aiid.equals(ci.nsisup
ports)) { return this; } throw cr.ns_nointerface; } }; var httpresponseobserver = { observe: function(asubject, atopic, adata) { var newlistener = new tracinglistener(); asubject.queryinterface(ci.nsitraceablechannel); newlistener.originallistener = asubject.setnewlistener(newlistener); /////// end - do not edit newlistener.promisedone.then( function() { // no error happened ...
nsIURLFormatter
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) variable names can contain 'a-z' letters and '_' characters.
...if a variable is unknown, it is left unchanged and a non-fatal error is re
ported.
...if the preference value cannot be retrieved, a fatal error is re
ported and the "about:blank" url is returned.
nsIUploadChannel
netwerk/base/public/nsiuploadchannel.idlscriptable a channel may optionally implement this interface if it sup
ports the notion of uploading a data stream.
... inherits from: nsisup
ports last changed in gecko 1.7 method overview void setuploadstream(in nsiinputstream astream, in acstring acontenttype, in long acontentlength); attributes attribute type description uploadstream nsiinputstream get the stream (to be) uploaded by this channel.
... history here is that we need to sup
port both streams that already have headers (for example, content-type and content-length) information prepended to the stream (by plugins) as well as clients (composer, uploading application) that want to upload data streams without any knowledge of protocol specifications.
nsIWeakReference
inherits from: nsisup
ports last changed in gecko 0.9.9 an instance of nsiweakreference is a proxy object that cooperates with its referent to give clients a non-owning, non-dangling reference.
...method overview void queryreferent( in nsiidref uuid, [iid_is(uuid), retval] out nsqiresult result ); methods queryreferent() this method queries an interface on the referent if it exists, and like nsisup
ports.queryinterface(), produces an owning reference to the desired interface.")}} it is designed to look and act exactly like (a proxied) nsisup
ports.queryinterface().
...see also nsisup
ports.queryinterface() nsisup
portsweakreference ...
nsIWebContentHandlerRegistrar
inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) implemented by @mozilla.org/embeddor.implemented/web-content-handler-registrar;1 as a service: var nsiwchr = cc["@mozilla.org/embeddor.implemented/web-content-handler-registrar;1"] .getservice(ci.nsiwebcontenthandlerregistrar); method overview void registercontenthandler(in domstring mimetype, in domstring uri, in domstring title, in nsidomwindow contentwindow) void registerprotocolhandler(in domstring protoco...
... cu.im
port('resource://gre/modules/services.jsm'); var nsiwchr = cc["@mozilla.org/embeddor.implemented/web-content-handler-registrar;1"] .getservice(ci.nsiwebcontenthandlerregistrar); var htmlcontentwindow = undefined; var registeruri = 'http://mail.live.com/secure/start?action=compose&to=%s'; var myurihostname = services.io.newuri(registeruri, null, null).host; // this section here is lo...
...s as a content or protocol handler' when calling method: [nsiwebcontenthandlerregistrar::registerprotocolhandler] if the host names do match then a confirmation like this will be seen: this domain check can be bypassed by setting the preference of gecko.handlerservice.allowregisterfromdifferenthost to true as in this code here: var {classes: cc, interfaces: ci, utils: cu} = components; cu.im
port("resource://gre/modules/services.jsm"); var nsiwchr = cc["@mozilla.org/embeddor.implemented/web-content-handler-registrar;1"] .getservice(ci.nsiwebcontenthandlerregistrar); var allowregisterfromdifferenthost = services.prefs.getboolpref('gecko.handlerservice.allowregisterfromdifferenthost'); if (!allowregisterfromdifferenthost) { services.prefs.setboolpref('gecko.handlerservice...
nsIWebProgress
last changed in gecko 1.8.0 inherits from: nsisup
ports method overview void addprogresslistener(in nsiwebprogresslistener alistener, in unsigned long anotifymask); void removeprogresslistener(in nsiwebprogresslistener alistener); attributes attribute type description domwindow nsidomwindow the dom window associated with this nsiwebprogress instance.
...this object must also implement nsisup
portsweakreference.
... exceptions thrown ns_error_invalid_arg indicates that alistener was either null or that it does not sup
port weak references.
nsIWorker
method overview void postmessage(in domstring amessage, [optional] in nsiworkermessage
port amessage
port); attributes attribute type description onmessage nsidomeventlistener an object to receive notifications when messages are received on the worker's message
port.
...void postmessage( in domstring amessage, in nsiworkermessage
port amessage
port optional ); parameters amessage the message the worker wishes to post back to its creator.
... amessage
port a message
port on which to post the message; if not specified, the default message
port is used.
nsIXULWindow
inherits from: nsisup
ports 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.
...or down the road any other object that sup
ports being a docshelltreeitem query accordingly to determine the capabilities.
...or down the road any other object that sup
ports being a docshelltreeitem query accordingly to determine the capabilities.
XSLT 2.0
although xslt 2.0 is not natively sup
ported in firefox, it is possible via saxon-b (java) or, more recently, saxon-ce (javascript) to perform xslt 2.0.
... saxon-b the xsl results extension uses the new incarnation of liveconnect (handled by java 1.6v12+ instead of mozilla-specific code) to connect with the java-based saxon-b library, and adds sup
port for having xslt performed automatically when visiting a page with the appropriate xslt processing instruction (and which isn't processed by firefox's own xslt 1.0 processor).
... the code does not currently work on the mac (except for server edition sup
porting java 1.6) due to its lagging java sup
port (and thus liveconnect sup
port).
XUL Overlays
loading overlays at runtime firefox 1.5 and other gecko 1.8-based applications also sup
port loading overlays on-the-fly via the document.loadoverlay() function.
...in xul, attributes control im
portant features of the skin like image sources, as in the following example, where an overlay destructively overwrites the image source in the base file with a replacement.
...overlay positioning xul overlays also sup
port positioning of nodes.
Address Book examples
use the nsiabcollection.readonly attribute to determine the read-only status of an address book adding contacts create a card and set its properties using the nsiabcard interface (see the interface documentation for property names sup
ported by the application): let card = components.classes["@mozilla.org/addressbook/cardproperty;1"] .createinstance(components.interfaces.nsiabcard); card.setproperty("firstname", "john"); card.setproperty("lastname", "smith"); card.primaryemail = "john@invalid.com"; now add the card to an address book via its nsiabdirectory interface: let newcard = addressbook.addcard(car...
...my value = card.getproperty("random1"); note: local (mork) address books are currently the only built-in type of address book that sup
ports saving of non-built-in properties.
...ister a load listener for a contact, the following should take place within the scope of the contact editor dialog: /* an example load listener for a contact * acard the nsiabcard being loaded * adocument a reference to the contact editor document */ function foo(acard, adocument) { // do something useful, like disabling // input fields that cards for this // address book type do not sup
port.
Filelink Providers
this document explains how to extend thunderbird to sup
port additional web-based storage services.
...other services may require the user to fill in a server string or
port number.
... example: <form id="provider-form" onsubmit="return false;"> <label for="username">username:</label> <input id="username" type="text" required="true" /> <label for="server">server:</label> <input id="server" type="text" required="true" /> <label for="
port">
port:</label> <input id="
port" pattern="[0-9]+" required="true" /> </form> the form is expected to use html5 form validation.
Building a Thunderbird extension 3: install manifest
the first
portion is the short name of the extension and must be in lowercase; the last
portion is a two-part period-delimited value such as your first and last name or the top-level domain of your website.
...see valid application versions for a list of the sup
ported version numbers and formats.
...see valid application versions for a list of the sup
ported version numbers and formats.
Activity Manager examples
////////////////////////////////////////////////////////////////////////////// //// undo handler implementation class mycopyeventundo : public nsiactivityundohandler { public: ns_decl_isup
ports ns_decl_nsiactivityundohandler mycopyeventundo() {} private: ~mycopyeventundo() {} }; ns_impl_isup
ports1(mycopyeventundo, nsiactivityundohandler) ns_imethodimp mycopyeventundo::undo(nsiactivityevent *event, nsresult *result) { nsresult rv; // get the subjects of this copy event pruint32 length; nsivariant **subjectlist; rv = event->getsubjects(&length, &subjectlist); if(ns_f...
...ailed(rv)) return rv; // first subject in the list is the source folder in this particular case nscomptr<nsimsgfolder> folder = do_queryinterface(subjectlist[0]); // get the initiator nsivariant *initiator; event->getinitiator(&initiator); if (initiator) { nsisup
ports* ptr; rv = object->getasisup
ports(&ptr); if(ns_failed(rv)) return rv; nscomptr<nsimsgcopyservice> copyservice = do_queryinterface(ptr); if (copyservice) copyservice->undo(folder); } return (*result = ns_ok); } ///////////////////////////////////////////////////////////////////////////// //// creating an undoable copy event nscomptr<nsiactivityundohandler> undohandler = new mycopyeventundo(); nscomptr<nsiactivityevent> copyevent(do_createinstance("@mozilla.org/activity...
... // wrap copyservice in a nsvariant component nscomptr<nsiwritablevariant> initiator = do_createinstance(ns_variant_contractid); initiator->setasisup
ports(reinterpret_cast<nsisup
ports*>(copyservice)); // subject of the delete operation is the imap folder // wrap it in a nsvariant component nscomptr<nsiwritablevariant> srcfolder = do_createinstance(ns_variant_contractid); srcfolder->setasisup
ports(reinterpret_cast<nsisup
ports*>(imapfolder)); copyevent->addsubject(srcfolder); copyevent->init(ns_literal_string("message copy event"), ...
Using the Multiple Accounts API
it was im
ported from mozilla.org and last updated in 2003.
...the most im
portant properties here are the username and the hostname.
...(left as an exercise for the reader.)this will work but it is not sup
ported.
Using popup notifications
popup notifications, also known as "doorhanger notifications", are presented to notify the user of something that's im
portant but may not need immediate attention.
...this code module is im
ported by the browser, so you don't need to do it explicitly yourself.
... components.utils.im
port('resource://gre/modules/popupnotifications.jsm'); var notify = new popupnotifications(gbrowser, document.getelementbyid("notification-popup"), document.getelementbyid("notification-popup-box")); var notification = notify.show( // browser gbrowser.selectedbrowser, // popup id "pdes-popup", // message "hi, there!, i'm gonna show you something today!!", // ...
Using the Mozilla source server
this enables source server sup
port.
... using the source server in visual studio note: source server sup
port does not work correctly out of the box in visual studio 2005.
... enable source server sup
port under tools -> options.
Using Objective-C from js-ctypes
#im
port <appkit/appkit.h> int main(void) { nsspeechsynthesizer* synth = [[nsspeechsynthesizer alloc] initwithvoice: nil]; [synth startspeakingstring: @"hello, firefox!"]; // wait until start speaking.
... let id = ctypes.structtype("objc_object").ptr; let sel = ctypes.structtype("objc_selector").ptr; let bool = ctypes.signed_char; functions all functions in our example are ex
ported by /usr/lib/libobjc.dylib.
... let { ctypes } = components.utils.im
port("resource://gre/modules/ctypes.jsm", {}); let id = ctypes.structtype("objc_object").ptr; let sel = ctypes.structtype("objc_selector").ptr; let bool = ctypes.signed_char; let lib = ctypes.open(ctypes.libraryname("objc")); let objc_getclass = lib.declare("objc_getclass", ctypes.default_abi, id, ctypes.char.ptr); let sel_registername = lib.declare("sel_registername...
Debugging Tips
let { ctypes } = components.utils.im
port("resource://gre/modules/ctypes.jsm", {}); let i = ctypes.int32_t(10); console.log(i); let point = ctypes.structtype("point", [{ x: ctypes.int32_t }, { y: ctypes.int32_t }]) let p = point(10, 20); console.log(p); let pp = p.address(); console.log(pp); the result will be as following: cdata { value: 10 } cdata { x: 10, y: 20 } cdata { contents: cdata } to see more descriptive information, you can use .tosource().
... let { ctypes } = components.utils.im
port("resource://gre/modules/ctypes.jsm", {}); let i = ctypes.int32_t(10); console.log(i.tosource()); let point = ctypes.structtype("point", [{ x: ctypes.int32_t }, { y: ctypes.int32_t }]) let p = point(10, 20); console.log(p.tosource()); let pp = p.address(); console.log(pp.tosource()); the result will be : ctypes.int32_t(10) point(10, 20) point.ptr(ctypes.uint64("0x15fdafb08")) to see the complete type information, you can use .constructor.tosource(), to print the source of ctype.
... let { ctypes } = components.utils.im
port("resource://gre/modules/ctypes.jsm", {}); let i = ctypes.int32_t(10); console.log(i.constructor.tosource()); let point = ctypes.structtype("point", [{ x: ctypes.int32_t }, { y: ctypes.int32_t }]) let p = point(10, 20); console.log(p.constructor.tosource()); let pp = p.address(); console.log(pp.constructor.tosource()); the result will be as per the following: ctypes.int32_t ctypes.structtype("point", [{ "x": ctypes.int32_t }, { "y": ctypes.int32_t }]) ctypes.structtype("point", [{ "x": ctypes.int32_t }, { "y": ctypes.int32_t }]).ptr ...
Working with data
objects can share memory it's im
portant to keep in mind that two (or more) cdata objects can share the same memory block for their contents.
... note: these 64-bit integer types are intentionally low on features, so that when javascript adds a "big number" type, we can easily upgrade to sup
port that properly.
...for example: var num = ctypes.int64.join(-0x12345678, 0x90abcdef); performing arithmetic with 64-bit values the int64 and uint64 objects don't provide any methods for performing arithmetic, which means you'll have to do it yourself by pulling out the high and low 32-bit
portions and doing math on them, then joining them back together if necessary to get the complete result.
ctypes
note: some 64-bit values are outside the range of numeric values sup
ported by javascript.
... large integer types because javascript doesn't sup
port large (64-bit) integers, js-ctypes provides two data types allowing access to 64-bit integer data.
... credit for this example is to nmaier (stackoverflow :: getting tb_button is crashing and not working) example of cast and functiontype on windows components.utils.im
port("resource://gre/modules/ctypes.jsm"); var kernel = ctypes.open("kernel32.dll"); var hmodule = ctypes.uint32_t; var hwnd = ctypes.uint32_t; var lpctstr = ctypes.jschar.ptr; var lpcstr = ctypes.char.ptr; var loadlibrary = kernel.declare("loadlibraryw", ctypes.winapi_abi, hmodule, lpctstr); var getprocaddress = kernel.declare("getprocaddress", ctypes.winapi_abi, ctypes.void_t.ptr, hmodule, lpcstr);...
URLs - Plugins
the table below summarizes urls sup
ported by gecko.
... in addition, gecko may sup
port urls not listed on this table.
...§ the npn_posturlnotify function has all the same capabilities and works like npn_posturl in most ways except that (1) it sup
ports specifying headers when posting a memory buffer, and (2) it calls npp_urlnotify upon successful or unsuccessful completion of the request.
Debugger.Frame - Firefox Developer Tools
even though the debuggee and debugger share the same javascript stack, frames pushed for spidermonkey’s calls to handler methods to re
port events in the debuggee are never considered visible frames.) invocation functions and “debugger” frames aninvocation function is any function in this interface that allows the debugger to invoke code in the debuggee: debugger.object.prototype.call, debugger.frame.prototype.eval, and so on.
... when an onpop call re
ports the completion of a construction call (that is, a function called via the new operator), the completion value passed to the handler describes the value returned by the function body.
...the resumption value each handler returns establishes the completion value re
ported to the next handler.
Debugger.Script - Firefox Developer Tools
please note at the time of this writing, sup
port for webassembly is very preliminary.
...the object has the following properties: linenumber: the line number for which offset is an entry point columnnumber: the column number for which offset is an entry point isentrypoint: true if the offset is a column entry point, as would be re
ported by getallcolumnoffsets(); otherwise false.
... setbreakpoint(offset,handler) if the instance refers to a jsscript, set a breakpoint at the bytecode instruction atoffset in this script, re
porting hits to the hit method ofhandler.
Migrating from Firebug - Firefox Developer Tools
searching by xpaths is not sup
ported though (see bug 963933.
...xhr, dom, cookie and error breakpoints are not sup
ported yet (see bug 821610, bug 1004678, bug 895893 and bug 1165010).
...in addition to that it allows to create new style sheets and to im
port existing style sheets and apply them to the page.
Network request list - Firefox Developer Tools
the list of network requests is filtered to include only requests that contain your filter string, in either the domain or the file
portions.
...(starting in firefox 76) managing har data the har format enables you to ex
port detailed information about network requests.
... in addition to the copy and save menu items for har in the context menu, similar menu items are available in the har dropdown menu in the toolbar, as well as an im
port menuitem.
Examine and edit CSS - Firefox Developer Tools
a warning icon appears next to unsup
ported css properties or rules that have invalid values.
...that means that if you are using a css preprocessor that has sup
port for source maps, and you've enabled source map sup
port in the style editor settings, then the link will take you to the original source, not the generated css.
... read more about css source map sup
port in the style editor documentation.
CSS Grid Inspector: Examine grid layouts - Firefox Developer Tools
extend lines infinitely: by default, grid lines/tracks are only shown inside the element with display: grid set on it; when toggling this option on, the grid lines extend to the edge of the view
port along each axis.
... when you check the "extend lines infinitely" option, the grid lines extend to the edge of the view
port along each axis.
... mini grid view shows a small version of the currently overlaid grid, which is in pro
portion to the real thing.
Settings - Firefox Developer Tools
debugger enable source maps enable source map sup
port in the debugger.
... style editor show original sources when a css preprocessor sup
porting source maps is used, this enables the style editor to display the original, preprocessor, sources rather than the generated css.
... learn more about style editor sup
port for css source maps.
about:debugging (before Firefox 68) - Firefox Developer Tools
at the moment it sup
ports three main sorts of targets: restartless add-ons, tabs, and workers.
... add-ons the add-ons section in about:debugging only sup
ports restartless add-ons, including basic bootstrapped extensions, add-on sdk add-ons, and webextensions.
... note that this feature isn't that immediately useful to debugging desktop tabs — you can open up a toolbox to debug a tab easily enough already — but this will become far more useful when about:debugging starts to sup
port remote debugging, and this page can begin to list tabs available for debugging on mobile device browsers, simulators, etc.
AudioBufferSourceNode.AudioBufferSourceNode() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetaudiobuffersourcenode() constructorchrome full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port ...
... webview android full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.chrome android full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.firefox android full sup
port 53opera android full sup
port 42safari ios ?
... samsung internet android full sup
port 6.0notes full sup
port 6.0notes notes before samsung internet 7.0, the default values were not sup
ported.legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownsee implementation notes.see implementation notes.
AudioConfiguration - Web APIs
the audioconfiguration dictionary of the media capabilities api defines the audio file being tested when calling mediacapabilities.encodinginfo() or mediacapabilities.decodinginfo() to query whether a specific audio configuration is sup
ported, smooth, and/or power efficient.
... } }; // check sup
port and performance navigator.mediacapabilities.decodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.sup
ported ?
... '' : 'not ') + 'sup
ported, ' + (result.smooth ?
AudioListener - Web APIs
it is im
portant to note that there is only one listener per context and that it isn't an audionode.
... to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioNode.connect() - Web APIs
otherwise, a notsup
portederror exception is thrown.
... notsup
portederror the specified connection would create a cycle (in which the audio loops back through the same nodes repeatedly) and there are no delaynodes in the cycle to prevent the resulting waveform from getting stuck constructing the same audio frame indefinitely.
...fan-in and fan-out are therefore sup
ported.
BaseAudioContext.createBuffer() - Web APIs
the default value is 1, and all user agents must sup
port at least 32 channels.
...all browsers must sup
port sample rates in at least the range 8,000 hz to 96,000 hz.
... exceptions notsup
portederror one or more of the options are negative or otherwise has an invalid value (such as numberofchannels being higher than sup
ported, or a samplerate outside the nominal range).
BlobEvent.timecode - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettimecode experimentalchrome full sup
port 57edge full sup
port ≤79firefox ?
... ie no sup
port noopera full sup
port 44safari no sup
port nowebview android full sup
port 57chrome android full sup
port 57firefox android ?
... opera android full sup
port 43safari ios no sup
port nosamsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
CSSStyleDeclaration.setProperty() - Web APIs
note: value must not contain "!im
portant" -- that should be set using the priority parameter.
... priority optional is a domstring allowing the "im
portant" css priority to be set.
...the following values are accepted: string value "im
portant" keyword undefined string empty value "" return value undefined exceptions domexception (nomodificationallowederror): if the property or declaration block is read only.
CSSStyleDeclaration - Web APIs
cssstyledeclaration named properties dashed and camel-cased attributes for all sup
ported css properties.
... methods cssstyledeclaration.getpropertypriority() returns the optional priority, "im
portant".
... cssstyledeclaration.getpropertycssvalue() only sup
ported via getcomputedstyle in firefox.
CanvasRenderingContext2D.drawWindow() - Web APIs
the contents of the window's view
port are rendered, ignoring view
port clipping and scrolling.
... drawwindow_draw_view 0x04 draw scrollbars and scroll the view
port if they are present.
...would draw the contents of the current window, in the rectangle (0,0,100,200) in pixels relative to the top-left of the view
port, on a white background, into the canvas.
CanvasRenderingContext2D - Web APIs
canvasrenderingcontext2d.ispointinpath() re
ports whether or not the specified point is contained in the current path.
... canvasrenderingcontext2d.ispointinstroke() re
ports whether or not the specified point is inside the area contained by the stroking of a path.
...the contents of the window's view
port are rendered, ignoring view
port clipping and scrolling.
Using images - Web APIs
external images can be used in any format sup
ported by the browser, such as png, gif, or jpeg.
... im
porting images into a canvas is basically a two step process: get a reference to an htmlimageelement object or to another canvas element as a source.
...another potential advantage is that it is also possible to encapsulate in one file all of your css, javascript, html, and images, making it more
portable to other locations.
Constraint validation API - Web APIs
however, you may want to impose more complex constraints, or to provide clearer re
porting of validation failures than the defaults.
... re
portvalidity() htmlformelement method checks the element's value against its constraints and also re
ports the validity status; if the value is invalid, it fires an invalid event at the element, returns false, and then re
ports the validity status to the user in whatever way the user agent has available.
... note: firefox sup
ported a proprietary error attribute — x-moz-errormessage — for many versions, which allowed you set custom error messages in a similar way.
CustomElementRegistry.define() - Web APIs
one option is currently sup
ported: extends: string specifying the name of a built-in element to extend.
... exceptions exception description notsup
portederror the customelementregistry already contains an entry with the same name or the same constructor (or is otherwise already defined), or extends is specified and it is a valid custom element name, or extends is specified but the element it is trying to extend is an unknown element.
... note: you'll often get notsup
portederrors thrown that seem like define() is failing, but instead it is likely a problem with element.attachshadow().
DOMException - Web APIs
(legacy code value: 8 and legacy constant name: not_found_err) notsup
portederror the operation is not sup
ported.
... (legacy code value: 9 and legacy constant name: not_sup
ported_err) invalidstateerror the object is in an invalid state.
...(legacy code value: 14 and legacy constant name: namespace_err) invalidaccesserror the object does not sup
port the operation or argument.
DOMHighResTimeStamp - Web APIs
value the value of a domhighrestimestamp is a double-precision floating-point number which describes the number of milliseconds (accurate to within 5 microseconds if the device sup
ports it) elapsed between two points in time.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdomhighrestimestampchrome full sup
port 6edge full sup
port 12firefox full sup
port 7ie full sup
port 9opera full sup
port 15safari full sup
port 8webview android full suppor...
...t yeschrome android full sup
port 18firefox android full sup
port 15opera android full sup
port 14safari ios full sup
port 9samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
DOMParser - Web APIs
in the case of an html document, you can also replace
portions of the dom with new dom trees built from html by setting the value of the element.innerhtml and outerhtml properties.
...efromstring(stringcontainingxmlsource, "application/xml") error handling note that if the parsing process fails, the domparser does not throw an exception, but instead returns an error document: <parsererror xmlns="http://www.mozilla.org/newlayout/xml/parsererror.xml"> (error description) <sourcetext>(a snippet of the source xml)</sourcetext> </parsererror> the parsing errors are also re
ported to the error console, with the document uri (see below) as the source of the error.
...@source https://gist.github.com/1129031 */ /*global document, domparser*/ (function(domparser) { "use strict"; var proto = domparser.prototype, nativeparse = proto.parsefromstring; // firefox/opera/ie throw errors on unsup
ported types try { // webkit returns null on unsup
ported types if ((new domparser()).parsefromstring("", "text/html")) { // text/html parsing is natively sup
ported return; } } catch (ex) {} proto.parsefromstring = function(markup, type) { if (/^\s*text\/html\s*(?:;|$)/i.test(type)) { var doc = document.implementation.createhtmldocument(""); if (markup.tolowercase().indexof('<!
DOMTokenList.forEach() - Web APIs
html <span class="a b c"></span> javascript let span = document.queryselector("span"); let classes = span.classlist; let iterator = classes.values(); classes.foreach( function(value, key, listobj) { span.textcontent += `${value} ${key}/${this} ++ `; }, "arg" ); result polyfill this polyfill adds compatibility to all browsers sup
porting es5: if (window.domtokenlist && !domtokenlist.prototype.foreach) { domtokenlist.prototype.foreach = function (callback, thisarg) { thisarg = thisarg || window; for (var i = 0; i < this.length; i++) { callback.call(thisarg, this[i], i, this); } }; } specifications specification status comment domthe definition of 'foreach() (as iterable<node...
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetforeachchrome full sup
port 45edge full sup
port 16firefox full sup
port 50ie no sup
port noopera full sup
port 32safari full sup
port 10webview android full supp...
...ort 45chrome android full sup
port 45firefox android full sup
port 50opera android full sup
port 32safari ios full sup
port 10samsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
port ...
DelayNode() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdelaynode() constructorchrome full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port ...
... webview android full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.chrome android full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.firefox android full sup
port 53opera android full sup
port 42safari ios ?
... samsung internet android full sup
port 6.0notes full sup
port 6.0notes notes before samsung internet 7.0, the default values were not sup
ported.legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownsee implementation notes.see implementation notes.
Document.alinkColor - Web APIs
gecko sup
ports both alinkcolor/:active and :focus.
... internet explorer 6 and 7 sup
port alinkcolor/:active only for html anchor (<a>) links and the behavior is the same as :focus under gecko.
... there is no sup
port for :focus in ie.
Document.caretRangeFromPoint() - Web APIs
syntax var range = document.caretrangefrompoint(float x, float y); parameters x a horizontal position within the current view
port.
... y a vertical position within the current view
port.
... null, if x or y are negative, outside view
port, or there is no text entry node.
Document.domain - Web APIs
the domain property of the document interface gets/sets the domain
portion of the origin of the current document, as used by the same origin policy.
... if this property is successfully set, the
port part of the origin is also set to null.
... syntax const domainstring = document.domain document.domain = domainstring value the domain
portion of the current document's origin.
Document.fonts - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfontschrome full sup
port 60edge full sup
port 79firefox full sup
port 41 full sup
port 41 no sup
port 35 — 41disabled disabled from version 35 until version 41 (exclusive): this feature is behind the layout.css.font-loading-api.enabled ...
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 47safari full sup
port 10webview android full sup
port 60chrome android full sup
port 60firefox android full sup
port yesopera android full sup
port 44safari ios full sup
port 10samsung internet android full sup
port 5.0legend full sup
port ...
... full sup
port no sup
port no sup
portuser must explicitly enable this feature.user must explicitly enable this feature.
DocumentOrShadowRoot.elementFromPoint() - Web APIs
the elementfrompoint() method—available on both the document and shadowroot objects—returns the topmost element at the specified coordinates (relative to the view
port).
... syntax const element = document.elementfrompoint(x, y) parameters x the horizontal coordinate of a point, relative to the left edge of the current view
port.
... y the vertical coordinate of a point, relative to the top edge of the current view
port.
Element.clientTop - Web APIs
this is because the offsettop indicates the location of the top of the border (not the margin) while the client area starts immediately below the border, (client area includes padding.) therefore, the clienttop value will always equal the integer
portion of the .getcomputedstyle() value for "border-top-width".
... gecko-based applications sup
port clienttop starting with gecko 1.9 (firefox 3, implemented in bug 111207).
... this property is not sup
ported in firefox 2 and earlier.
Element.closest() - Web APIs
= el.closest("div div"); // returns the closest ancestor which is a div in div, here it is the div-03 itself var r3 = el.closest("article > div"); // returns the closest ancestor which is a div and has a parent article, here it is the div-01 var r4 = el.closest(":not(div)"); // returns the closest ancestor which is not a div, here it is the outmost article polyfill for browsers that do not sup
port element.closest(), but carry sup
port for element.matches() (or a prefixed equivalent, meaning ie9+), a polyfill exists: if (!element.prototype.matches) { element.prototype.matches = element.prototype.msmatchesselector || element.prototype.webkitmatchesselector; } if (!element.prototype.closest) { element.prototype.closest = function(s) { var el = this; do { if (elemen...
...t.prototype.matches.call(el, s)) return el; el = el.parentelement || el.parentnode; } while (el !== null && el.nodetype === 1); return null; }; } however, if you really do require ie 8 sup
port, then the following polyfill will do the job very slowly, but eventually.
... however, it will only sup
port css 2.1 selectors in ie 8, and it can cause severe lag spikes in production websites.
Element.getAttributeNS() - Web APIs
"2" fill="none" test:foo="hello namespaced attribute!"/> <script type="text/javascript"> var ns = 'http://www.example.com/2014/test'; var circle = document.getelementbyid( 'target' ); console.log( 'attribute test:foo: "' + circle.getattributens( ns, 'foo' ) + '"' ); </script> </svg> in an html5 document the attribute has to be accessed with test:foo since namespaces are not sup
ported.
...0" height="40"> <circle id="target" cx="12" cy="12" r="10" stroke="#444" stroke-width="2" fill="none" test:foo="foo value"/> </svg> <script type="text/javascript"> var ns = 'http://www.example.com/2014/test'; var circle = document.getelementbyid( 'target' ); console.log('attribute value: ' + circle.getattribute('test:foo')); </script> </body> </html> notes namespaces are only sup
ported in xml documents.
... obsolete specifies that a not_sup
ported_err exception is thrown if the ua does not sup
port the "xml" feature.
Element.getClientRects() - Web APIs
each domrect object contains read-only left, top, right and bottom properties describing the border box, in pixels, with the top-left relative to the top-left of the view
port.
...when called on svg elements other than an outer-<svg>, the "view
port" that the resulting rectangles are relative to is the view
port that the element's outer-<svg> establishes (and to be clear, the rectangles are also transformed by the outer-<svg>'s viewbox transform, if any).
... the amount of scrolling that has been done of the view
port area (or any other scrollable element) is taken into account when computing the rectangles.
Element.matches() - Web APIs
polyfill for browsers that do not sup
port element.matches() or element.matchesselector(), but include sup
port for document.queryselectorall(), a polyfill exists: if (!element.prototype.matches) { element.prototype.matches = element.prototype.matchesselector || element.prototype.mozmatchesselector || element.prototype.msmatchesselector || element.prototype.omatchesselector || element.prototype.webkitmatche...
...sselector || function(s) { var matches = (this.document || this.ownerdocument).queryselectorall(s), i = matches.length; while (--i >= 0 && matches.item(i) !== this) {} return i > -1; }; } however, given the practicality of sup
porting older browsers, the following should suffice for most (if not all) practical cases (i.e.
... ie9+ sup
port).
Element.scroll() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollchrome full sup
port 45edge full sup
port 79firefox full sup
port 36ie no sup
port noopera full sup
port 32safari full sup
port 10webview android full supp...
...ort 45chrome android full sup
port 45firefox android full sup
port 36opera android full sup
port 32safari ios no sup
port nosamsung internet android full sup
port 5.0scrolltooptions parameterchrome full sup
port 45edge full sup
port 79firefox full sup
port yesie no sup
port noopera full sup
port 32safari no sup
port ...
... nowebview android full sup
port 45chrome android full sup
port 45firefox android full sup
port yesopera android full sup
port 32safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
port ...
Element.scrollTo() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrolltochrome full sup
port 45edge full sup
port 79firefox full sup
port 36ie no sup
port noopera full sup
port 32safari full sup
port 10webview android full supp...
...ort 45chrome android full sup
port 45firefox android full sup
port 36opera android full sup
port 32safari ios no sup
port nosamsung internet android full sup
port 5.0scrolltooptions parameterchrome full sup
port 45edge full sup
port 79firefox full sup
port yesie no sup
port noopera full sup
port 32safari no sup
port ...
... nowebview android full sup
port 45chrome android full sup
port 45firefox android full sup
port yesopera android full sup
port 32safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
port ...
Event.initEvent() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetinitevent deprecatedchrome full sup
port yesedge full sup
port 12firefox full sup
port 17 full sup
port 17 no sup
port ?
... — 17notes notes before firefox 17, a call to this method after the dispatching of the event raised an exception instead of doing nothing.ie full sup
port yesopera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 17 full sup
port 17 no sup
port ?
... — 17notes notes before firefox 17, a call to this method after the dispatching of the event raised an exception instead of doing nothing.opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
portdeprecated.
EventTarget.dispatchEvent() - Web APIs
exceptions exceptions thrown by event handlers are re
ported as uncaught exceptions.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdispatcheventchrome full sup
port 4edge full sup
port 12firefox full sup
port 2ie full sup
port 9 full sup
port 9 no sup
port 6 — 11notes alternate name notes older versions of ie sup
ported an equivale...
...nt, proprietary eventtarget.fireevent() method.alternate name uses the non-standard name: fireeventopera full sup
port 9safari full sup
port 3.2webview android full sup
port 4chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 3samsung internet android full sup
port 1.0legend full sup
port full sup
portsee implementa...
ExtendableMessageEvent() - Web APIs
source: the client, serviceworker or message
port that sent the message.
...
ports: an array containing the message
port objects connected to the channel sending the message.
... examples var init = { data : 'hello message', source : message
portreference,
ports : message
portlistreference } var myeme = new extendablemessageevent('message', init); specifications specification status comment service workersthe definition of 'extendablemessageevent()' in that specification.
FetchEvent.navigationPreload - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnavigationpreload experimentalchrome full sup
port 59edge full sup
port ≤79firefox ?
... ie no sup
port noopera full sup
port 46safari no sup
port nowebview android full sup
port 59chrome android full sup
port 59firefox android ?
... opera android full sup
port 43safari ios no sup
port nosamsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
File.webkitRelativePath - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetwebkitrelativepathchrome full sup
port 13prefixed full sup
port 13prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 13firefox full sup
port 49ie no sup
port noopera no sup
port ...
... nosafari full sup
port 11.1webview android full sup
port yeschrome android full sup
port 18prefixed full sup
port 18prefixed prefixed implemented with the vendor prefix: webkitfirefox android full sup
port 49opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port 1.0prefixed full sup
port 1.0prefixed prefixed implemented with the vendor prefix: w...
...ebkitlegend full sup
port full sup
port no sup
port no sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
FileSystemEntry.isDirectory - Web APIs
if (entry.isdirectory) { processsubdirectory(entry); } else if (entry.isfile) { processfile(entry); } else { displayerrormessage("unsup
ported file system entry specified."); } specifications specification status comment file and directory entries apithe definition of 'isdirectory' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetisdirectory experimentalchrome full sup
port 8edge full sup
port 79firefox full sup
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
FileSystemEntry.isFile - Web APIs
if (entry.isdirectory) { processsubdirectory(entry); } else if (entry.isfile) { processfile(entry); } else { displayerrormessage("unsup
ported file system entry specified."); } specifications specification status comment file and directory entries apithe definition of 'isfile' in that specification.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetisfile experimentalchrome full sup
port 8edge full sup
port 79firefox full sup
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
File and Directory Entries API - Web APIs
because this is a non-standard api, whose specification is not currently on a standards track, it's im
portant to keep in mind that not all browsers implement it, and those that do may implement only small
portions of it.
... the firefox implementation of the file and directory entries api is very limited; there is no sup
port for creating files.
...check the browser compatibility for any part of the api you use carefully, and see file and directory entries api sup
port in firefox for more details.
GainNode() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgainnode() constructorchrome full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port ...
... webview android full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.chrome android full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.firefox android full sup
port 53opera android full sup
port 42safari ios ?
... samsung internet android full sup
port 6.0notes full sup
port 6.0notes notes before samsung internet 7.0, the default values were not sup
ported.legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownsee implementation notes.see implementation notes.
Using the Gamepad API - Web APIs
technologies like <canvas>, webgl, <audio>, and <video>, along with javascript implementations, have matured to the point where they can now sup
port many tasks previously requiring native code.
...currently there is only one sup
ported known layout — the standard gamepad.
...note that this property is not currently sup
ported in firefox.
Geolocation API - Web APIs
for privacy reasons, the user is asked for permission to re
port location information.
... geolocationcoordinates represents the coordinates of a user's position; a geolocationcoordinates instance contains latitude, longitude, and other im
portant related information.
...de = position.coords.longitude; status.textcontent = ''; maplink.href = `https://www.openstreetmap.org/#map=18/${latitude}/${longitude}`; maplink.textcontent = `latitude: ${latitude} °, longitude: ${longitude} °`; } function error() { status.textcontent = 'unable to retrieve your location'; } if(!navigator.geolocation) { status.textcontent = 'geolocation is not sup
ported by your browser'; } else { status.textcontent = 'locating…'; navigator.geolocation.getcurrentposition(success, error); } } document.queryselector('#find-me').addeventlistener('click', geofindme); result specifications specification status comment geolocation api recommendation ...
GlobalEventHandlers.onerror - Web APIs
installing a global error event handler is useful for automated collection of error re
ports.
... notes when an error occurs in a script, loaded from a different origin, the details of the error are not re
ported to prevent leaking information (see bug 363897).
... instead the error re
ported is simply "script error." this behavior can be overriden in some browsers using the crossorigin attribute on <script> and having the server send the appropriate cors http response headers.
HTMLAnchorElement.referrerPolicy - Web APIs
"origin" meaning that the referrer will be the origin of the page, that is roughly the scheme, the host and the
port.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreferrerpolicychrome full sup
port 51edge full sup
port 79firefox full sup
port 50ie no sup
port noopera full sup
port 38safari full sup
port 11.1webview android full su...
...p
port 51chrome android full sup
port 51firefox android full sup
port 50opera android full sup
port 41safari ios no sup
port nosamsung internet android full sup
port 7.2legend full sup
port full sup
port no sup
port no sup
port ...
HTMLAreaElement.referrerPolicy - Web APIs
"origin" meaning that the referrer will be the origin of the page, that is roughly the scheme, the host and the
port.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreferrerpolicychrome full sup
port 51edge full sup
port 79firefox full sup
port 50ie no sup
port noopera full sup
port 38safari full sup
port 11.1webview android full su...
...p
port 51chrome android full sup
port 51firefox android full sup
port 50opera android full sup
port 41safari ios no sup
port nosamsung internet android full sup
port 7.2legend full sup
port full sup
port no sup
port no sup
port ...
HTMLButtonElement - Web APIs
methods inherits methods from its parent, htmlelement name return type description checkvalidity() boolean not sup
ported for reset or button elements.
... re
portvalidity() boolean not sup
ported for reset or button elements.
... setcustomvalidity(in domstring error) void not sup
ported for reset or button elements.
HTMLCanvasElement.toBlob() - Web APIs
exceptions securityerror the canvas's bitmap is not origin clean; at least some of its contents come from secure examples getting a file representing the canvas once you have drawn content into a canvas, you can convert it into a file of any sup
ported image format.
...windows xp doesn't sup
port converting from png to ico, so it uses bmp instead.
... cu.im
port('resource://gre/modules/osfile.jsm'); var writepath = os.path.join(os.constants.path.desktopdir, iconname + '.ico'); var promise = os.file.writeatomic(writepath, new uint8array(r.result), {tmppath:writepath + '.tmp'}); promise.then( function() { console.log('successfully wrote file'); }, f...
HTMLFontElement.face - Web APIs
the document text, in the default style, is rendered as the first font face that the client's browser sup
ports.
... if no font listed is installed on the local system, the browser typically defaults to the pro
portional or fixed-width font for that system.
...ption examples list of one or more valid font family names a list of font names, that have to be present on the local system courier,verdana syntax facestring = fontobj.face; fontobj.face = facestring; examples // assumes there is <font id="f"> element in the html var f = document.getelementbyid("f"); f.face = "arial"; specifications the <font> tag is not sup
ported in html5 and as a result neither is <font>.face .
HTMLFormElement - Web APIs
re
portvalidity() returns true if the element's child controls satisfy their validation constraints.
... when false is returned, cancelable invalid events are fired for each invalid child and validation problems are re
ported to the user.
...rm controls the elements included by htmlformelement.elements and htmlformelement.length are the following: <button> <fieldset> <input> (with the exception that any whose type is "image" are omitted for historical reasons) <object> <output> <select> <textarea> no other elements are included in the list returned by elements, which makes it an excellent way to get at the elements most im
portant when processing forms.
HTMLHyperlinkElementUtils - Web APIs
htmlhyperlinkelementutils.host this is a usvstring containing the host, that is the hostname, and then, if the
port of the url is not empty (which can happen because it was not specified or because it was specified to be the default
port of the url's scheme), a ':', and the
port of the url.
... htmlhyperlinkelementutils.
port this is a usvstring containing the
port number of the url.
... htmlhyperlinkelementutils.origin read only this returns a usvstring containing the origin of the url (that is its scheme, its domain and its
port).
HTMLImageElement.align - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetalignchrome full sup
port 1edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android ?
... safari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.border - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetborderchrome full sup
port 1edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android ?
... safari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.complete - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcompletechrome full sup
port 1edge full sup
port 12firefox full sup
port yesie full sup
port 8notes full sup
port 8notes notes ie re
ports false for broken images.opera full sup
port ...
... yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android ?
... safari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknownsee implementation notes.see implementation notes.
HTMLImageElement.crossOrigin - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcrossoriginchrome full sup
port 13edge full sup
port 12firefox full sup
port yesie full sup
port 9opera full sup
port yessafari full sup
port yeswebview android full ...
...sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android ?
... safari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.decoding - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdecodingchrome full sup
port 65edge full sup
port ≤79firefox full sup
port 63ie no sup
port noopera full sup
port yessafari full sup
port 11.1webview android ful...
...l sup
port 65chrome android full sup
port 65firefox android full sup
port 63opera android ?
... safari ios full sup
port 11.3samsung internet android full sup
port 9.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.isMap - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetismapchrome full sup
port 1edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android ?
... safari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.longDesc - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetlongdescchrome full sup
port 1edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android ?
... safari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.naturalHeight - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnaturalheightchrome full sup
port 1edge full sup
port 12firefox full sup
port yesie full sup
port 9opera full sup
port yessafari full sup
port yeswebview android full s...
...up
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android ?
... safari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.naturalWidth - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnaturalwidthchrome full sup
port 1edge full sup
port 12firefox full sup
port yesie full sup
port 9opera full sup
port yessafari full sup
port yeswebview android full s...
...up
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android ?
... safari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLImageElement.referrerPolicy - Web APIs
"origin" meaning that the referrer will be the origin of the page, that is roughly the scheme, the host and the
port.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreferrerpolicychrome full sup
port 51edge full sup
port 79firefox full sup
port 50ie no sup
port noopera full sup
port 38safari full sup
port 11.1webview android full su...
...p
port 51chrome android full sup
port 51firefox android full sup
port 50opera android full sup
port 41safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
port ...
HTMLImageElement.srcset - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsrcset experimentalchrome full sup
port 34edge full sup
port 12firefox full sup
port 38 full sup
port 38 no sup
port 32 — 52disabled disabled from version 32 until version 52 (exclusive): this feature is behind the dom.image.srcset.enabled preference ...
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 21safari full sup
port 8webview android full sup
port 37chrome android full sup
port 34firefox android full sup
port 38 full sup
port 38 no sup
port 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 true).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port 8samsung internet android full sup
port 2.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
HTMLImageElement.vspace - Web APIs
im
portant: this property is obsolete.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetvspacechrome full sup
port 1edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown ...
HTMLImageElement.x - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetxchrome full sup
port 1edge full sup
port 12firefox full sup
port 14 full sup
port 14 no sup
port ?
... — 7ie no sup
port noopera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 14 full sup
port 14 no sup
port ?
... — 7opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
HTMLImageElement.y - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetychrome full sup
port 1edge full sup
port 12firefox full sup
port 14 full sup
port 14 no sup
port ?
... — 7ie no sup
port noopera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 14 full sup
port 14 no sup
port ?
... — 7opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
HTMLMediaElement.onencrypted - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonencryptedchrome full sup
port yesedge full sup
port 13firefox full sup
port yesie ?
... opera full sup
port yessafari ?
... legend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLMediaElement.setMediaKeys() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsetmediakeyschrome full sup
port yesedge full sup
port 13firefox full sup
port yesie ?
... opera full sup
port yessafari ?
... legend full sup
port full sup
port compatibility unknown compatibility unknown ...
HTMLMediaElement - Web APIs
the htmlmediaelement interface adds to htmlelement the properties and methods needed to sup
port basic media-related capabilities that are common to audio and video.
... obsolete attributes these attributes are obsolete and should not be used, even if a browser still sup
ports them.
... obsolete methods these methods are obsolete and should not be used, even if a browser still sup
ports them.
HTMLOrForeignElement.nonce - Web APIs
examples retrieving a nonce value in the past, not all browsers sup
ported the nonce idl attribute, so a workaround is to try to use getattribute as a fallback: let nonce = script['nonce'] || script.getattribute('nonce'); however, recent browsers version hide nonce values that are accessed this way (an empty string will be returned).
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnoncechrome full sup
port 61edge full sup
port 79firefox full sup
port 75ie no sup
port noopera full sup
port yessafari full sup
port 10webview android full sup...
...
port 61chrome android full sup
port 61firefox android no sup
port noopera android full sup
port yessafari ios full sup
port 10samsung internet android full sup
port 8.0legend full sup
port full sup
port no sup
port no sup
port ...
HTMLScriptElement.referrerPolicy - Web APIs
note: an empty string value ("") is both the default value, and a fallback value if referrerpolicy is not sup
ported.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreferrerpolicychrome full sup
port 70edge full sup
port ≤79firefox full sup
port 65ie no sup
port noopera full sup
port yessafari no sup
port nowebview android full su...
...p
port 70chrome android full sup
port 70firefox android full sup
port 65opera android full sup
port yessafari ios no sup
port nosamsung internet android full sup
port 10.0legend full sup
port full sup
port no sup
port no sup
port ...
HTMLScriptElement - Web APIs
the defer attribute may be specified with the async attribute, so legacy browsers that only sup
port defer (and not async) fall back to the defer behavior instead of the default blocking behavior.
... htmlscriptelement.nomodule is a boolean that if true, stops the script's execution in browsers that sup
port es2015 modules — used to run fallback scripts in older browsers that do not sup
port javascript modules.
... examples dynamically im
porting scripts let's create a function that im
ports new scripts within a document creating a <script> node immediately before the <script> that hosts the following code (through document.currentscript).
HTMLSlotElement.assignedElements() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetassignedelements experimentalchrome full sup
port 65edge full sup
port 79firefox full sup
port 66ie no sup
port noopera full sup
port yessafari ?
... webview android full sup
port 65chrome android full sup
port 65firefox android full sup
port 66opera android full sup
port yessafari ios ?
... samsung internet android full sup
port 9.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
IDBCursor.advance() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetadvancechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBCursor.continue() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontinuechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBCursor.delete() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdeletechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBCursor.direction - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdirectionchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBCursor.primaryKey - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetprimarykeychrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBCursor.request - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetrequestchrome full sup
port 76edge full sup
port 79firefox full sup
port 77ie no sup
port noopera full sup
port 63safari ?
... webview android full sup
port 76chrome android full sup
port 76firefox android no sup
port noopera android full sup
port 54safari ios ?
... samsung internet android full sup
port 12.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknown ...
IDBCursor.source - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsourcechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBCursor.update() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetupdatechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBCursorSync - Web APIs
im
portant: the synchronous version of the indexeddb api was originally intended for use only with web workers, and was eventually removed from the spec because its need was questionable.
... not_allowed_err if the underlying index or object store does not sup
port updating the record because it is open in the read_only or snapshot_read mode, or if an index record cannot be changed because the underlying index is auto-populated.
... remove() deletes the record at the cursor's position, without changing the cursor's position void delete ( ) raises (databaseexception); exceptions this method can raise an idbdatabaseexception with the following code: not_allowed_err if the underlying index or object store does not sup
port updating the record because it is open in the read_only or snapshot_read mode.
IDBCursorWithValue.value - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetvaluechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBDatabase.close() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetclosechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBDatabase.deleteObjectStore() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdeleteobjectstorechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBDatabase.name - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnamechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBDatabase.objectStoreNames - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetobjectstorenameschrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBDatabase.onabort - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonabortchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBDatabase.onerror - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonerrorchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBDatabase.onversionchange - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonversionchangechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBDatabase.version - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetversionchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBFactory.cmp() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcmpchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBFactory.deleteDatabase() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdeletedatabasechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBFactory.open() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetopenchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBIndex.count() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcountchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBIndex.get() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBIndex.getKey() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetkeychrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBIndex.keyPath - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetkeypathchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBIndex.multiEntry - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmultientrychrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBIndex.objectStore - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetobjectstorechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBIndex.openCursor() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetopencursorchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBIndex.openKeyCursor() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetopenkeycursorchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBIndex.unique - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetuniquechrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yes full sup
port yes no sup
port ?
... — ?prefixed prefixed implemented with the vendor prefix: webkitchrome android full sup
port 25firefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port 1.5legend full sup
port full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBKeyRange.bound() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetboundchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBKeyRange.includes() - Web APIs
for browsers that do not sup
port it, the following polyfill can be used.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetincludeschrome full sup
port 52edge full sup
port ≤18firefox full sup
port 47ie ?
... opera full sup
port 39safari full sup
port 10.1webview android full sup
port 52chrome android full sup
port 52firefox android full sup
port yesopera android full sup
port 41safari ios full sup
port 10.3samsung internet android full sup
port 6.0legend full sup
port full sup
port compatibility unknown ...
IDBKeyRange.lower - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetlowerchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBKeyRange.lowerBound() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetlowerboundchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBKeyRange.lowerOpen - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetloweropenchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBKeyRange.only() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonlychrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBKeyRange.upper - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetupperchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBKeyRange.upperBound() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetupperboundchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBKeyRange.upperOpen - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetupperopenchrome full sup
port 24 full sup
port 24 no sup
port 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port 16 ...
... no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBRequest.onsuccess - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonsuccesschrome full sup
port 24 full sup
port 24 full sup
port 23prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port ...
... 16 no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBRequest.readyState - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadystatechrome full sup
port 24 full sup
port 24 full sup
port 23prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port ...
... 16 no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBRequest.result - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetresultchrome full sup
port 24 full sup
port 24 full sup
port 23prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port ...
... 16 no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBRequest.source - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsourcechrome full sup
port 24 full sup
port 24 full sup
port 23prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port ...
... 16 no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IDBRequest.transaction - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettransactionchrome full sup
port 24 full sup
port 24 full sup
port 23prefixed prefixed implemented with the vendor prefix: webkitedge full sup
port 12firefox full sup
port 16 full sup
port ...
... 16 no sup
port 10 — 16prefixed prefixed implemented with the vendor prefix: mozie partial sup
port 10opera full sup
port 15safari full sup
port 7webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 22opera android full sup
port 14safari ios full sup
port 8samsung internet android full sup
port yeslegend full sup
port ...
... full sup
port partial sup
port partial sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
IIRFilterNode() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetiirfilternode() constructorchrome full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port ...
... webview android full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.chrome android full sup
port 55notes full sup
port 55notes notes before version 59, the default values were not sup
ported.firefox android full sup
port 53opera android full sup
port 42safari ios ?
... samsung internet android full sup
port 6.0notes full sup
port 6.0notes notes before samsung internet 7.0, the default values were not sup
ported.legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownsee implementation notes.see implementation notes.
Checking when a deadline is due - Web APIs
on browsers that sup
port type="number", you get a nice little up and down arrow number picker.
...this step is mainly for browsers that don't sup
port html form validation (i have used the required attribute in my html to force validation, in those that do.) else { var newitem = [ { tasktitle: title.value, hours : hours.value, minutes : minutes.value, day : day.value, month : month.value, year : year.value, notified : "no" } ]; // open a read/wr...
...ite db transaction, ready for adding the data var transaction = db.transaction(["todolist"], "readwrite"); // re
port on the success of opening the transaction transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction opened for task addition.</li>'; }; transaction.onerror = function(event) { note.innerhtml += '<li>transaction not opened due to error.
InputEvent.dataTransfer - Web APIs
examples in the following simple example we've set up an event listener on the input event so that when any content is pasted into the contenteditable <p> element, its html source is retrieved via the inputevent.datatransfer.getdata() method and re
ported in the paragraph below the input.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdatatransfer experimentalchrome full sup
port 60edge full sup
port 79firefox full sup
port 67ie no sup
port noopera full sup
port 47safari no sup
port nowebview android full suppor...
...t 60chrome android full sup
port 60firefox android full sup
port 67opera android full sup
port 44safari ios no sup
port nosamsung internet android full sup
port 8.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
IntersectionObserver - Web APIs
the intersectionobserver interface of the intersection observer api provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's view
port.
... the ancestor element or view
port is referred to as the root.
...if no root value was passed to the constructor or its value is null, the top-level document's view
port is used.
MIDIConnectionEvent - Web APIs
the midiconnectionevent interface of the web midi api is the event passed to the onstatechange event handler of the midiaccess interface and the onstatechange event of the midi
ports interface.
... this occurs any time a new
port becomes available, or when a previously available
port becomes unavailable.
... properties midiconnectionevent.
port returns a reference to a midi
port instance for a
port that has been connected or disconnected." examples specifications specification status comment web midi api working draft initial definition.
MediaDecodingConfiguration - Web APIs
the mediadecodingconfiguration dictionary of the media capabilities api is used to define the type of media being tested when calling mediacapabilities.decodinginfo() to query whether a specific media configuration is sup
ported, smooth, and/or power efficient.
... } }; // check sup
port and performance navigator.mediacapabilities.decodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.sup
ported ?
... '' : 'not ') + 'sup
ported.') }); specifications specification status comment media capabilitiesthe definition of 'mediadecodingconfiguration' in that specification.
MediaDeviceInfo.deviceId - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdeviceidchrome full sup
port 55notes full sup
port 55notes notes for earlier versions, this interface is available through the adapter.js polyfilledge full sup
port 12firefox full sup
port 39ie no sup
port noopera ...
... no sup
port nonotes no sup
port nonotes notes this property can be used in opera by using the adapter.js polyfill.safari no sup
port nowebview android full sup
port 55notes full sup
port 55notes notes for earlier versions, this interface is available through the adapter.js polyfillchrome android full sup
port 55notes full sup
port 55notes notes for earlier versions, this interface is available through the adapter.js polyfillfirefox android full sup
port ...
... 39opera android no sup
port nonotes no sup
port nonotes notes this property can be used in opera by using the adapter.js polyfill.safari ios no sup
port nosamsung internet android full sup
port 6.0notes full sup
port 6.0notes notes for earlier versions, this interface is available through the adapter.js polyfilllegend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
MediaDeviceInfo.kind - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetkindchrome full sup
port 55notes full sup
port 55notes notes for earlier versions, this interface is available through the adapter.js polyfilledge full sup
port 12firefox full sup
port 39ie no sup
port noopera ...
... no sup
port nonotes no sup
port nonotes notes this property can be used in opera by using the adapter.js polyfill.safari no sup
port nowebview android full sup
port 55notes full sup
port 55notes notes for earlier versions, this interface is available through the adapter.js polyfillchrome android full sup
port 55notes full sup
port 55notes notes for earlier versions, this interface is available through the adapter.js polyfillfirefox android full sup
port ...
... 39opera android no sup
port nonotes no sup
port nonotes notes this property can be used in opera by using the adapter.js polyfill.safari ios no sup
port nosamsung internet android full sup
port 6.0notes full sup
port 6.0notes notes for earlier versions, this interface is available through the adapter.js polyfilllegend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
MediaDevices - Web APIs
getsup
portedconstraints() returns an object conforming to mediatracksup
portedconstraints indicating which constrainable properties are sup
ported on the mediastreamtrack interface.
... getdisplaymedia() prompts the user to select a display or
portion of a display (such as a window) to capture as a mediastream for sharing or recording purposes.
...cks[0].label); stream.onremovetrack = function() { console.log('stream ended'); }; window.stream = stream; // make variable available to browser console video.srcobject = stream; }) .catch(function(error) { if (error.name === 'constraintnotsatisfiederror') { errormsg('the resolution ' + constraints.video.width.exact + 'x' + constraints.video.height.exact + ' px is not sup
ported by your device.'); } else if (error.name === 'permissiondeniederror') { errormsg('permissions have not been granted to use your camera and ' + 'microphone, you need to allow the page access to your devices in ' + 'order for the demo to work.'); } errormsg('getusermedia error: ' + error.name, error); }); function errormsg(msg, error) { errorelement.innerhtml += '<p>' + m...
MediaEncodingConfiguration - Web APIs
the mediaencodingconfiguration dictionary of the media capabilities api is used to define the type of media being tested when calling mediacapabilities.encodinginfo() to query whether a specific media configuration is sup
ported, smooth, and/or power efficient.
... } }; // check sup
port and performance navigator.mediacapabilities.encodinginfo(mediaconfig).then(result => { console.log('this configuration is ' + (result.sup
ported ?
... '' : 'not ') + 'sup
ported.') }); specifications specification status comment media capabilitiesthe definition of 'mediaencodingconfiguration' in that specification.
MediaKeyMessageEvent() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmediakeymessageevent() constructor experimentalchrome full sup
port 42edge full sup
port ≤18firefox ?
... webview android no sup
port nochrome android full sup
port 42firefox android ?
... samsung internet android full sup
port 4.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
MediaKeySystemConfiguration - Web APIs
properties mediakeysystemconfiguration.initdatatypes read only returns a list of sup
ported initialization data type names.
... mediakeysystemconfiguration.audiocapabilities read only returns a list of sup
ported audio type and capability pairs.
... mediakeysystemconfiguration.videocapabilities read only returns a list of sup
ported video type and capability pairs.
MediaQueryList - Web APIs
a mediaquerylist object stores information on a media query applied to a document, with sup
port for both immediate and event-driven matching against the state of the document.
...for example, if the media query is (min-width: 400px), the change event is fired any time the width of the document's view
port changes such that its width moves across the 400px boundary in either direction.
... var para = document.queryselector('p'); var mql = window.matchmedia('(max-width: 600px)'); function screentest(e) { if (e.matches) { /* the view
port is 600 pixels wide or less */ para.textcontent = 'this is a narrow screen — less than 600px wide.'; document.body.style.backgroundcolor = 'red'; } else { /* the view
port is more than than 600 pixels wide */ para.textcontent = 'this is a wide screen — more than 600px wide.'; document.body.style.backgroundcolor = 'blue'; } } mql.addeventlistener('change', screentest); ...
MediaRecorder.audioBitsPerSecond - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetaudiobitspersecond experimentalchrome full sup
port 49edge full sup
port 79firefox full sup
port 71ie no sup
port noopera full sup
port 36safari no sup
port nowebview android full suppor...
...t 49chrome android full sup
port 49firefox android ?
... opera android full sup
port 36safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
MediaRecorder.mimeType - Web APIs
keep in mind that not all codecs are sup
ported by a given container; if you write media using a codec that is not sup
ported by a given media container, the resulting file may not work reliably if at all when you try to play it back.
... see our media type and format guide for information about container and codec sup
port across browsers.
... if (navigator.mediadevices) { console.log('getusermedia sup
ported.'); var constraints = { audio: true, video: true }; var chunks = []; navigator.mediadevices.getusermedia(constraints) .then(function(stream) { var options = { audiobitspersecond: 128000, videobitspersecond: 2500000, mimetype: 'video/mp4' } var mediarecorder = new mediarecorder(stream,options); m = mediarecorder; m.mimetype; // w...
MediaSession.playbackState - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetplaybackstate experimentalchrome full sup
port 73edge full sup
port ≤79firefox no sup
port noie no sup
port noopera full sup
port yessafari ?
... webview android no sup
port nochrome android full sup
port 57firefox android no sup
port noopera android no sup
port nosafari ios ?
... samsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
Media Session action types - Web APIs
to sup
port an action on a media session, such as seeking, pausing, or changing tracks, you need to call the mediasession interface's setactionhandler() method to establish a handler for that action.
...implement sup
port for each of these in order to allow that type of action to be performed.
... audio.currenttime = math.max(audio.currenttime - skiptime, 0); }); sup
porting multiple actions in one handler function you can also, if you prefer, use a single function to handle multiple action types, by checking the value of the mediasessionactiondetails object's action property: let skiptime = 7; navigator.mediasession.setactionhandler("seekforward", handleseek); navigator.mediasession.setactionhandler("seekbackward", handleseek); function handleseek(details) { ...
MediaSource.addSourceBuffer() - Web APIs
notsup
portederror the specified mimetype isn't sup
ported by the user agent, or is not compatible with the mime types of other sourcebuffer objects that are already included in the media source's sourcebuffers list.
... quotaexceedederror the user agent can't handle any more sourcebuffer objects, or creating a new sourcebuffer using the given mimetype would result in an unsup
ported configuration of sourcebuffers.
...xample the following snippet is from a simple example written by nick desaulniers (view the full demo live, or download the source for further investigation.) var asseturl = 'frag_bunny.mp4'; // need to be specific for blink regarding codecs // ./mp4info frag_bunny.mp4 | grep codec var mimecodec = 'video/mp4; codecs="avc1.42e01e, mp4a.40.2"'; if ('mediasource' in window && mediasource.istypesup
ported(mimecodec)) { var mediasource = new mediasource; //console.log(mediasource.readystate); // closed video.src = url.createobjecturl(mediasource); mediasource.addeventlistener('sourceopen', sourceopen); } else { console.error('unsup
ported mime type or codec: ', mimecodec); } function sourceopen (_) { //console.log(this.readystate); // open var mediasource = this; var sourcebuffer ...
MediaStreamAudioSourceNode - Web APIs
however, it's im
portant to note that the rule establishing this ordering was added long after this interface was first introduced into the web audio api.
... var pre = document.queryselector('pre'); var video = document.queryselector('video'); var myscript = document.queryselector('script'); var range = document.queryselector('input'); // getusermedia block - grab stream // put it into a mediastreamaudiosourcenode // also output the visuals into a video element if (navigator.mediadevices) { console.log('getusermedia sup
ported.'); navigator.mediadevices.getusermedia ({audio: true, video: true}) .then(function(stream) { video.srcobject = stream; video.onloadedmetadata = function(e) { video.play(); video.muted = true; }; // create a mediastreamaudiosourcenode // feed the htmlmediaelement into it var audioctx = new audiocontext(); v...
... biquadfilter.connect(audioctx.destination); // get new mouse pointer coordinates when mouse is moved // then set new gain value range.oninput = function() { biquadfilter.gain.value = range.value; } }) .catch(function(err) { console.log('the following gum error occured: ' + err); }); } else { console.log('getusermedia not sup
ported on your browser!'); } // dump script to pre element pre.innerhtml = myscript.innerhtml; note: as a consequence of calling createmediastreamsource(), audio playback from the media stream will be re-routed into the processing graph of the audiocontext.
Media Capture and Streams API (Media Stream) - Web APIs
the media capture and streams api, often called the media streams api or simply mediastream api, is an api related to webrtc which provides sup
port for streaming audio and video data.
... blobevent canvascapturemediastreamtrack inputdeviceinfo mediadevicekind mediadeviceinfo mediadevices mediastream mediastreamconstraints mediastreamevent mediastreamtrack mediastreamtrackevent mediatrackconstraints mediatracksettings mediatracksup
portedconstraints overconstrainederror url early versions of the media capture and streams api specification included separate audiostreamtrack and videostreamtrack interfaces—each based upon mediastreamtrack—which represented streams of those types.
... capabilities, constraints, and settingsthe twin concepts of constraints and capabilities let the browser and web site or app exchange information about what constrainable properties the browser's implementation sup
ports and what values it sup
ports for each one.
msFirstPaint - Web APIs
it is available from javascript and can be re
ported from the field.
... the numerical value re
ported represents the number of milliseconds between the recorded time and midnight january 1, 1970 (utc).
... this property is sup
ported only for documents displayed in ie9 standards mode.
Navigator.registerProtocolHandler() - Web APIs
syntax navigator.registerprotocolhandler(scheme, url, title); note: recently updated to navigator.registerprotocolhandler(scheme, url), but no browsers currently sup
port this version.
...older browsers also sup
ported http.
...it is recommended to always set the title, since browsers that sup
port the updated spec most likely will be backwards-compatible and still accept the title (but not use it).
NodeList.prototype.forEach() - Web APIs
let list = node.childnodes; list.foreach( function(currentvalue, currentindex, listobj) { console.log(currentvalue + ', ' + currentindex + ', ' + this); }, 'mythisarg' ); the above code results in the following: [object htmlparagraphelement], 0, mythisarg [object text], 1, mythisarg [object htmlspanelement], 2, mythisarg polyfill this polyfill adds compatibility to all browsers sup
porting es5: if (window.nodelist && !nodelist.prototype.foreach) { nodelist.prototype.foreach = 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...
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetforeachchrome full sup
port 51edge full sup
port 16firefox full sup
port 50ie no sup
port noopera full sup
port 38safari full sup
port 10webview android full supp...
...ort 51chrome android full sup
port 51firefox android full sup
port 50opera android full sup
port 41safari ios full sup
port 10samsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
port ...
OfflineAudioCompletionEvent.OfflineAudioCompletionEvent() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetofflineaudiocompletionevent() constructorchrome full sup
port 57notes full sup
port 57notes notes before chrome 59, the default values were not sup
ported.edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port ...
... webview android full sup
port 57notes full sup
port 57notes notes before version 59, the default values were not sup
ported.chrome android full sup
port 57notes full sup
port 57notes notes before chrome 59, the default values were not sup
ported.firefox android full sup
port 53opera android full sup
port 42safari ios ?
... samsung internet android full sup
port 6.0notes full sup
port 6.0notes notes before samsung internet 7.0, the default values were not sup
ported.legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownsee implementation notes.see implementation notes.
PaintWorklet - Web APIs
<script> if ('paintworklet' in css) { css.paintworklet.addmodule('checkerboard.js'); } </script> use a paintworklet this example shows how to use a paintworklet in a stylesheet, including the simplest way to provide a fallback if paintworklet isn't sup
ported.
... <style> textarea { background-image: url(checkerboard); background-image: paint(checkerboard); } </style> <textarea></textarea> you can also use the @sup
ports at-rule.
... @sup
ports (background: paint(id)) { background-image: paint(checkerboard); } specifications specification status comment css painting api level 1the definition of 'paintworkletglobalscope' in that specification.
PaymentAddress - Web APIs
paymentaddress.city read only a domstring which contains the city or town
portion of the address.
... the first of these three (sup
portedinstruments in the example below) contains a data property that has to conform to the structure defined by the basiccardrequest dictionary.
... const sup
portedinstruments = [ { sup
portedmethods: "basic-card", }, ]; const details = { total: { label: "donation", amount: { currency: "usd", value: "65.00" } }, displayitems: [ { label: "original donation amount", amount: { currency: "usd", value: "65.00" }, }, ], shippingoptions: [ { id: "standard", label: "standard shipping", amount: { currency: "usd", value: "0.00" }, selected: true, }, ], }; const options = { requestshipping: true }; async function dopaymentrequest() { const request = new paymentrequest(sup
portedinstruments, details, options); // add event listeners here.
PaymentRequest.prototype.id - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetidchrome full sup
port 61edge full sup
port 16firefox full sup
port 55notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android no sup
port nochrome android full sup
port 60firefox android full sup
port 55notes disabled full sup
port 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).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port 8.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
PaymentRequest.shippingOption - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetshippingoptionchrome full sup
port 61edge full sup
port 15firefox full sup
port 55notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android no sup
port nochrome android full sup
port 53firefox android full sup
port 55notes disabled full sup
port 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).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
PaymentRequest.shippingType - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetshippingtypechrome full sup
port 61edge full sup
port 15firefox full sup
port 55notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android no sup
port nochrome android full sup
port 55firefox android full sup
port 55notes disabled full sup
port 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).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
PaymentRequest.show() - Web APIs
note: in reality, despite the fact that the specification says this can't be done, some browsers, including firefox, sup
port multiple active payment requests at a time.
... notsup
portederror the promise rejects with a notsup
portederror if the user agent does not sup
port the payment methods specified when the paymentrequest constructor was called.
... const initialdetails = { total: { label: "total", amount: { value: "0", currency: "aud" }, }, }; const request = new paymentrequest(methods, initialdetails, options); // check if the the user sup
ports the `methods` if (!await request.canmakepayment()) { return; // no, so use a web form instead.
PaymentRequest.payerName - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpayernamechrome full sup
port 61edge full sup
port 15firefox full sup
port 56notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port yeswebview android no sup
port nochrome android full sup
port 58firefox android full sup
port 56notes disabled full sup
port 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).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port yessamsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
PaymentResponse.requestId - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetrequestidchrome full sup
port 61edge full sup
port 16firefox full sup
port 56notes disabled full sup
port 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...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari full sup
port yeswebview android no sup
port nochrome android full sup
port 60firefox android full sup
port 56notes disabled full sup
port 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).
... to change preferences in firefox, visit about:config.opera android no sup
port nosafari ios full sup
port yessamsung internet android full sup
port 8.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.user must explicitly enable this feature.user must explicitly enable this feature.
PerformanceEntry.duration - Web APIs
function run_performanceentry() { log("performanceentry sup
port ..."); if (performance.mark === undefined) { log("...
... performance.mark not sup
ported"); return; } // create some performance entries via the mark() method performance.mark("begin"); do_work(50000); performance.mark("end"); // use getentries() to iterate through the each entry var p = performance.getentries(); for (var i=0; i < p.length; i++) { log("entry[" + i + "]"); check_performanceentry(p[i]); } } function check_performanceentry(obj) { var properties = ["name", "entrytype", "starttime", "duration"]; var methods = ["tojson"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in obj; if (sup
ported) log("..." + properties[i] + " = " + obj[properties[i]]); else log("..." + properties[i] + " = not sup
ported"); } for (var i=0; i < ...
...methods.length; i++) { // check each method var sup
ported = typeof obj[methods[i]] == "function"; if (sup
ported) { var js = obj[methods[i]](); log("..." + methods[i] + "() = " + json.stringify(js)); } else { log("..." + methods[i] + " = not sup
ported"); } } } specifications specification status comment performance timeline level 2the definition of 'duration' in that specification.
PerformanceEntry.name - Web APIs
function run_performanceentry() { log("performanceentry sup
port ..."); if (performance.mark === undefined) { log("...
... performance.mark not sup
ported"); return; } // create some performance entries via the mark() method performance.mark("begin"); do_work(50000); performance.mark("end"); // use getentries() to iterate through the each entry var p = performance.getentries(); for (var i=0; i < p.length; i++) { log("entry[" + i + "]"); check_performanceentry(p[i]); } } function check_performanceentry(obj) { var properties = ["name", "entrytype", "starttime", "duration"]; var methods = ["tojson"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in obj; if (sup
ported) log("..." + properties[i] + " = " + obj[properties[i]]); else log("..." + properties[i] + " = not sup
ported"); } for (var i=0; i < ...
...methods.length; i++) { // check each method var sup
ported = typeof obj[methods[i]] == "function"; if (sup
ported) { var js = obj[methods[i]](); log("..." + methods[i] + "() = " + json.stringify(js)); } else { log("..." + methods[i] + " = not sup
ported"); } } } specifications specification status comment performance timeline level 2the definition of 'name' in that specification.
PerformanceEntry.startTime - Web APIs
function run_performanceentry() { log("performanceentry sup
port ..."); if (performance.mark === undefined) { log("...
... performance.mark not sup
ported"); return; } // create some performance entries via the mark() method performance.mark("begin"); do_work(50000); performance.mark("end"); // use getentries() to iterate through the each entry var p = performance.getentries(); for (var i=0; i < p.length; i++) { log("entry[" + i + "]"); check_performanceentry(p[i]); } } function check_performanceentry(obj) { var properties = ["name", "entrytype", "starttime", "duration"]; var methods = ["tojson"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in obj; if (sup
ported) log("..." + properties[i] + " = " + obj[properties[i]]); else log("..." + properties[i] + " = not sup
ported"); } for (var i=0; i < ...
...methods.length; i++) { // check each method var sup
ported = typeof obj[methods[i]] == "function"; if (sup
ported) { var js = obj[methods[i]](); log("..." + methods[i] + "() = " + json.stringify(js)); } else { log("..." + methods[i] + " = not sup
ported"); } } } specifications specification status comment performance timeline level 2the definition of 'starttime' in that specification.
PerformanceEntry.toJSON() - Web APIs
function run_performanceentry() { log("performanceentry sup
port ..."); if (performance.mark === undefined) { log("...
... performance.mark not sup
ported"); return; } // create some performance entries via the mark() method performance.mark("begin"); do_work(50000); performance.mark("end"); // use getentries() to iterate through the each entry var p = performance.getentries(); for (var i=0; i < p.length; i++) { log("entry[" + i + "]"); check_performanceentry(p[i]); } } function check_performanceentry(obj) { var properties = ["name", "entrytype", "starttime", "duration"]; var methods = ["tojson"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in obj; if (sup
ported) log("..." + properties[i] + " = " + obj[properties[i]]); else log("..." + properties[i] + " = not sup
ported"); } for (var i=0; i < ...
...methods.length; i++) { // check each method var sup
ported = typeof obj[methods[i]] == "function"; if (sup
ported) { var js = obj[methods[i]](); log("..." + methods[i] + "() = " + json.stringify(js)); } else { log("..." + methods[i] + " = not sup
ported"); } } } specifications specification status comment performance timeline level 2the definition of 'tojson' in that specification.
PerformanceEntry - Web APIs
example the following example checks all performanceentry properties to see if the browser sup
ports them and if so, write their values to the console.
...nce.getentries(); for (var i=0; i < p.length; i++) { console.log("performanceentry[" + i + "]"); print_performanceentry(p[i]); } } function print_performanceentry(perfentry) { var properties = ["name", "entrytype", "starttime", "duration"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " is not sup
ported"); } } } specifications specification status comment resource timing level 3 editor's draft resource timing level 2 working draft resource timing level 1 candidate recommendation adds the performanceresourcetiming interface and the resource value for entrytype.
PerformanceResourceTiming.connectEnd - Web APIs
the timestamp value includes the time interval to establish the trans
port connection, as well as other time intervals such as ssl handshake and socks authentication.
...d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'connectend' in that specification.
PerformanceResourceTiming.requestStart - Web APIs
if the trans
port connection fails and the browser retires the request, the value returned will be the start of the retry request.
...d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'requeststart' in that specification.
PerformanceTiming - Web APIs
if the trans
port layer re
ports an error and the connection establishment is started again, the last connection establishment start time is given.
...if the trans
port layer re
ports an error and the connection establishment is started again, the last connection establishment end time is given.
...if the trans
port layer fails after the start of the request and the connection is reopened, this property will be set to the time corresponding to the new request.
Permissions.revoke() - Web APIs
uservisibleonly: (push only, not sup
ported in firefox — see the browser compatibility section below) indicates whether you want to show a notification for every message or be able to send silent push notifications.
... exceptions typeerror retrieving the permissiondescriptor information failed in some way, or the permission doesn't exist or is currently unsup
ported (e.g.
... function revokepermission() { navigator.permissions.revoke({name:'geolocation'}).then(function(result) { re
port(result.state); }); } ...
PointerEvent.getCoalescedEvents() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetcoalescedevents experimentalchrome full sup
port 58edge full sup
port 79firefox full sup
port 59ie no sup
port noopera full sup
port 45safari no sup
port nowebview android full suppor...
...t 58chrome android full sup
port 58firefox android partial sup
port 59disabled partial sup
port 59disabled disabled from version 59: this feature is behind the dom.w3c_pointer_events.enabled preference (needs to be set to true).
... to change preferences in firefox, visit about:config.opera android full sup
port 43safari ios no sup
port nosamsung internet android full sup
port 7.0legend full sup
port full sup
port partial sup
port partial sup
port no sup
port no sup
portexperimental.
PointerEvent.pointerType - Web APIs
the sup
ported values are the following strings: "mouse" the event was generated by a mouse device.
...if the browser sup
ports pointer device types other than those listed above, the value should be vendor-prefixed to avoid conflicting names for different types of devices.
....addeventlistener('pointerdown', function(event) { // call the appropriate pointer type handler switch (event.pointertype) { case 'mouse': process_pointer_mouse(event); break; case 'pen': process_pointer_pen(event); break; case 'touch': process_pointer_touch(event); break; default: console.log(`pointertype ${event.pointertype} is not su
ported`); } }, false); specifications specification status comment pointer eventsthe definition of 'pointertype' in that specification.
PointerEvent - Web APIs
note: it's im
portant to note that in many cases, both pointer and mouse events get sent (in order to let non-pointer-specific code still interact with the user).
... pointerenter this event is fired when a pointing device is moved into the hit test boundaries of an element or one of its descendants, including as a result of a pointerdown event from a device that does not sup
port hover (see pointerdown).
... pointerout this event is fired for several reasons including: pointing device is moved out of the hit test boundaries of an element; firing the pointerup event for a device that does not sup
port hover (see pointerup); after firing the pointercancel event (see pointercancel); when a pen stylus leaves the hover range detectable by the digitizer.
Using Pointer Events - Web APIs
this application will only work on a browser that sup
ports pointer events.
...the source code is available on github and pull requests and bug re
ports are welcome.
... <canvas id="canvas" width="600" height="600" style="border:solid black 1px; touch-action:none"> your browser does not sup
port canvas element.
PublicKeyCredentialRequestOptions.extensions - Web APIs
as of june 2020, only appid is sup
ported by chrome and edge.
... firefox does not seem to sup
port any extension.
... also chrome doesn't plan to sup
port any other extension in future extension identifier type description appid usvstring fido appid.
PushEvent.PushEvent() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpushevent() constructor experimentalchrome full sup
port 42edge full sup
port 16disabled full sup
port 16disabled disabled from version 16: this feature is behind the enable service workers preference.
... full sup
port 17firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port noopera full sup
port 37safari no sup
port nowebview android no sup
port nochrome android full sup
port 42firefox android full sup
port 44 full sup
port 44 ...
... full sup
port 48notes notes push enabled by default.opera android full sup
port 37safari ios no sup
port nosamsung internet android full sup
port 4.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
PushEvent.data - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdata experimentalchrome full sup
port 57edge full sup
port 16disabled full sup
port 16disabled disabled from version 16: this feature is behind the enable service workers preference.
... full sup
port 17firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port noopera full sup
port 44safari no sup
port nowebview android no sup
port nochrome android full sup
port 57firefox android full sup
port 44 full sup
port 44 ...
... full sup
port 48notes notes push enabled by default.opera android full sup
port 43safari ios no sup
port nosamsung internet android full sup
port 4.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
PushManager.hasPermission() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internethaspermission experimentalchrome full sup
port 42edge full sup
port 16disabled full sup
port 16disabled disabled from version 16: this feature is behind the enable service workers preference.
... full sup
port 17firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port noopera full sup
port 29safari no sup
port nowebview android no sup
port nochrome android full sup
port 42firefox android full sup
port 48notes full sup
port 48notes note...
...s push enabled by default.opera android full sup
port 29safari ios no sup
port nosamsung internet android full sup
port 4.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
RTCDataChannel.close() - Web APIs
the trans
port layer deals with any buffered messages; the protocol layer decides whether to send them or discard them.
... the underlying data trans
port is closed.
... if the trans
port was closed with an error, the rtcdatachannel is sent a networkerror event.
RTCDataChannel - Web APIs
for example, after rtcdatachannel.close() was called but the underlying data trans
port might not have been closed yet.onerror the rtcdatachannel.onerror property is an eventhandler which specifies a function to be called when the error event is received.
...this event is sent to the channel when a message is received from the other peer.onopen the rtcdatachannel.onopen property is an eventhandler which specifies a function to be called when the open event is fired; this is a simple event which is sent when the data channel's underlying data trans
port—the link over which the rtcdatachannel's messages flow—is established or re-established.methodsalso inherits methods from: eventtargetclose()the rtcdatachannel.close() method closes the rtcdatachannel.
... close sent to the onclose event handler when the underlying data trans
port closes.
RTCIceCandidate.address - Web APIs
note: if
port is null — and
port is sup
ported by the user agent — passing the candidate to addicecandidate() will fail, throwing an operationerror exception.
... security notes it's im
portant to note here that although webrtc does not require the two peers on an rtcpeerconnection to know one another's true ip addresses, the address property on rtcicecandidate can expose more information about the source of the remote peer than the user expects.
...to do this, configure the ice agent's ice trans
port policy using rtcconfiguration, like this: var rtcconfig = { iceservers: [ { urls: "turn:myturn.server.ip", username: "username", credential: "password" } ], icetrans
portpolicy: "relay" } by setting rtcconfiguration.icetrans
portpolicy to "relay", any host candidates (candidates where the ip address is the peer's own ip address) are left out of the pool of candida...
RTCIceCandidate.tcpType - Web APIs
"active" the trans
port will try to open an outbound connection but won't receive inoming connection requests.
... "passive" the trans
port will receive incoming connection requests but won't try to open an outbound connection.
... "so" the trans
port will try to open a connection simultaneously with its peer.
RTCIceCandidatePair.local - Web APIs
the rtcicecandidatepair is returned by the rtcicetrans
port method getselectedcandidatepair().
... var candidatepair = pc.getsenders()[0].trans
port.trans
port.getselectedcandidatepair(); var localcandidate = candidatepair.local; the rtcicetrans
port is found by getting the list of rtcrtpsender objects for the rtcpeerconnection pc.
... in the first rtcrtpsender, we get the rtcdtlstrans
port over which the media data is being transmitted and finally, from that, the rtcicetrans
port.
RTCIceCandidatePair.remote - Web APIs
the rtcicecandidatepair is returned by the rtcicetrans
port method getselectedcandidatepair().
... var candidatepair = pc.getsenders()[0].trans
port.trans
port.getselectedcandidatepair(); var remotecandidate = candidatepair.remote; the rtcicetrans
port is found by getting the list of rtcrtpsender objects for the rtcpeerconnection pc.
... in the first rtcrtpsender, we get the rtcdtlstrans
port over which the media data is being transmitted and finally, from that, the rtcicetrans
port.
RTCIceCandidatePairStats.availableOutgoingBitrate - Web APIs
the value is re
ported in bits per second and is computed over a 1-second interval.
... the returned value is undefined in each of the following situations: the underlying implementation doesn't sup
port computing a sender-side estimate of the outgoing bit rate.
... note: the returned value is computed using a method similar—but not identical—to the trans
port independent application specific maximum (tias) described in rfc 3890: 6.2.
RTCIceCandidateStats - Web APIs
port optional the network
port number used by the candidate.
... protocol optional a string specifying the protocol (tcp or udp) used to transmit data on the
port.
... trans
portid optional a string uniquely identifiying the trans
port object that was inspected in order to obtain the rtctrans
portstats associated with the candidate correspondin to these statistics.
RTCIceComponent - Web APIs
values "rtp" identifies an ice trans
port which is being used for the real-time trans
port protocol (rtp), or for rtp multiplexed with the rtp control protocol (rtcp).
... "rtcp" identifies an ice trans
port being used for rtcp, which is defined in rfc 3550, section 6.
... usage notes the rtcicecomponent type is used by the component property of rtcicecandidate and rtcicetrans
port objects.
RTCIceProtocol - Web APIs
the webrtc api's rtciceprotocol enumerated type provides a set of domstring values representing the names of the trans
port protocols ice candidates can use.
... values tcp the candidate, if selected, would use tcp as the trans
port protocol for its data.
... udp the candidate will use the udp trans
port protocol for its data.
RTCIceRole - Web APIs
the rtcicerole enumerated type lists the string values that identify whether a connection's ice agent is serving as the controlling agent or the controlled agent, as indicated by rtcicetrans
port.role.
... values "controlling" the rtcicetrans
port object is serving as the controlling agent.
... "controlled" the trans
port is the controlled agent.
RTCIceTcpCandidateType - Web APIs
values "active" the trans
port will try to open an outbound connection but won't receive inoming connection requests.
... "passive" the trans
port will receive incoming connection requests but won't try to open an outbound connection.
... "so" the trans
port will try to open a connection simultaneously with its peer.
RTCPeerConnection.sctp - Web APIs
the read-only sctp property on the rtcpeerconnection interface returns an rtcsctptrans
port describing the sctp trans
port over which sctp data is being sent and received.
... the sctp trans
port is used for transmitting and receiving data for any and all rtcdatachannels on the peer connection.
... syntax var sctp = rtcpeerconnection.sctp; value a rtcsctptrans
port object describing the sctp trans
port being used by the rtcpeerconnection for transmitting and receiving on its data channels, or null if sctp negotiation hasn't happened.
RTCPeerConnection.setRemoteDescription() - Web APIs
exceptions the following exceptions are re
ported to the rejection handler for the promise returned by setremotedescription(): invalidaccesserror the content of the description is invalid.
... operationerror any errors that occur which don't match the others specifeid here are re
ported as operationerror.
... rtcerror an rtcerror with the errordetail set to sdp-syntax-error is re
ported if the sdp specified by rtcsessiondescription.sdp.
RTCRtpSender.getStats() - Web APIs
the rtcrtpsender method getstats() asynchronously requests an rtcstatsre
port object which provides statistics about outgoing traffic on the rtcpeerconnection which owns the sender, returning a promise which is fulfilled when the results are available.
...the promise's fulfillment handler receives as a parameter a rtcstatsre
port object containing the collected statistics.
... the returned rtcstatsre
port accumulates the statistics for all of the streams being sent using the rtcrtpsender, as well as the statistics for any dependencies those streams have.
SVGAElement.target - Web APIs
the svgaelement.target read-only property of svgaelement returns an svganimatedstring object that specifies the
portion of a target window, frame, pane into which a document is to be opened when a link is activated.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettargetchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie full sup
port 9opera full sup
port yessafari full sup
port yeswebview android full...
... sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port ...
SVGAnimatedString.animVal - Web APIs
internet explorer 9 sup
ports script-based svg animation but it does not sup
port declarative-based svg animation.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetanimvalchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie no sup
port noopera full sup
port yessafari full sup
port yeswebview android full ...
...sup
port yeschrome android no sup
port nofirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
port ...
SVGImageElement.decoding - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdecoding experimentalchrome full sup
port 65edge full sup
port ≤79firefox ?
... webview android full sup
port 65chrome android full sup
port 65firefox android ?
... samsung internet android full sup
port 9.0legend full sup
port full sup
port compatibility unknown compatibility unknownexperimental.
SVGLength - Web APIs
exceptions: a domexception with code not_sup
ported_err is raised if unittype is svg_lengthtype_unknown or not a valid unit type constant (one of the other svg_lengthtype_* constants defined on this interface).
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvglengthchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGStylable - Web APIs
edge full sup
port ≤18firefox ?
... webview android no sup
port nochrome android ?
... legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknown ...
SVGTransformable - Web APIs
edge full sup
port ≤18firefox ?
... webview android no sup
port nochrome android ?
... legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknown ...
SVGURIReference - Web APIs
" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgurireference</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties svgurireference.href read only an svganimatedstring that represents the value of the href attribute, and, on elements that are defined to sup
port it, the deprecated xlink:href attribute.
... on getting href, an svganimatedstring object is returned that reflects the href attribute, and if the element is defined to sup
port the deprecated xlink:href attribute, additionally reflects that deprecated attribute.
... candidate recommendation replaced the deprecated xlink:href attribute reference by the href attribute and made the prior only be reflected where it's defined to be sup
ported.
ScreenOrientation.lock() - Web APIs
one of the following: "any" "natural" "landscape" "
portrait" "
portrait-primary" "
portrait-secondary" "landscape-primary" "landscape-secondary" return value a promise.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetlockchrome full sup
port 38edge full sup
port 79firefox full sup
port 43ie no sup
port noopera full sup
port 25safari no sup
port nowebview android full suppor...
...t 38chrome android full sup
port 38firefox android full sup
port 43opera android full sup
port 25safari ios no sup
port nosamsung internet android full sup
port 3.0legend full sup
port full sup
port no sup
port no sup
port ...
ScreenOrientation.type - Web APIs
the type read-only property of the screenorientation interface returns the document's current orientation type, one of "
portrait-primary", "
portrait-secondary", "landscape-primary", or "landscape-secondary".
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettypechrome full sup
port 38edge full sup
port 79firefox full sup
port 43ie no sup
port noopera full sup
port 25safari no sup
port nowebview android full suppor...
...t 38chrome android full sup
port 38firefox android full sup
port 43opera android full sup
port 25safari ios no sup
port nosamsung internet android full sup
port 3.0legend full sup
port full sup
port no sup
port no sup
port ...
Selection.extend() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetextend experimentalchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie no sup
port noopera full sup
port yessafari full sup
port yeswebview android no su...
...p
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yesoffset parameter is optional experimentalchrome full sup
port yesedge full sup
port ≤79firefox full sup
port 55ie no sup
port noopera full sup
port yessafari ...
... full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port 55opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
ServiceWorkerContainer.register() - Web APIs
navigator.serviceworker.register('/sw.js').then(function(registration) { console.log('service worker registration succeeded:', registration); }, /*catch*/ function(error) { console.log('service worker registration failed:', error); }); } else { console.log('service workers are not sup
ported.'); } the following code, if included in example.com/index.html, at the root of a site, would apply to exactly the same pages as the example above.
... if ('serviceworker' in navigator) { // declaring scope manually navigator.serviceworker.register('/sw.js', {scope: './'}).then(function(registration) { console.log('service worker registration succeeded:', registration); }, /*catch*/ function(error) { console.log('service worker registration failed:', error); }); } else { console.log('service workers are not sup
ported.'); } there is frequent confusion surrounding the meaning and use of scope.
... if ('serviceworker' in navigator) { // declaring scope manually navigator.serviceworker.register('/sw.js', {scope: '/product/'}).then(function(registration) { console.log('service worker registration succeeded:', registration); }, /*catch*/ function(error) { console.log('service worker registration failed:', error); }); } else { console.log('service workers are not sup
ported.'); } however, servers can remove this restriction by setting a service-worker-allowed header on the service worker script, and then you can specify a max scope for that service worker above the service worker's location.
ServiceWorkerMessageEvent.source - Web APIs
im
portant: in modern browsers, this property has been deprecated.
... syntax var mysource = serviceworkermessageeventinstance.source; value a serviceworker or message
port object.
... // set up a message channel to communicate with the sw var channel = new messagechannel(); channel.
port1.onmessage = function(e) { console.log(e.source); handlechannelmessage(e.data); } mysw = reg.active; mysw.postmessage('hello', [channel.
port2]); }); ...
ServiceWorkerMessageEvent - Web APIs
im
portant: in modern browsers, this interface has been deprecated.
... serviceworkermessageevent.
ports read only returns an array of message
port objects.
... // set up a message channel to communicate with the sw var channel = new messagechannel(); channel.
port1.onmessage = function(e) { console.log(e); handlechannelmessage(e.data); } mysw = reg.active; mysw.postmessage('hello', [channel.
port2]); }); ...
ServiceWorkerRegistration.navigationPreload - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnavigationpreload experimentalchrome full sup
port 59edge full sup
port 17 full sup
port 17 full sup
port 16disabled disabled from version 16: this feature is behind the enable service workers preference.firefox full sup
port 44notes ...
... full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port noopera full sup
port 46safari full sup
port 11.1webview android full sup
port 59chrome android full sup
port 59firefox android full sup
port 44opera android full sup
port 43safari ios full sup
port 11.3samsung internet android full sup
port ...
... 4.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
SharedWorkerGlobalScope: connect event - Web APIs
bubbles no cancelable no interface messageevent event handler property sharedworkerglobalscope.onconnect examples this example shows a shared worker file — when a connection to the worker occurs from a main thread via a message
port, the onconnect event handler fires.
... the connecting
port can be referenced through the event object's
ports parameter; this reference can have an onmessage handler attached to it to handle messages coming in through the
port, and its postmessage() method can be used to send messages back to the main thread using the worker.
... self.onconnect = function(e) { var
port = e.
ports[0];
port.onmessage = function(e) { var workerresult = 'result: ' + (e.data[0] * e.data[1]);
port.postmessage(workerresult); }
port.start(); } for a complete running example, see our basic shared worker example (run shared worker.) addeventlistener equivalent you could also set up an event handler using the addeventlistener() method: self.addeventlistener('connect', function(e) { var
port = e.
ports[0];
port.onmessage = function(e) { var workerresult = 'result: ' + (e.data[0] * e.data[1]);
port.postmessage(workerresult); } }); specifications specification status html living standardthe definition of 'connect event' in that specification.
SharedWorkerGlobalScope - Web APIs
sharedworkerglobalscope.onconnect is an eventhandler representing the code to be called when the connect event is raised — that is, when a message
port connection is opened between the associated sharedworker and the main thread.
... workerglobalscope.im
portscripts() im
ports one or more scripts into the worker's scope.
...for example: im
portscripts('foo.js', 'bar.js'); implemented from other places windowbase64.atob() decodes a string of data which has been encoded using base-64 encoding.
SpeechRecognitionError.error - Web APIs
service-not-allowed the user agent disallowed the requested speech recognition service, either because the user agent doesn't sup
port it or because of reasons of security, privacy or user preference.
... bad-grammar there was an error in the speech recognition grammar or semantic tags, or the chosen grammar format or semantic tag format was unsup
ported.
... language-not-sup
ported the language was not sup
ported.
SpeechRecognitionErrorEvent.error - Web APIs
service-not-allowed the user agent disallowed the requested speech recognition service, either because the user agent doesn't sup
port it or because of reasons of security, privacy or user preference.
... bad-grammar there was an error in the speech recognition grammar or semantic tags, or the chosen grammar format or semantic tag format was unsup
ported.
... language-not-sup
ported the language was not sup
ported.
StereoPannerNode.StereoPannerNode() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetstereopannernode() constructorchrome full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port ...
... 42safari no sup
port nowebview android full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.chrome android full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.firefox android full sup
port 53opera android full sup
port 42safari ios no sup
port nosamsung internet android full sup
port ...
... 6.0notes full sup
port 6.0notes notes before samsung internet 7.0, the default values were not sup
ported.legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
SubtleCrypto.encrypt() - Web APIs
sup
ported algorithms the web crypto api provides four algorithms that sup
port the encrypt() and decrypt() operations.
...the web crypto api sup
ports three different aes modes: ctr (counter mode) cbc (cipher block chaining) gcm (galois/counter mode) it's strongly recommended to use authenticated encryption, which includes checks that the ciphertext has not been modified by an attacker.
..."aes-ctr", counter, length: 64 }, key, encoded ); } let iv = new uint8array(16); let key = new uint8array(16); let data = new uint8array(12345); //crypto functions are wrapped in promises so we have to use await and make sure the function that //contains this code is an async function //encrypt function wants a cryptokey object const key_encoded = await crypto.subtle.im
portkey( "raw", key.buffer, 'aes-ctr' , false, ["encrypt", "decrypt"]); const encrypted_content = await window.crypto.subtle.encrypt( { name: "aes-ctr", counter: iv, length: 128 }, key_encoded, data ); //uint8array console.log(encrypted_content); aes-cbc this code fetches the contents of a text box, encodes it for encryption, and encrypts it using aes in...
SubtleCrypto.sign() - Web APIs
sup
ported algorithms the web crypto api provides four algorithms that can be used for signing and signature verification.
...the choice of digest algorithm is passed into the generatekey() or im
portkey() functions.
... the digest algorithm to use is specified in the hmackeygenparams object that you pass into generatekey(), or the hmacim
portparams object that you pass into im
portkey().
Touch - Web APIs
this may also be the case for radiusx and radiusy; if the hardware re
ports only a single point, these values will be 1.
... touch.clientx read only returns the x coordinate of the touch point relative to the left edge of the browser view
port, not including any scroll offset.
... touch.clienty read only returns the y coordinate of the touch point relative to the top edge of the browser view
port, not including any scroll offset.
TouchEvent - Web APIs
the event can describe one or more points of contact with the screen and includes sup
port for detecting movement, addition and removal of contact points, and so forth.
... the user has placed more touch points on the screen than can be sup
ported, in which case the earliest touch in the touchlist gets canceled.
... using with addeventlistener() and preventdefault() it's im
portant to note that in many cases, both touch and mouse events get sent (in order to let non-touch-specific code still interact with the user).
URL.createObjectURL() - Web APIs
this is no longer necessary, and browsers are removing sup
port for doing this.
... im
portant: if you still have code that relies on createobjecturl() to attach streams to media elements, you need to update your code to simply set srcobject to the mediastream directly.
... older versions of this specification used createobjecturl() for mediastream objects; this is no longer sup
ported.
URLUtilsReadOnly.hash - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internethash experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 38 full sup
port 38 no sup
port 3.5 — 38notes notes before firefox 38, firefox returned the hash percent encoded.
... this has been fixed to match the spec.ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android full sup
port 38 full sup
port 38 no sup
port 4 — 38notes notes before firefox 38, firefox returned the hash percent encoded.
... this has been fixed to match the spec.opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
URLUtilsReadOnly.host - Web APIs
the urlutilsreadonly.host read-only property returns a domstring containing the host, that is the hostname, a ':', and the
port of the url.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internethost experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 3.5ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android full sup
port 4opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
URLUtilsReadOnly.origin - Web APIs
the urlutilsreadonly.origin read-only property is a domstring containing the unicode serialization of the origin of the represented url, that is, for http and https, the scheme followed by '://', followed by the domain, followed by ':', followed by the
port (the default
port, 80 and 443 respectively, if explicitely specified).
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetorigin experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 29ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android full sup
port 29opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
USBDevice - Web APIs
usbdevice.usbversionmajor read only one of three properties that declare the usb protocol version sup
ported by the device.
... usbdevice.usbversionminor read only one of three properties that declare the usb protocol version sup
ported by the device.
... usbdevice.usbversionsubminor read only one of three properties that declare the usb protocol version sup
ported by the device.
WaveShaperNode.WaveShaperNode() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetwaveshapernode() constructorchrome full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port ...
... webview android full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.chrome android full sup
port 55notes full sup
port 55notes notes before chrome 59, the default values were not sup
ported.firefox android full sup
port 53opera android full sup
port 42safari ios ?
... samsung internet android full sup
port 6.0notes full sup
port 6.0notes notes before samsung internet 7.0, the default values were not sup
ported.legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownsee implementation notes.see implementation notes.
WebGLRenderingContext.depthRange() - Web APIs
the webglrenderingcontext.depthrange() method of the webgl api specifies the depth range mapping from normalized device coordinates to window or view
port coordinates.
... syntax void gl.depthrange(znear, zfar); parameters znear a glclampf specifying the mapping of the near clipping plane to window or view
port coordinates.
... zfar a glclampf specifying the mapping of the far clipping plane to window or view
port coordinates.
WebGLRenderingContext.getParameter() - Web APIs
gl.max_fragment_uniform_vectors glint gl.max_renderbuffer_size glint gl.max_texture_image_units glint gl.max_texture_size glint gl.max_varying_vectors glint gl.max_vertex_attribs glint gl.max_vertex_texture_image_units glint gl.max_vertex_uniform_vectors glint gl.max_view
port_dims int32array (with 2 elements) gl.pack_alignment glint gl.polygon_offset_factor glfloat gl.polygon_offset_fill glboolean gl.polygon_offset_units glfloat gl.red_bits glint gl.renderbuffer_binding webglrenderbuffer or null see bindrenderbuffer.
...ng_2d webgltexture or null gl.texture_binding_cube_map webgltexture or null gl.unpack_alignment glint gl.unpack_colorspace_conversion_webgl glenum gl.unpack_flip_y_webgl glboolean gl.unpack_premultiply_alpha_webgl glboolean gl.vendor domstring gl.version domstring gl.view
port int32array (with 4 elements) webgl 2 you can query the following pname parameters when using a webgl2renderingcontext.
... examples gl.getparameter(gl.dither); gl.getparameter(gl.version); gl.getparameter(gl.view
port); specifications specification status comment webgl 1.0the definition of 'getparameter' in that specification.
A basic 2D WebGL animation example - Web APIs
your browser doesn't sup
port canvas!
... function animatescene() { gl.view
port(0, 0, glcanvas.width, glcanvas.height); gl.clearcolor(0.8, 0.9, 1.0, 1.0); gl.clear(gl.color_buffer_bit); let radians = currentangle * math.pi / 180.0; currentrotation[0] = math.sin(radians); currentrotation[1] = math.cos(radians); gl.useprogram(shaderprogram); uscalingfactor = gl.getuniformlocation(shaderprogram, "uscalingfactor"); uglobalcolor = gl.getuniformlocat...
...in this case, we set the view
port based on the size of the <canvas>, call clearcolor() to set the color to use when clearing content, then we clear the buffer with clear().
Basic scissoring - Web APIs
this is a good op
portunity to talk about the difference between pixels and fragments.
... <p>result of of scissoring.</p> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> body { text-align : center; } canvas { display : block; width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } window.addeventlistener("load", function setupwebgl (evt) { "use strict" window.removeeventlistener(evt.type, setupwebgl, false); var paragraph = document.queryselector("p"); var canvas ...
..." + "your browser or device may not sup
port webgl."; return; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); // enable scissoring operation and define the position and // size of the scissoring area.
Clearing by clicking - Web APIs
<p>a very simple webgl program that still shows some color and user interaction.</p> <p>you can repeatedly click the empty canvas or the button below to change color.</p> <canvas id="canvas-view">your browser does not seem to sup
port html5 canvas.</canvas> <button id="color-switcher">press here to switch color</button> body { text-align : center; } canvas { display : block; width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } button { display : inline-block; font-size : inherit; margin : auto; padding : 0.6em; } window.addeventlistener("load", fu...
... // otherwise, initialize the drawing buffer (the view
port).
... if (!gl) { gl = canvas.getcontext("webgl") || canvas.getcontext("experimental-webgl"); if (!gl) { alert("failed to get webgl context.\n" + "your browser or device may not sup
port webgl."); return; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); } // get a random color value using a helper function.
Color masking - Web APIs
this is an im
portant aspect of the webgl state machine.
... <p>tinting the displayed colors with color masking.</p> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> <button id="red-toggle">on</button> <button id="green-toggle">on</button> <button id="blue-toggle">on</button> body { text-align : center; } canvas { display : block; width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } button { display : inline-block; font-family : serif; font-size : inherit; fo...
...stener("load", function setupanimation (evt) { "use strict" window.removeeventlistener(evt.type, setupanimation, false); var canvas = document.queryselector("canvas"); var gl = canvas.getcontext("webgl") || canvas.getcontext("experimental-webgl"); if (!gl) { document.queryselector("p").innerhtml = "failed to get webgl context." + "your browser or device may not sup
port webgl."; return; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); var timer = setinterval(drawanimation, 1000); var mask = [true, true, true]; var redtoggle = document.queryselector("#red-toggle"), greentoggle = document.queryselector("#green-toggle"), bluetoggle = document.queryselector("#blue-toggle"); redtoggle.addeventlistener("click", setcolor...
WebGL constants - Web APIs
ask 0x0b93 stencil_writemask 0x0b98 stencil_back_func 0x8800 stencil_back_fail 0x8801 stencil_back_pass_depth_fail 0x8802 stencil_back_pass_depth_pass 0x8803 stencil_back_ref 0x8ca3 stencil_back_value_mask 0x8ca4 stencil_back_writemask 0x8ca5 view
port 0x0ba2 returns an int32array with four elements for the current view
port dimensions.
... color_clear_value 0x0c22 color_writemask 0x0c23 unpack_alignment 0x0cf5 pack_alignment 0x0d05 max_texture_size 0x0d33 max_view
port_dims 0x0d3a subpixel_bits 0x0d50 red_bits 0x0d52 green_bits 0x0d53 blue_bits 0x0d54 alpha_bits 0x0d55 depth_bits 0x0d56 stencil_bits 0x0d57 polygon_offset_units 0x2a00 polygon_offset_factor 0x8038 texture_binding_2d 0x8069 sample_buffers 0x80a8 samples 0x8...
...epth_attachment 0x8d00 stencil_attachment 0x8d20 depth_stencil_attachment 0x821a none 0 framebuffer_complete 0x8cd5 framebuffer_incomplete_attachment 0x8cd6 framebuffer_incomplete_missing_attachment 0x8cd7 framebuffer_incomplete_dimensions 0x8cd9 framebuffer_unsup
ported 0x8cdd framebuffer_binding 0x8ca6 renderbuffer_binding 0x8ca7 max_renderbuffer_size 0x84e8 invalid_framebuffer_operation 0x0506 pixel storage modes constants passed to webglrenderingcontext.pixelstorei().
Getting started with WebGL - Web APIs
next » webgl enables web content to use an api based on opengl es 2.0 to perform 2d and 3d rendering in an html canvas in browsers that sup
port it without the use of plug-ins.
...your browser or machine may not sup
port it."); return; } // set clear color to black, fully opaque gl.clearcolor(0.0, 0.0, 0.0, 1.0); // clear the color buffer with specified clear color gl.clear(gl.color_buffer_bit); } window.onload = main; the first thing we do here is obtain a reference to the canvas, assigning it to a variable named canvas.
...if the browser does not sup
port webgl, getcontext() will return null in which case we display a message to the user and exit.
A simple RTCDataChannel sample - Web APIs
it's im
portant to keep in mind that each end of the channel has its own rtcdatachannel object.
...this method accepts, optionally, an object with constraints to be met for the connection to meet your needs, such as whether the connection should sup
port audio, video, or both.
...this configuration lies somewhere in the union of options that both peers can sup
port.
WebXR application life cycle - Web APIs
make sure the webxr api is available; if navigator.xr is undefined, you can assume the user's browser and/or device doesn't sup
port webxr.
... if it's not sup
ported, disable any user interface used to activate xr features and abort any attempts to enter xr mode.
... call navigator.xr.issessionsup
ported(), specifying the webxr experience mode you want to provide: inline, immersive-vr, or immersive-ar, in order to determine whether or not the type of session you wish to provide is available.
Basic concepts behind Web Audio API - Web APIs
several sources — with different types of channel layout — are sup
ported even within a single context.
...any discrete channel structure is sup
ported, including mono, stereo, quad, 5.1, and so on.
... created from raw pcm data (the audio context has methods to decode sup
ported audio formats).
Web Audio API best practices - Web APIs
media elements have streaming sup
port out of the box.
... cross browser & legacy sup
port the web audio api specification is constantly evolving and like most things on the web, there are some issues with it working consistently across browsers.
...it has cross-browser sup
port and, provides a useful subset of functionality.
Window: beforeunload event - Web APIs
however note that not all browsers sup
port this method, and some instead require the event handler to implement one of two legacy methods: assigning a string to the event's returnvalue property returning a string from the event handler.
...however, this is deprecated and no longer sup
ported in most browsers.
...however, this is not sup
ported by all browsers.
window.cancelIdleCallback() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcancelidlecallback experimentalchrome full sup
port 47edge full sup
port 79firefox full sup
port 55 full sup
port 55 full sup
port 53disabled disabled from version 53: this feature is behind the dom.requestidlecallback.enabled preference (needs t...
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port yessafari no sup
port nowebview android full sup
port 47chrome android full sup
port 47firefox android full sup
port 55 full sup
port 55 full sup
port 53disabled disabled from version 53: this feature is behind the dom.requestidlecallback.enabled preference (needs to be set to true).
... to change preferences in firefox, visit about:config.opera android full sup
port yessafari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
Window.innerHeight - Web APIs
the value of innerheight is taken from the height of the window's layout view
port.
... syntax let intview
portheight = window.innerheight; value an integer value indicating the window's layout view
port height in pixels.
... example assuming a frameset var intframeheight = window.innerheight; // or var intframeheight = self.innerheight; // will return the height of the frame view
port within the frameset var intframesetheight = parent.innerheight; // will return the height of the view
port of the closest frameset var intouterframesetheight = top.innerheight; // will return the height of the view
port of the outermost frameset fixme: link to an interactive demo here to change the size of a window, see window.resizeby() and window.resizeto().
window.requestIdleCallback() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetrequestidlecallback experimentalchrome full sup
port 47edge full sup
port 79firefox full sup
port 55notes full sup
port 55notes notes enabled by default.
... no sup
port 53 — 55notes notes implemented but disabled by default.ie no sup
port noopera full sup
port 34safari no sup
port nowebview android full sup
port 47chrome android full sup
port 47firefox android full sup
port 55notes full sup
port 55notes notes enabled by default.
... no sup
port 53 — 55notes notes implemented but disabled by default.opera android full sup
port 34safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
Window.restore() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetrestorechrome no sup
port noedge no sup
port nofirefox no sup
port noie ?
... webview android no sup
port nochrome android no sup
port nofirefox android no sup
port noopera android ?
... samsung internet android no sup
port nolegend no sup
port no sup
port compatibility unknown compatibility unknown ...
Window.scroll() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 4opera full sup
port 3safari full sup
port 1webview android full sup
port...
... 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0scrolltooptions parameterchrome full sup
port 45edge full sup
port 79firefox full sup
port yesie no sup
port noopera full sup
port 32safari no sup
port ...
... nowebview android full sup
port 45chrome android full sup
port 45firefox android full sup
port yesopera android full sup
port 32safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
port ...
Window.scrollX - Web APIs
in more technical terms, scrollx returns the x coordinate of the left edge of the current view
port.
... if there is no view
port, the returned value is 0.
...additionally, older versions of internet explorer (< 9) do not sup
port either property and must be worked around by checking other non-standard properties.
WindowOrWorkerGlobalScope.setTimeout() - Web APIs
polyfill if you need to pass one or more arguments to your callback function, but need it to work in browsers which don't sup
port sending additional arguments using either settimeout() or setinterval() (e.g., internet explorer 9 and below), you can include this polyfill to enable the html5 standard arguments-passing functionality.
...one im
portant case to note is that the function or code snippet cannot be executed until the thread that called settimeout() has terminated.
... for example: function foo() { console.log('foo has been called'); } settimeout(foo, 0); console.log('after settimeout'); will write to the console: after settimeout foo has been called this is because even though settimeout was called with a delay of zero, it's placed on a queue and scheduled to run at the next op
portunity; not immediately.
WorkerGlobalScope - Web APIs
standard methods workerglobalscope.im
portscripts() im
ports one or more scripts into the worker's scope.
...for example: im
portscripts('foo.js', 'bar.js'); non-standard methods workerglobalscope.dump() allows you to write a message to stdout — i.e.
...for example, you could im
port another script into the worker and print out the contents of the worker scope's navigator object using the following two lines: im
portscripts('foo.js'); console.log(navigator); since the global scope of the worker script is effectively the global scope of the worker you are running (dedicatedworkerglobalscope or whatever) and all worker global scopes inherit methods, properties, etc.
WorkerNavigator.permissions - Web APIs
browser sup
port the compatibility table on this page is generated from structured data.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpermissions experimentalchrome full sup
port 43edge full sup
port ≤79firefox no sup
port noie ?
... opera full sup
port 30safari no sup
port nowebview android full sup
port 43chrome android full sup
port 43firefox android no sup
port noopera android full sup
port 30safari ios no sup
port nosamsung internet android full sup
port 4.0legend full sup
port full sup
port no sup
port no sup
port ...
WritableStreamDefaultWriter.ready - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetready experimentalchrome full sup
port 59edge full sup
port 16firefox no sup
port noie no sup
port noopera full sup
port 46safari ?
... webview android full sup
port 59chrome android full sup
port 59firefox android no sup
port noopera android full sup
port 43safari ios ?
... samsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknownexperimental.
XMLHttpRequest.sendAsBinary() - Web APIs
the send() method now sup
ports binary data and should now be used instead.
...you should instead simply use the send() method, which now sup
ports binary data in various forms.
... polyfill since sendasbinary() is an experimental feature, here is a polyfill for browsers that don't sup
port the sendasbinary() method but sup
port typed arrays.
XRSession - Web APIs
xrsession sup
ports both inline and immersive virtual and augmented reality modes.
...returns a promise which resolves with the xrreferencespace or xrboundedreferencespace which was requested, or throws a notsup
portederror if the requested space type isn't sup
ported by the device.
... const xr = navigator.xr; if (xr) { xr.requestsession("inline").then((xrsession) => { xrsession.requestreferencespace("local").then((xrreferencespace) => { xrsession.requestanimationframe((time, xrframe) => { let viewer = xrframe.getviewerpose(xrreferencespace); gl.bindframebuffer(xrwebgllayer.framebuffer); for (xrview of viewer.views) { let xrview
port = xrwebgllayer.getview
port(xrview); gl.view
port(xrview
port.x, xrview
port.y, xrview
port.width, xrview
port.height); } }); }); }); } else { /* webxr is not available */ } specifications specification status comment webxr device apithe definition of 'xrsession' in that specification.
XRView.transform - Web APIs
const modelviewmatrix = mat4.create(); const normalmatrix = mat4.create(); for (let view of pose.views) { let view
port = gllayer.getview
port(view); gl.view
port(view
port.x, view
port.y, view
port.width, view
port.height); for (let obj of world.objects) { mat4.multiply(modelviewmatrix, view.transform.inverse.matrix, obj.matrix); mat4.invert(normalmatrix, modelviewmatrix); mat4.transpose(normalmatrix, normalmatrix); obj.render(modelviewmatrix, normalmatrix); } } two matrices are created outsid...
...currently, webxr doesn't sup
port more than two views per pose, although room has been left to extend the specification to sup
port that in the future with some additions to the api.
... for each view, we obtain its view
port and pass that to webgl using gl.view
port().
XRViewerPose - Web APIs
this ensures that positions and orientations are re
ported using the expected relative coordinate system.
...by calling view
port() on the webgl context, specifying the xrview as input, you can get the view
port to use when rendering in order to draw the frame for that eye into the correct part of the drawing surface.
... let pose = frame.getviewerpose(xrreferencespace); if (pose) { let gllayer = xrsession.renderstate.baselayer; gl.bindframebuffer(gl.framebuffer, gllayer.framebuffer); gl.clearcolor(0, 0, 0, 1); gl.cleardepth(1); gl.clear(gl.color_buffer_bit, gl.depth_buffer_bit); for (let view of pose.views) { let view
port = gllayer.getview
port(view); gl.view
port(view
port.x, view
port.y, view
port.width, view
port.height); /* render the scene for the eye view.eye */ } } passing each view to getview
port() returns the webgl view
port to apply in order to cause the rendered output to be positioned correctly in the framebuffer for renderijng to the corresponding eye on the output device.
XRWebGLLayer.framebuffer - Web APIs
these differences cause the opaque framebuffer to behave more like the default webgl framebuffer: opaque framebuffers may sup
port anti-aliasing, even under webgl 1.0, which don't normally do so.
...calling checkframebufferstatus() on the webgl context from outside the animation frame callback causes the webgl framebuffer_unsup
ported error (0x8cdd) to be re
ported.
... note: the depth and stencil properties are not required to be sup
ported in order for a browser to be construed as having full webgl sup
port.
XRWebGLLayerInit.antialias - Web APIs
the boolean antialias property, if present and set to true in the xrwebgllayerinit object provided as the xrwebgllayer() constructor's layerinit parameter, requests that the new webgl rendering layer sup
port anti-aliasing.
... syntax let layerinit = { antialias: boolvalue }; let gllayer = new xrwebgllayer(xrsession, gl, layerinit); let gllayer = new xrwebgllayer(xrsession, gl, { antialias: boolvalue }); value a boolean value which can be set to true to request anti-aliasing sup
port in the new webgl rendering layer.
... example in this example, before creating a new xrwebgllayer to use for rendering, the value of a user preference from a configuration interface is obtained using a function called getpreferencevalue() to determine whether the user has enabled or disabled anti-aliasing sup
port; this is passed into the constructor.
Browser Differences - Web APIs
browser differences netscape 7.x (all platforms) and internet explorer 6 (windows) sup
port the w3c xslt 1.0 standard (http://www.w3.org/tr/xslt).
... ie 5.0 and 5.5 (both windows) sup
ported only the working draft of xslt, and thus are not compatible with xslt 1.0 stylesheets.
... netscape 6.x only partially sup
ported xslt 1.0.
Using the alert role - Accessibility
the alert role is used to communicate an im
portant and usually time-sensitive message to the user.
... fire an accessible alert event using the operating system's accessibility api if it sup
ports it.
... aria attributes used alert related aria techniques using the alertdialog role using the aria-invalid property compatibility tbd: add sup
port information for common ua and at product combinations additional resources aria best practices - alert role: http://www.w3.org/tr/wai-aria-practices/#alert ...
Using the link role - Accessibility
note: where possible, it is recommended that you use a native <a> element rather than the link role, as native elements are more widely sup
ported by older user agents and assistive technology.
... native <a> elements also sup
port keyboard and focus requirements by default, without need for additional customization.
... fire an accessible link event using the operating system's accessibility api if it sup
ports it.
Using the status role - Accessibility
the status role is a type of live region and a container whose content is advisory information for the user that is not im
portant enough to justify an alert, and is often presented as a status bar.
... fire an accessible status event using the operating system's accessibility api if it sup
ports it.
... <p role="status">your changes were automatically saved.</p> working examples: notes aria attributes used status related aria techniques alert role live region roles live region attributes compatibility the paciello group published some data on compatibility via their 2014 blog post: screen reader sup
port for aria live regions tbd: add updated sup
port information for common ua and at product combinations additional resources previous recommendations from wai-aria 1.0 (2014) for the status role ...
ARIA annotations - Accessibility
aria-details has been updated so that it can sup
port multiple ids — this makes sense, for example you can easily envisage having multiple comments relating to the same bit of text.
...nwards, 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 sup
port is currently not there.
...the annotations should just work once screenreader sup
port is added.
ARIA: alert role - Accessibility
description one of the five live region roles, the alert role is used to provide the user with im
portant, and usually time-sensitive, information, and often to tell the user an element has been dynamically updated.
... the most im
portant thing to know about the alert role is that it is for dynamic content.
... <p role="alert" style="display: none;">the alert will trigger when the element becomes visible.</p> while triggering an alert via css alone is possible, it is better to rely on javascript because it has more browser/screen reader sup
port and is often more appropriate as part of a larger user interaction such as inside an event handler or form validation.
ARIA: article role - Accessibility
articles are not considered a navigational landmark, but many assistive technologies that sup
port landmarks also sup
port a means to navigate among articles.
... they may also sup
port indication of nesting relationships within articles.
... keyboard interactions this role does not sup
port any specific keyboard interaction.
ARIA: Region role - Accessibility
screen readers use landmark roles to provide keyboard navigation to im
portant sections of a page.
... the region role should be reserved for sections of content sufficiently im
portant that users will likely want to navigate to the section easily and to have it listed in a summary of the page.
... working draft screen reader sup
port tbd ...
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 sup
ported by all major browsers, including firefox, safari, opera, chrome, and internet explorer, and many assistive technologies.
...see also live regions keyboard navigation often times developers overlook sup
port for the keyboard when they create custom widgets.
...in practice, this usually involves following the conventions sup
ported by similar widgets on the desktop, taking full advantage of the tab, enter, spacebar, and arrow keys.
::slotted() - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet::slottedchrome full sup
port 50edge full sup
port 79firefox full sup
port 63 full sup
port 63 no sup
port 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled ...
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 37safari full sup
port 10webview android full sup
port 50chrome android full sup
port 50firefox android full sup
port 63 full sup
port 63 no sup
port 59 — 63disabled disabled from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
... to change preferences in firefox, visit about:config.opera android full sup
port 37safari ios full sup
port 10samsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
portuser must explicitly enable this feature.user must explicitly enable this feature.
:checked - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:checkedchrome full sup
port 1notes full sup
port 1notes notes on macos, styling <option&rt; elements has no effect.edge full sup
port 12notes full sup
port 12notes notes on macos, styling <option&rt; elements has no effect.firefox full sup
port ...
... 1notes full sup
port 1notes notes from firefox 56, <option&rt; elements cannot be styled.notes on macos, styling <option&rt; elements has no effect.ie full sup
port 9opera full sup
port 9notes full sup
port 9notes notes on macos, styling <option&rt; elements has no effect.safari full sup
port 3.1notes full sup
port 3.1notes notes styling <option&rt; elements has no effect.webview android full sup
port 2chrome android full sup
port ...
... 18firefox android full sup
port 4notes full sup
port 4notes notes from firefox 56, <option&rt; elements cannot be styled.opera android full sup
port 10.1safari ios full sup
port 3.1notes full sup
port 3.1notes notes styling <option&rt; elements has no effect.samsung internet android full sup
port 1.0legend full sup
port full sup
portsee implementation notes.see implementation notes.
:host() - CSS: Cascading Style Sheets
browser compatibility desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:host()chrome full sup
port 54edge full sup
port 79firefox full sup
port 63 full sup
port 63 no sup
port 61 — 63disabled disabled from version 61 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled ...
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 41safari full sup
port 10notes full sup
port 10notes notes certain css selectors do not work (:host > .local-child) and styling slotted content (::slotted) is buggy.webview android full sup
port 54chrome android full sup
port 54firefox android full sup
port 63 full sup
port 63 no sup
port 61 — 6...
...to change preferences in firefox, visit about:config.opera android full sup
port 41safari ios full sup
port 10notes full sup
port 10notes notes certain css selectors do not work (:host > .local-child) and styling slotted content (::slotted) is buggy.samsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
portsee implement...
:host - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:hostchrome full sup
port 54edge full sup
port 79firefox full sup
port 63 full sup
port 63 no sup
port 61 — 63disabled disabled from version 61 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled ...
...to change preferences in firefox, visit about:config.ie no sup
port noopera full sup
port 41safari full sup
port 10webview android full sup
port 54chrome android full sup
port 54firefox android full sup
port 63 full sup
port 63 no sup
port 61 — 63disabled disabled from version 61 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
... to change preferences in firefox, visit about:config.opera android full sup
port 41safari ios full sup
port 10samsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
portuser must explicitly enable this feature.user must explicitly enable this feature.
:read-only - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:read-onlychrome full sup
port 1edge full sup
port 13firefox full sup
port 78 full sup
port 78 full sup
port 1.5prefixed prefixed implemented with the vendor prefix: -moz-ie no sup
port ...
... noopera full sup
port 9safari full sup
port 4webview android full sup
port ≤37chrome android full sup
port 18firefox android full sup
port 4prefixed full sup
port 4prefixed prefixed implemented with the vendor prefix: -moz-opera android full sup
port 10.1safari ios full sup
port 3.2samsung internet android full sup
port 1.0legend full sup
port full...
... sup
port no sup
port no sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
:read-write - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:read-writechrome full sup
port 1edge full sup
port 13firefox full sup
port 78 full sup
port 78 full sup
port 1.5prefixed prefixed implemented with the vendor prefix: -moz-ie no sup
port ...
... noopera full sup
port 9safari full sup
port 4webview android full sup
port ≤37chrome android full sup
port 18firefox android full sup
port 4prefixed full sup
port 4prefixed prefixed implemented with the vendor prefix: -moz-opera android full sup
port 10.1safari ios full sup
port 3.2samsung internet android full sup
port 1.0legend full sup
port full...
... sup
port no sup
port no sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
@charset - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet@charsetchrome full sup
port 2edge full sup
port 12firefox full sup
port 1.5notes full sup
port 1.5notes notes firefox 1 sup
ported an invalid syntax where the character encoding is not between single or double quotes.ie full sup
port ...
... 5.5notes full sup
port 5.5notes notes from internet explorer 5.5 to ie 7 (inclusive), internet explorer sup
ported an invalid syntax where the character encoding is not between single or double quotes.opera full sup
port 9safari full sup
port 4webview android full sup
port 2chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 4samsung internet android full...
... sup
port 1.0legend full sup
port full sup
portsee implementation notes.see implementation notes.
@font-face - CSS: Cascading Style Sheets
since firefox 61 (and in other modern browsers) this also accepts two values to specify a range that is sup
ported by a font-face, for example font-stretch: 50% 200%; font-style a font-style value.
... since firefox 61 (and in other modern browsers) this also accepts two values to specify a range that is sup
ported by a font-face, for example font-style: oblique 20deg 50deg; font-weight a font-weight value.
... since firefox 61 (and in other modern browsers) this also accepts two values to specify a range that is sup
ported by a font-face, for example font-weight: 100 400; font-variant a font-variant value.
height - CSS: Cascading Style Sheets
the height css media feature can be used to apply styles based on the height of the view
port (or the page box, for paged media).
... syntax the height feature is specified as a <length> value representing the view
port height.
... examples html <div>watch this element as you resize your view
port's height.</div> css /* exact height */ @media (height: 360px) { div { color: red; } } /* minimum height */ @media (min-height: 25rem) { div { background: yellow; } } /* maximum height */ @media (max-height: 40rem) { div { border: 2px solid blue; } } result specifications specification status comment media queries level 4the definition of 'height' in that specification.
width - CSS: Cascading Style Sheets
the width css media feature can be used to test the width of the view
port (or the page box, for paged media).
... syntax the width feature is specified as a <length> value representing the view
port width.
... examples html <div>watch this element as you resize your view
port's width.</div> css /* exact width */ @media (width: 360px) { div { color: red; } } /* minimum width */ @media (min-width: 35rem) { div { background: yellow; } } /* maximum width */ @media (max-width: 50rem) { div { border: 2px solid blue; } } result specifications specification status comment media queries level 4the definition of 'width' in that specification.
size - CSS: Cascading Style Sheets
syntax /* keyword values for scalable size */ size: auto; size:
portrait; size: landscape; /* <length> values */ /* 1 value: height = width */ size: 6in; /* 2 values: width then height */ size: 4in 6in; /* keyword values for absolute size */ size: a4; size: b5; size: jis-b4; size: letter; /* mixing size and orientation */ size: a4
portrait; values auto the user agent decides the size of the page.
...
portrait the content of the page is displayed in
portrait mode (i.e.
... formal definition related at-rule@pageinitial valueautocomputed valueas specified, but with relative lengths converted into absolute lengths formal syntax <length>{1,2} | auto | [ <page-size> | [
portrait | landscape ] ] examples specifying size and orientation @page { size: 4in 6in landscape; } nesting inside a @media rule @media print { @page { size: 50mm 150mm; } } specifications specification status comment css paged media module level 3the definition of 'size' in that specification.
Spanning and Balancing Columns - CSS: Cascading Style Sheets
note the spanning and balancing functionality covered in this guide is not as well sup
ported across browsers as the functionality covered in the previous two sections in this guide.
... note that column balancing is not sup
ported by all browsers.
... check that you are getting the sort of effect that you expect in the browsers you sup
port.
Using multi-column layouts - CSS: Cascading Style Sheets
all html, css and dom functionality is sup
ported within columns, as are editing and printing.
...excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum </div> css #column_gap { column-count: 5; column-gap: 2em; } result graceful degradation the column properties will just be ignored by non-columns-sup
porting browsers.
... therefore it's relatively easy to create a layout that will display in a single column in those browsers and use multiple columns in sup
porting browsers.
CSS Grid Layout and Accessibility - CSS: Cascading Style Sheets
this is what is meant by visual versus logical reordering, logical ordering is im
portant for the meaning and structure of our document, and we should make sure that we preserve that structure.
... given that interoperable sup
port for display: contents is limited and we do not yet have subgrids, there is a definite temptation when developing a site using css grid layout to flatten out the markup, to remove semantic elements in order to make it simpler to create a layout.
...adrian roselli has also posted regarding tab order in various browsers – although this was prior to grid sup
port being fully implemented in firefox.
Using CSS gradients - CSS: Cascading Style Sheets
we'll start by introducing linear gradients, then introduce features that are sup
ported in all gradient types using linear gradients as the example, then move on to radial, conic and repeating gradients using linear gradients a linear gradient creates a band of colors that progress in a straight line.
... hint can make: <div class="colorhint-gradient"></div> <div class="regular-progression"></div> div { width: 120px; height: 120px; float: left; margin-right: 10px; box-sizing: border-box; } .colorhint-gradient { background: linear-gradient(to top, black, 20%, cyan); } .regular-progression { background: linear-gradient(to top, black, cyan); } overlaying gradients gradients sup
port transparency, so you can stack multiple backgrounds to achieve some pretty fancy effects.
... center of the conic gradient with keyterms, percentage, or absolute lengths, with the keyword "at" <div class="conic-gradient"></div> div { width: 120px; height: 120px; } .conic-gradient { background: conic-gradient(from 45deg, red, orange, yellow, green, blue, purple); } using repeating gradients the linear-gradient(), radial-gradient(), and conic-gradient() functions don't sup
port automatically repeated color stops.
The stacking context - CSS: Cascading Style Sheets
the stacking context is a three-dimensional conceptualization of html elements along an imaginary z-axis relative to the user, who is assumed to be facing the view
port or the webpage.
...im
portantly, the z-index values of its child stacking contexts only have meaning in this parent.
...the hierarchy of stacking contexts is organized as follows: root div #1 div #2 div #3 div #4 div #5 div #6 it is im
portant to note that div #4, div #5 and div #6 are children of div #3, so stacking of those elements is completely resolved within div#3.
Overview of CSS Shapes - CSS: Cascading Style Sheets
if you do not have shapes sup
port in the browser, the user will see content flowing around the sides of a rectangular box as before.
... if they do have shapes sup
port then the visual display is enhanced.
... developer tools for shapes along with css shapes sup
port in the browser, firefox are shipping a shape path editor in the firefox devtools.
Layout and the containing block - CSS: Cascading Style Sheets
if the position property is fixed, the containing block is established by the view
port (in the case of continuous media) or the page area (in the case of paged media).
...it has the dimensions of the view
port (for continuous media) or the page area (for paged media).
...h: 50%; /* == (400px + 20px + 20px) * .5 = 220px */ height: 25%; /* == (160px + 30px + 30px) * .25 = 55px */ margin: 5%; /* == (400px + 20px + 20px) * .05 = 22px */ padding: 5%; /* == (400px + 20px + 20px) * .05 = 22px */ background: cyan; } example 4 in this example, the paragraph's position is fixed, so its containing block is the initial containing block (on screens, the view
port).
Grid wrapper - CSS: Cascading Style Sheets
using a numeric unit (pixels, ems, rems) will create a fixed maximum size for the central wrapper, whereas using percentage values or view
port units will mean this wrapper grows or shrinks in response to its context.
... useful fallbacks or alternative methods when using this recipe at page level it can be useful to set a max-width along with left and right auto margins to center the content horizontally: .grid { max-width: 1200px; margin: 0 auto; // horizontally centers the container } /* remove the max-width and margins if the browser sup
ports grid */ @sup
ports (display: grid) { .grid { display: grid; /* other grid code goes here */ max-width: none; margin: 0; } } to “break out” a full-width item to the edge of the view
port you can then use this trick (courtesy of una kravets): .item { width: 100vw; margin-left: 50%; transform: translate3d(-50%, 0, 0); } this gives a good approximation of the layout, o...
... accessibility concerns although grid enables us to position items anwhere (within reason), it is im
portant when placing items using css grid that your underlying markup follows a logical order (see css grid layout and accessibility for more details).
Media queries - CSS: Cascading Style Sheets
for example, a media query can shrink the font size on small devices, increase the padding between paragraphs when a page is viewed in
portrait mode, or bump up the size of buttons on touchscreens.
...use @im
port to conditionally apply an entire style sheet.
... reference at-rules @im
port @media guides using media queries introduces media queries, their syntax, and the operators and media features which are used to construct media query expressions.
Mozilla CSS extensions - CSS: Cascading Style Sheets
mozilla applications such as firefox sup
port a number of special mozilla extensions to css, including properties, values, pseudo-elements and pseudo-classes, at-rules, and media queries.
...ip-box overflow-clip-box-block overflow-clip-box-inline s–z -moz-stack-sizing :-moz-system-metric(images-in-menus) :-moz-system-metric(mac-graphite-theme) :-moz-system-metric(scrollbar-end-backward) :-moz-system-metric(scrollbar-end-forward) :-moz-system-metric(scrollbar-start-backward) :-moz-system-metric(scrollbar-start-forward) :-moz-system-metric(scrollbar-thumb-pro
portional) :-moz-system-metric(touch-enabled) :-moz-system-metric(windows-default-theme) -moz-user-focus -moz-user-input -moz-user-modify -moz-window-dragging -moz-window-shadow formerly proprietary properties that are now standard note: to maximize the compatibility of your css, you should use the unprefixed standard properties instead of the prefixed ones listed below.
...moz-table-row-group :-moz-tree-cell :-moz-tree-cell-text :-moz-tree-cell-text(hover) :-moz-tree-checkbox :-moz-tree-column :-moz-tree-drop-feedback :-moz-tree-image :-moz-tree-indentation :-moz-tree-line :-moz-tree-progressmeter :-moz-tree-row :-moz-tree-row(hover) :-moz-tree-separator :-moz-tree-twisty u – x :-moz-ui-invalid :-moz-ui-valid :-moz-user-disabled ::-moz-view
port ::-moz-view
port-scroll :-moz-window-inactive ::-moz-xul-anonymous-block at-rules @-moz-document media features -moz-mac-graphite-theme -moz-maemo-classic -moz-device-pixel-ratio -moz-os-version -moz-scrollbar-end-backward -moz-scrollbar-end-forward -moz-scrollbar-start-backward -moz-scrollbar-start-forward -moz-scrollbar-thumb-pro
portional -moz-touch-enabled -moz-window...
animation - CSS: Cascading Style Sheets
occurrences of the following values: <single-transition-timing-function> <single-animation-iteration-count> <single-animation-direction> <single-animation-fill-mode> <single-animation-play-state> an optional name for the animation, which may be none, a <custom-ident>, or a <string> zero, one, or two <time> values the order of values within each animation definition is im
portant: the first value that can be parsed as a <time> is assigned to the animation-duration, and the second one is assigned to animation-delay.
... the order within each animation definition is also im
portant for distinguishing animation-name values from other keywords.
... <number <a href="/docs/css/value_definition_syntax#brackets" title="brackets: enclose several entities, combinators, and multipliers to transform them as a single component">[0,1]>, <number>)<step-timing-function> = step-start | step-end | steps(<integer>[, <step-position>]?)where <step-position> = jump-start | jump-end | jump-none | jump-both | start | end examples cylon eye <div class="view_
port"> <div class="polling_message"> listening for dispatches </div> <div class="cylon_eye"></div> </div> .polling_message { color: white; float: left; margin-right: 2%; } .view_
port { background-color: black; height: 25px; width: 100%; overflow: hidden; } .cylon_eye { background-color: red; background-image: linear-gradient(to right, rgba(0, 0, 0, .9) 25%, ...
attr() - CSS: Cascading Style Sheets
note: the attr() function can be used with any css property, but sup
port for properties other than content is experimental, and sup
port for the type-or-unit parameter is sparse.
... lh | rlh | rem | vb | vi | vw | vh | vmin | vmax | mm | q | cm | in | pt | pc | px | deg | grad | rad | turn | ms | s | hz | khz | % examples content property html <p data-foo="hello">world</p> css [data-foo]::before { content: attr(data-foo) " "; } result <color> value html <div class="background" data-background="lime">background expected to be red if your browser does not sup
port advanced usage of attr()</div> css .background { height: 100vh; } .background { background-color: red; } .background[data-background] { background-color: attr(data-background color, red); } specifications specification status comment css values and units module level 4the definition of 'attr()' in that specification.
... these changes are experimental and may be dropped during the cr phase if browser sup
port is too small.
background-image - CSS: Cascading Style Sheets
there can be several of them, separated by commas, as multiple backgrounds are sup
ported.
...this is im
portant primarily for screen readers, as a screen reader will not announce its presence and therefore convey nothing to its users.
... candidate recommendation from css2 revision 1, the property has been extended to sup
port multiple backgrounds and any <image> css data type.
background-position-x - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbackground-position-xchrome full sup
port 1edge full sup
port 12firefox full sup
port 49ie full sup
port 6opera full sup
port 15safari full sup
port 1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 49opera android full sup
port 18safari ios full sup
port 1samsung internet android full sup
port 1.0two-value syntax (sup
port for offsets from any edge)chrome no sup
port noedge no sup
port 12 — 79firefox full sup
port 49ie full sup
port 9opera no sup
port nosafari n...
...o sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android full sup
port 49opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
port see also background-position background-position-y background-position-inline background-position-block using multi...
background-position-y - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbackground-position-ychrome full sup
port 1edge full sup
port 12firefox full sup
port 49ie full sup
port 6opera full sup
port 15safari full sup
port 1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 49opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0two-value syntax (sup
port for offsets from any edge)chrome no sup
port noedge no sup
port 12 — 79firefox full sup
port 49ie full sup
port 9opera no sup
port nosafari n...
...o sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android full sup
port 49opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
port see also background-position background-position-x background-position-inline background-position-block using multi...
border-left-style - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-left-stylechrome full sup
port 1edge full sup
port 12firefox full sup
port 1notes full sup
port 1notes notes prior to firefox 50, border styles of rounded corners (with border-radius) were always rendered as if border-bottom-style was solid.
... this has been fixed in firefox 50.ie full sup
port 5.5opera full sup
port 9.2safari full sup
port 1webview android full sup
port 2.3chrome android full sup
port 18firefox android full sup
port 14notes full sup
port 14notes notes prior to firefox 50, border styles of rounded corners (with border-radius) were always rendered as if border-bottom-style was solid.
... this has been fixed in firefox 50.opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
portsee implementation notes.see implementation notes.
border-right-style - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-right-stylechrome full sup
port 1edge full sup
port 12firefox full sup
port 1notes full sup
port 1notes notes prior to firefox 50, border styles of rounded corners (with border-radius) were always rendered as if border-bottom-style was solid.
... this has been fixed in firefox 50.ie full sup
port 5.5opera full sup
port 9.2safari full sup
port 1webview android full sup
port ≤37chrome android full sup
port 18firefox android full sup
port 14notes full sup
port 14notes notes prior to firefox 50, border styles of rounded corners (with border-radius) were always rendered as if border-bottom-style was solid.
... this has been fixed in firefox 50.opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
portsee implementation notes.see implementation notes.
clamp() - CSS: Cascading Style Sheets
note that using clamp() for font sizes, as in these examples, allows you to set a font-size that grows with the size of the view
port, but doesn't go below a minimum font-size or above a maximum font-size.
...pellentesque purus ex, mattis at ornare quis,
porta condimentum mi.
...pellentesque convallis ante nec augue
porttitor, id tempus ante luctus.</p> <p>integer rutrum sollicitudin tellus, quis cursus nulla scelerisque nec.
clear - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetclearchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 4opera full sup
port 3.5safari full sup
port 1webview android full suppo...
...rt 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0flow-relative values inline-start and inline-endchrome no sup
port noedge no sup
port nofirefox full sup
port 55ie no sup
port noopera no sup
port nosafari ...
... no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android full sup
port 55opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
port see also css basic box model ...
content - CSS: Cascading Style Sheets
accessibility sup
port for css generated content – tink explanation of wcag, guideline 1.3 – mdn understanding success criterion 1.3.1 | w3c understanding wcag 2.0 formal definition initial valuenormalapplies to::before and ::after pseudo-elementsinheritednocomputed valueon elements, always computes to normal.
... html <div id="replaced">mozilla</div> css #replaced { content: url("https://mdn.mozillademos.org/files/12668/mdn.svg"); } #replaced::after { /* will not show if element replacement is sup
ported */ content: " (" attr(id) ")"; } result specifications specification status comment css generated content module level 3the definition of 'content' in that specification.
... working draft adds sup
port for alt-text css level 2 (revision 1)the definition of 'content' in that specification.
cross-fade() - CSS: Cascading Style Sheets
syntax im
portant: the specification and current implementations have different syntaxes.
...the original syntax is sup
ported in safari and sup
ported with the -webkit- prefix in chrome, opera, and other blink-based browsers.
...this is im
portant primarily for screen readers, as a screen reader will not announce its presence and therefore convey nothing to its users.
font-stretch - CSS: Cascading Style Sheets
however, note that the <percentage> syntax is not yet sup
ported by all browsers: check the browser compatibility table for details.
... font face selection the face selected for a given value of font-stretch depends on the faces sup
ported by the font in question.
...first-line.inheritedyescomputed valueas specifiedanimation typea font stretch formal syntax <font-stretch-absolute>where <font-stretch-absolute> = normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | <percentage> examples setting font stretch percentages note that this example will only work in browsers that sup
port <percentage> values.
font-variant-east-asian - CSS: Cascading Style Sheets
an: jis90; /* <east-asian-variant-values> */ font-variant-east-asian: jis04; /* <east-asian-variant-values> */ font-variant-east-asian: simplified; /* <east-asian-variant-values> */ font-variant-east-asian: traditional; /* <east-asian-variant-values> */ font-variant-east-asian: full-width; /* <east-asian-width-values> */ font-variant-east-asian: pro
portional-width; /* <east-asian-width-values> */ font-variant-east-asian: ruby full-width jis83; /* global values */ font-variant-east-asian: inherit; font-variant-east-asian: initial; font-variant-east-asian: unset; syntax values normal this keyword leads to the deactivation of the use of such alternate glyphs.
...two values are possible: pro
portional-width activating the set of east asian characters which vary in width.
...it also applies to ::first-letter and ::first-line.inheritedyescomputed valueas specifiedanimation typediscrete formal syntax normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]where <east-asian-variant-values> = [ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]<east-asian-width-values> = [ full-width | pro
portional-width ] examples setting east asian glyph variants this example require font "yu gothic" installed in your os, other fonts may not sup
port opentype features.
font-variant-numeric - CSS: Cascading Style Sheets
syntax font-variant-numeric: normal; font-variant-numeric: ordinal; font-variant-numeric: slashed-zero; font-variant-numeric: lining-nums; /* <numeric-figure-values> */ font-variant-numeric: oldstyle-nums; /* <numeric-figure-values> */ font-variant-numeric: pro
portional-nums; /* <numeric-spacing-values> */ font-variant-numeric: tabular-nums; /* <numeric-spacing-values> */ font-variant-numeric: diagonal-fractions; /* <numeric-fraction-values> */ font-variant-numeric: stacked-fractions; /* <numeric-fraction-values> */ font-variant-numeric: oldstyle-nums stacked-fractions; /* global values */ font-variant-numeric: inherit; font-variant-numeric: in...
...two values are possible: pro
portional-nums activating the set of figures where numbers are not all of the same size.
...it also applies to ::first-letter and ::first-line.inheritedyescomputed valueas specifiedanimation typediscrete formal syntax normal | [ <numeric-figure-values> | <numeric-spacing-values> | <numeric-fraction-values> | ordinal | slashed-zero ]where <numeric-figure-values> = [ lining-nums | oldstyle-nums ]<numeric-spacing-values> = [ pro
portional-nums | tabular-nums ]<numeric-fraction-values> = [ diagonal-fractions | stacked-fractions ] examples setting ordinal numeric forms html <p class="ordinal">1st, 2nd, 3rd, 4th, 5th</p> css /* this example uses the source sans pro opentype font, developed by adobe 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=o...
font-variant-position - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-variant-positionchrome no sup
port noedge no sup
port nofirefox full sup
port 34 full sup
port 34 no sup
port 24 — 34disabled disabled from version 24 until version 34 (exclusive): this feature is behind the layout.css.font-features.enabled prefe...
...to change preferences in firefox, visit about:config.ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android full sup
port 34 full sup
port 34 no sup
port 24 — 34disabled disabled from version 24 until version 34 (exclusive): 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 sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portuser must explicitly enable this feature.user must explicitly enable this feature.
initial - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetinitialchrome full sup
port 1edge full sup
port 13firefox full sup
port 19 full sup
port 19 no sup
port 1 — 24prefixed prefixed implemented with the vendor prefix: -moz-ie no sup
port noopera ...
... full sup
port 15safari full sup
port 1.2webview android full sup
port 1chrome android full sup
port 18firefox android full sup
port 19 full sup
port 19 no sup
port 4 — 24prefixed prefixed implemented with the vendor prefix: -moz-opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port ...
... full sup
port no sup
port no sup
portrequires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
letter-spacing - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetletter-spacingchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 4opera full sup
port 3.5safari full sup
port 1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0svg sup
portchrome full sup
port 1edge full sup
port 12firefox full sup
port 72ie full sup
port 9opera full sup
port 7safari full sup
port ...
... 5.1webview android full sup
port ≤37chrome android full sup
port 18firefox android no sup
port noopera android full sup
port 10.1safari ios full sup
port 5.1samsung internet android full sup
port 1.0legend full sup
port full sup
port no sup
port no sup
port see also font-kerning ...
mask-border-outset - CSS: Cascading Style Sheets
formal definition initial value0applies toall elements; in svg, it applies to container elements excluding the defs element and all graphics elementsinheritednocomputed valueas specified, but with relative lengths converted into absolute lengthsanimation typediscrete formal syntax [ <length> | <number> ]{1,4} examples basic usage this property doesn't appear to be sup
ported anywhere yet.
... when it eventually starts to be sup
ported, it will serve to move the mask away from the inner edge of the element's border box — you can use it to make the mask start from part way across the border, rather than the inside of it.
... mask-border-outset: 1rem; chromium-based browsers sup
port an outdated version of this property — mask-box-image-outset — with a prefix: -webkit-mask-box-image-outset: 1rem; note: the mask-border page features a working example (using the out-of-date prefixed border mask properties sup
ported in chromium), so you can get an idea of the effect.
mask-border-repeat - CSS: Cascading Style Sheets
formal definition initial valuestretchapplies toall elements; in svg, it applies to container elements excluding the defs element and all graphics elementsinheritednocomputed valueas specifiedanimation typediscrete formal syntax [ stretch | repeat | round | space ]{1,2} examples basic usage this property doesn't appear to be sup
ported anywhere yet.
... when it eventually starts to be sup
ported, it will serve to define how the border mask slice will repeat around the border — i.e.
... mask-border-repeat: round; chromium-based browsers sup
port an outdated version of this property — mask-box-image-repeat — with a prefix: -webkit-mask-box-image-repeat: round; note: the mask-border page features a working example (using the out-of-date prefixed border mask properties sup
ported in chromium), so you can get an idea of the effect.
mask-border-slice - CSS: Cascading Style Sheets
initial value0applies toall elements; in svg, it applies to container elements excluding the defs element and all graphics elementsinheritednopercentagesrefer to size of the mask border imagecomputed valueas specifiedanimation typediscrete formal syntax <number-percentage>{1,4} fill?where <number-percentage> = <number> | <percentage> examples basic usage this property doesn't appear to be sup
ported anywhere yet.
... when it eventually starts to be sup
ported, it will serve to define the size of the slices taken from the source image, and used to create the border mask.
... mask-border-slice: 30 fill; chromium-based browsers sup
port an outdated version of this property — mask-box-image-slice — with a prefix: -webkit-mask-box-image-slice: 30 fill; note: the mask-border page features a working example (using the out-of-date prefixed border mask properties sup
ported in chromium), so you can get an idea of the effect.
mask-border-source - CSS: Cascading Style Sheets
olor-stop-length>?<linear-color-hint> = <length-percentage><length-percentage> = <length> | <percentage><angular-color-stop> = <color> && <color-stop-angle>?<angular-color-hint> = <angle-percentage>where <color-stop-length> = <length-percentage>{1,2}<color-stop-angle> = <angle-percentage>{1,2}<angle-percentage> = <angle> | <percentage> examples basic usage this property doesn't appear to be sup
ported anywhere yet.
... when it eventually starts to be sup
ported, it will serve to define the source of the border mask.
... mask-border-source: url(image.jpg); chromium-based browsers sup
port an outdated version of this property — mask-box-image-source — with a prefix: -webkit-mask-box-image-source: url(image.jpg); note: the mask-border page features a working example (using the out-of-date prefixed border mask properties sup
ported in chromium), so you can get an idea of the effect.
mask-border-width - CSS: Cascading Style Sheets
e defs element and all graphics elementsinheritednopercentagesrelative to width/height of the mask border image areacomputed valueas specified, but with relative lengths converted into absolute lengthsanimation typediscrete formal syntax [ <length-percentage> | <number> | auto ]{1,4}where <length-percentage> = <length> | <percentage> examples basic usage this property doesn't appear to be sup
ported anywhere yet.
... when it eventually starts to be sup
ported, it will serve to define the width of the border mask — setting this to a different value to mask-border-slice will cause the slices to be scaled to fit the border mask.
... mask-border-width: 30 fill; chromium-based browsers sup
port an outdated version of this property — mask-box-image-width — with a prefix: -webkit-mask-box-image-width: 20px; note: the mask-border page features a working example (using the out-of-date prefixed border mask properties sup
ported in chromium), so you can get an idea of the effect.
mix-blend-mode - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmix-blend-modechrome full sup
port 41edge full sup
port 79firefox full sup
port 32ie no sup
port noopera full sup
port 28safari full sup
port 8webview android full suppo...
...rt 41chrome android full sup
port 41firefox android full sup
port 32opera android full sup
port 28safari ios full sup
port 8samsung internet android full sup
port 4.0on svg elementschrome full sup
port 41edge full sup
port 79firefox full sup
port 32ie no sup
port noopera full sup
port 28safari no sup
port ...
... nowebview android no sup
port nochrome android no sup
port nofirefox android full sup
port 32opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
port see also <blend-mode> background-blend-mode ...
object-fit - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetobject-fitchrome full sup
port 31edge full sup
port 16notes full sup
port 16notes notes edge sup
ports object-fit on img elements only.
... see edge issue 13603873 for details.firefox full sup
port 36ie no sup
port noopera full sup
port 19 full sup
port 19 full sup
port 11.6prefixed prefixed implemented with the vendor prefix: -o-safari full sup
port 10webview android full sup
port 4.4.3chrome android full sup
port 31firefox android full sup
port 36opera android full sup
port 19 ful...
...l sup
port 19 full sup
port 12prefixed prefixed implemented with the vendor prefix: -o-safari ios full sup
port 10samsung internet android full sup
port 2.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.requires a vendor prefix or different name for use.requires a vendor prefix or different name for use.
pointer-events - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpointer-eventschrome full sup
port 1edge full sup
port 12firefox full sup
port 1.5ie full sup
port 11opera full sup
port 9safari full sup
port 4webview android full supp...
...ort 2chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 3.2samsung internet android full sup
port 1.0applies to html elements experimentalchrome full sup
port 2edge full sup
port 12firefox full sup
port 3.6ie full sup
port 11opera full sup
port 15safari ...
... full sup
port 4webview android full sup
port 37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 3.2samsung internet android full sup
port 1.0legend full sup
port full sup
portexperimental.
scroll-snap-type-x - CSS: Cascading Style Sheets
/* keyword values */ scroll-snap-type-x: none; scroll-snap-type-x: mandatory; scroll-snap-type-x: proximity; /* global values */ scroll-snap-type-x: inherit; scroll-snap-type-x: initial; scroll-snap-type-x: unset; syntax values none when the visual view
port of this scroll container is scrolled horizontally, it must ignore snap points.
... mandatory the visual view
port of this scroll container will rest on a snap point if it isn't currently scrolled horizontally.
... proximity the visual view
port of this scroll container may come to rest on a snap point if it isn't currently scrolled horizontally considering the user agent's scroll parameters.
scroll-snap-type-y - CSS: Cascading Style Sheets
/* keyword values */ scroll-snap-type-y: none; scroll-snap-type-y: mandatory; scroll-snap-type-y: proximity; /* global values */ scroll-snap-type-y: inherit; scroll-snap-type-y: initial; scroll-snap-type-y: unset; syntax values none when the visual view
port of this scroll container is scrolled vertically, it must ignore snap points.
... mandatory the visual view
port of this scroll container will rest on a snap point if it isn't currently scrolled vertically.
... proximity the visual view
port of this scroll container may come to rest on a snap point if it isn't currently scrolled vertically considering the user agent's scroll parameters.
scroll-snap-type - CSS: Cascading Style Sheets
snap-type: x; scroll-snap-type: y; scroll-snap-type: block; scroll-snap-type: inline; scroll-snap-type: both; /* optional mandatory | proximity*/ scroll-snap-type: x mandatory; scroll-snap-type: y proximity; scroll-snap-type: both mandatory; /* etc */ /* global values */ scroll-snap-type: inherit; scroll-snap-type: initial; scroll-snap-type: unset; syntax values none when the visual view
port of this scroll container is scrolled, it must ignore snap points.
... mandatory the visual view
port of this scroll container will rest on a snap point if it isn't currently scrolled.
... proximity the visual view
port of this scroll container may come to rest on a snap point if it isn't currently scrolled considering the user agent's scroll parameters.
text-size-adjust - CSS: Cascading Style Sheets
instead of laying out pages at the width of the device screen, they lay them out using a view
port that is much wider, usually 800 or 1000 pixels.
... to map the extra-wide layout back to the original device size, they either show only part of the whole render or scale the view
port down to fit.
... formal definition initial valueauto for smartphone browsers sup
porting inflation, none in other cases (and then not modifiable).applies toall elementsinheritedyespercentagesyes, refer to the corresponding size of the text fontcomputed valueas specifiedanimation typediscrete formal syntax none | auto | <percentage> examples basic disabling usage as hinted at above, on a properly designed responsive site the text-size-adjust behavior is not needed, so develope...
Getting Started - Developer guides
then, mozilla, safari, and other browsers followed, implementing an xmlhttprequest object that sup
ported the methods and properties of microsoft's original activex object.
...}; next, after declaring what happens when you receive the response, you need to actually make the request, by calling the open() and send() methods of the http request object, like this: httprequest.open('get', 'http://www.example.org/some.file', true); httprequest.send(); the first parameter of the call to open() is the http request method – get, post, head, or another method sup
ported by your server.
...the idea would be that a server-side script of some kind would continually update the text file with new timestamps, and our xhr code would be used to re
port the latest timestamp on the client-side.
Event developer guide - Developer guides
two common styles are: the generalized addeventlistener() and a set of specific on-event handlers.media eventsvarious events are sent when handling media that are embedded in html documents using the <audio> and <video> elements; this section lists them and provides some helpful information about using them.mouse gesture eventsgecko 1.9.1 added sup
port for several mozilla-specific dom events used to handle mouse gestures.
... orientation and motion data explainedwhen using orientation and motion events, it's im
portant to understand what the values you're given by the browser mean.
...you should instead use the standard touch events api, sup
ported since gecko/firefox 6 with multi-touch sup
port added in gecko/firefox 12.using device orientation with 3d transformsthis article provides tips on how to use device orientation information in tandem with css 3d transforms.
User input and controls - Developer guides
note: pointer events are not widely sup
ported yet, but a pointer.js polyfill is available on mozilla github.
... screen orientation when screen orientation matters for your application, you can read the screen orientation state, be informed when this state changes, and able to lock the screen orientation to a specific state (usually
portrait or landscape) through the screen orientation api.
...it will only work on a browser that sup
ports touch events.
HTML attribute reference - HTML: Hypertext Markup Language
accept-charset <form> list of sup
ported charsets.
... note: although browsers and email clients may still sup
port this attribute, it is obsolete.
... im
portance <iframe>, <img>, <link>, <script> indicates the relative fetch priority for the resource.
Date and time formats used in HTML - HTML: Hypertext Markup Language
are not sup
ported, so html doesn't sup
port years 1 b.c.e.
... if specified, the integer
portion of the number of seconds must be between 00 and 59.
...normalized datetime strings always use the letter "t" to separate the date and the time, and the time
portion of the string is as short as possible.
<area> - HTML: Hypertext Markup Language
"origin" meaning that the referrer will be the origin of the page, that is roughly the scheme, the host and the
port.
... "origin-when-cross-origin" meaning that navigations to other origins will be limited to the scheme, the host and the
port, while navigations on the same origin will include the referrer's path.
... many browsers, notably internet explorer 4 and higher, sup
port circ, polygon, and rectangle as valid values for shape, but these values are non-standard.
<font> - HTML: Hypertext Markup Language
attributes like all other html elements, this element sup
ports the global attributes.
...the document text in the default style is rendered in the first font face that the client's browser sup
ports.
... if no font listed is installed on the local system, the browser typically defaults to the pro
portional or fixed-width font for that system.
<input type="submit"> - HTML: Hypertext Markup Language
<input type="submit" value="send request"> value a domstring used as the button's label events click sup
ported common attributes type and value idl attributes value methods none value an <input type="submit"> element's value attribute contains a domstring which is displayed as the button's label.
...this label is likely to be something along the lines of "submit" or "submit query." here's an example of a submit button with a default label in your browser: <input type="submit"> additional attributes in addition to the attributes shared by all <input> elements, submit button inputs sup
port the following attributes: attribute description formaction the url to which to submit the form's data; overrides the form's action attribute, if any formenctype a string specifying the encoding type to use for the form data formmethod the http method (get or post) to use when submitting the form.
...this method sup
ports complex data and file attachments.
<input type="text"> - HTML: Hypertext Markup Language
events change and input sup
ported common attributes autocomplete, list, maxlength, minlength, pattern, placeholder, readonly, required and size idl attributes list, value methods select(), setrangetext() and setselectionrange().
... additional attributes in addition to the attributes that operate on all <input> elements regardless of their type, text inputs sup
port the following attributes: attribute description list the id of the <datalist> element that contains the optional pre-defined autocomplete options maxlength the maximum number of characters the input should accept minlength the minimum number of characters long the input can be and still be considered valid pattern a regular expressi...
... mozactionhint a mozilla extension, sup
ported by firefox for android, which provides a hint as to what sort of action will be taken if the user presses the enter or return key while editing the field.
<isindex> - HTML: Hypertext Markup Language
its sup
port depended on both the browser and the server to react to the query.
...he proposed to have instead an input element (idea sup
ported by steve putz).
... 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 sup
port.
<listing> - HTML: Hypertext Markup Language
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetlisting deprecatedchrome no sup
port noedge no sup
port nofirefox no sup
port nonotes no sup
port nonotes notes before firefox 4, this element implemented the htmlspanelement interface instead of the standard htmlelement interface.ie no sup
port ...
... noopera no sup
port nosafari no sup
port nowebview android no sup
port nochrome android no sup
port nofirefox android no sup
port nonotes no sup
port nonotes notes before firefox 4, this element implemented the htmlspanelement interface instead of the standard htmlelement interface.opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend ...
... no sup
port no sup
portdeprecated.
<rp>: The Ruby Fallback Parenthesis element - HTML: Hypertext Markup Language
the html ruby fallback parenthesis (<rp>) element is used to provide fall-back parentheses for browsers that do not sup
port display of ruby annotations using the <ruby> element.
...the <rp> element is used in the case of lack of <ruby> element sup
port; the <rp> content provides what should be displayed in order to indicate the presence of a ruby annotation, usually parentheses.
... <ruby> 漢 <rp>(</rp><rt>kan</rt><rp>)</rp> 字 <rp>(</rp><rt>ji</rt><rp>)</rp> </ruby> css body { font-size: 22px; } the result looks like this in your browser: the html above rendered by a browser without ruby sup
port might look like this: 漢 (kan) 字 (ji) body { font-size: 22px; } see the article about the <ruby> element for further examples.
<spacer> - HTML: Hypertext Markup Language
however, <spacer> no longer sup
ported by any major browser and the same effects can now be achieved using simple css.
... firefox, which is the descendant of netscape's browsers, removed sup
port for <spacer> in version 4.
... attributes like all other html elements, this element sup
ports the global attributes.
<tt>: The Teletype Text element (obsolete) - HTML: Hypertext Markup Language
the terms non-pro
portional, monotype, and monospace are used interchangeably and have the same general meaning: they describe a typeface whose characters are all the same number of pixels wide.
... if none of the semantic elements are appropriate for your use case (for example, if you simply need to show some content in a non-pro
portional font), you should consider using the <span> element, styling it as desired using css.
...h it isn't required to do—using css: css tt { font-family: "lucida console", "menlo", "monaco", "courier", monospace; } html <p>enter the following at the telnet command prompt: <code>set localecho</code><br /> the telnet client should display: <tt>local echo is on</tt></p> result usage notes the <tt> element is, by default, rendered using the browser's default non-pro
portional font.
dir - HTML: Hypertext Markup Language
this attribute can be overridden by the css properties direction and unicode-bidi, if a css page is active and the element sup
ports these properties.
...that way, the text will display correctly even on a browser that doesn't sup
port css or has the css deactivated.
... recommendation sup
ported on all elements but <applet>, <base>, <basefont>, <bdo>, <br>, <frame>, <frameset>, <iframe>, <param>, and <script>.
Microdata - HTML: Hypertext Markup Language
microdata uses a sup
porting vocabulary to describe an item and name-value pairs to assign values to its properties.
... vocabularies google and other major search engines sup
port the schema.org vocabulary for structured data.
...for example, yandex, a major search engine in russia, sup
ports microformats such as hcard (company contact information), hrecipe (food recipe), hreview (market reviews) and hproduct (product data) and provides its own format for the definition of the terms and encyclopedic articles.
Using the application cache - HTML: Hypertext Markup Language
as of firefox 44+, when appcache is used to provide offline sup
port for a page, a warning message displays in the console advising developers to use service workers instead (bug 1204581).
...entries listed in the cache manifest must have the same scheme, host, and
port as the manifest.
... im
portant: do not specify the manifest itself in the cache manifest file, otherwise it will be nearly impossible to inform the browser a new manifest is available.
Data URLs - HTTP
length limitations although firefox sup
ports data urls of essentially unlimited length, browsers are not required to sup
port any particular maximum length of data.
... no sup
port for query strings, etc.
... the data
portion of a data url is opaque, so an attempt to use a query string (page-specific parameters, with the syntax <url>?parameter-data) with a data url will just include the query string in the data the url represents.
Identifying resources on the Web - HTTP
port :80 is the
port in this instance.
...it is usually omitted if the web server uses the standard
ports of the http protocol (80 for http and 443 for https) to grant access to its resources.
...increasingly, browsers are removing sup
port for using ftp to load subresources, for security reasons.
HTTP caching - HTTP
on the other side, it has to be configured properly as not all resources stay identical forever: it is im
portant to cache a resource only until it changes, not longer.
... cache-control: private cache-control: public expiration the most im
portant directive here is "max-age=<seconds>" which is the maximum amount of time a resource will be considered fresh.
...this is very im
portant when web sites have css stylesheets or js scripts that have mutual dependencies, i.e., they depend on each other because they refer to the same html elements.
Accept-Ranges - HTTP
the accept-ranges response http header is a marker used by the server to advertise its sup
port of partial requests.
... header type response header forbidden header name no syntax accept-ranges: <range-unit> accept-ranges: none directives <range-unit> defines the range unit the server sup
ports.
... none no range unit is sup
ported, this makes the header equivalent of its own absence and is therefore rarely used, though some browsers, like ie9, it is used to disable or remove the pause buttons in the download manager.
Origin - HTTP
header type request header forbidden header name yes syntax origin: null origin: <scheme> "://" <hostname> [ ":" <
port> ] directives <scheme> the protocol that is used.
... <
port> optional tcp
port number on which the server is listening.
... if no
port is given, the default
port for the service requested (e.g., "80" for an http url) is implied.
Proxy servers and tunneling - HTTP
http tunneling is using a protocol of higher level (http) to trans
port a lower level protocol (tcp).
...https,
port 443).
... note, however, that not all proxy servers sup
port the connect method or limit it to
port 443 only.
TypeError: cyclic object value - JavaScript
message typeerror: cyclic object value (firefox) typeerror: converting circular structure to json (chrome and opera) typeerror: circular reference in value argument not sup
ported (edge) error type typeerror what went wrong?
... the json format per se doesn't sup
port object references (although an ietf draft exists), hence json.stringify() doesn't try to solve them and fails accordingly.
... examples circular references in a circular structure like the following var circularreference = {otherdata: 123}; circularreference.myself = circularreference; json.stringify() will fail json.stringify(circularreference); // typeerror: cyclic object value to serialize circular references you can use a library that sup
ports them (e.g.
TypeError: "x" is not a function - JavaScript
message typeerror: object doesn't sup
port property or method {x} (edge) typeerror: "x" is not a function error type typeerror what went wrong?
... using the latter will throw an error: const sixteen = 2(3 + 5); alert('2 x (3 + 5) is ' + string(sixteen)); //uncaught typeerror: 2 is not a function you can correct the code by adding a * operator: const sixteen = 2 * (3 + 5); alert('2 x (3 + 5) is ' + string(sixteen)); //2 x (3 + 5) is 16 im
port the ex
ported module correctly ensure you are im
porting the module correctly.
... an example helpers library (helpers.js) let helpers = function () { }; helpers.groupby = function (objectarray, property) { return objectarray.reduce(function (acc, obj) { var key = obj[property]; if (!acc[key]) { acc[key] = []; } acc[key].push(obj); return acc; }, {}); } ex
port default helpers; the correct im
port usage (app.js): im
port helpers from './helpers' ...
Array.from() - JavaScript
this is especially im
portant for certain array subclasses, like typed arrays, since the intermediate array would necessarily have values truncated to fit into the appropriate type.
... you can work around this by inserting the following code at the beginning of your scripts, allowing use of array.from() in implementations that don't natively sup
port it.
... in addition, since true iterables cannot be polyfilled, this implementation does not sup
port generic iterables as defined in the 6th edition of ecma-262.
BigInt - JavaScript
bitwise operators are sup
ported as well, except >>> (zero-fill right shift) as all bigints are signed.
... also unsup
ported is the unary operator (+), in order to not break asm.js.
... cryptography the operations sup
ported on bigints are not constant time.
Date.prototype.toLocaleString() - JavaScript
let date = new date(date.utc(2012, 11, 12, 3, 0, 0)); // tolocalestring() without arguments depends on the // implementation, the default locale, and the default time zone console.log(date.tolocalestring()); // → "12/11/2012, 7:00:00 pm" if run in en-us locale with time zone america/los_angeles checking for sup
port for locales and options arguments the locales and options arguments are not sup
ported in all browsers yet.
... to check whether an implementation sup
ports them already, you can use the requirement that illegal language tags are rejected with a rangeerror exception: function tolocalestringsup
portslocales() { try { new date().tolocalestring('i'); } catch (e) { return e instanceof rangeerror; } return false; } using locales this example shows some of the variations in localized date and time formats.
...most arabic speaking countries uses real arabic digits console.log(date.tolocalestring('ar-eg')); // → "٢٠/١٢/٢٠١٢ ٥:٠٠:٠٠ ص" // for japanese, applications may want to use the japanese calendar, // where 2012 was the year 24 of the heisei era console.log(date.tolocalestring('ja-jp-u-ca-japanese')); // → "24/12/20 12:00:00" // when requesting a language that may not be sup
ported, such as // balinese, include a fallback language (in this case, indonesian) console.log(date.tolocalestring(['ban', 'id'])); // → "20/12/2012 11.00.00" using options the results provided by tolocalestring() can be customized using the options argument: let date = new date(date.utc(2012, 11, 20, 3, 0, 0)); // request a weekday along with a long date let options = { weekday: 'long', year:...
Intl.Collator.prototype.resolvedOptions() - JavaScript
if any unicode extension values were requested in the input bcp 47 language tag that led to this locale, the key-value pairs that were requested and are sup
ported for this locale are included in locale.
... collation the value requested using the unicode extension key "co", if it is sup
ported for locale, or "default".
...if the implementation does not sup
port these properties, they are omitted.
JSON.stringify() - JavaScript
example replacer, as a function function replacer(key, value) { // filtering out properties if (typeof value === 'string') { return undefined; } return value; } var foo = {foundation: 'mozilla', model: 'box', week: 45, trans
port: 'car', month: 7}; json.stringify(foo, replacer); // '{"week":45,"month":7}' example replacer, as an array if replacer is an array, the array's values indicate the names of the properties in the object that should be included in the resulting json string.
...// '{"obj":"now i am a nested object under key 'obj'"}' json.stringify([ obj ]); // '["now i am a nested object under key '0'"]' issue with json.stringify() when serializing circular references note that since the json format doesn't sup
port object references (although an ietf draft exists), a typeerror will be thrown if one attempts to encode an object with circular references.
... const circularreference = {}; circularreference.myself = circularreference; // serializing circular references throws "typeerror: cyclic object value" json.stringify(circularreference); to serialize circular references you can use a library that sup
ports them (e.g.
Object.entries() - JavaScript
(the only im
portant difference is that a for...in loop enumerates properties in the prototype chain as well).
... polyfill to add compatible object.entries() sup
port in older environments that do not natively sup
port it, you can use any of the following: a demonstration implementation of object.entries in the tc39/proposal-object-values-entries (if you don't need any sup
port for ie); a polyfill in the es-shims/object.entries repositories; or, you can use the simple, ready-to-deploy polyfill listed below: if (!object.entries) { object.entries = functi...
...on( obj ){ var ownprops = object.keys( obj ), i = ownprops.length, resarray = new array(i); // preallocate the array while (i--) resarray[i] = [ownprops[i], obj[ownprops[i]]]; return resarray; }; } for the above polyfill code snippet, if you need sup
port for ie<9, then you will also need an object.keys() polyfill (such as the one found on the object.keys page).
Object.prototype.__proto__ - JavaScript
warning: while object.prototype.__proto__ is sup
ported today in most browsers, its existence and exact behavior has only been standardized in the ecmascript 2015 specification as a legacy feature to ensure compatibility for web browsers.
... for better sup
port, use object.getprototypeof() instead.
...only recently was the __proto__ property standardized by the ecmascript 2015 specification for compatibility with web browsers, so it will be sup
ported into the future.
Symbol - JavaScript
the symbol() function returns a value of type symbol, has static properties that expose several members of built-in objects, has static methods that expose the global symbol registry, and resembles a built-in object class, but is incomplete as a constructor because it does not sup
port the syntax "new symbol()".
... a symbol value may be used as an identifier for object properties; this is the data type's primary purpose, although other use-cases exist, such as enabling opaque data types, or serving as an implementation-sup
ported unique identifier in general.
...it is incomplete as a constructor because it does not sup
port the syntax "new symbol()".
TypedArray.prototype.slice() - JavaScript
the slice() method returns a shallow copy of a
portion of a typed array into a new typed array object.
... if (!uint8array.prototype.slice) { object.defineproperty(uint8array.prototype, 'slice', { value: function (begin, end) { return new uint8array(array.prototype.slice.call(this, begin, end)); } }); } if you need to sup
port truly obsolete javascript engines that don't sup
port object.defineproperty, it's best not to polyfill array.prototype methods at all, as you can't make them non-enumerable.
... examples return a
portion of an existing typed array const uint8 = new uint8array([1,2,3]); uint8.slice(1); // uint8array [ 2, 3 ] uint8.slice(2); // uint8array [ 3 ] uint8.slice(-2); // uint8array [ 2, 3 ] uint8.slice(0,1); // uint8array [ 1 ] specifications specification ecmascript (ecma-262)the definition of '%typedarray%.prototype.slice' in that specification.
WebAssembly.CompileError() constructor - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jscompileerror() constructorchrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend fu...
...ll sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
WebAssembly.LinkError() constructor - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jslinkerror() constructorchrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend fu...
...ll sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
WebAssembly.Memory.prototype.grow() - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsgrowchrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend fu...
...ll sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
WebAssembly.Module.customSections() - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jscustomsectionschrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend fu...
...ll sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
WebAssembly.RuntimeError() constructor - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsruntimeerror() constructorchrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend fu...
...ll sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
WebAssembly.Table.prototype.grow() - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsgrowchrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend fu...
...ll sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
WebAssembly.Table.prototype.length - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jslengthchrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend fu...
...ll sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
WebAssembly.compile() - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jscompilechrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend fu...
...ll sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
WebAssembly.compileStreaming() - JavaScript
var im
portobject = { im
ports: { im
ported_func: arg => console.log(arg) } }; webassembly.compilestreaming(fetch('simple.wasm')) .then(module => webassembly.instantiate(module, im
portobject)) .then(instance => instance.ex
ports.ex
ported_func()); the resulting module instance is then instantiated using webassembly.instantiate(), and the ex
ported function invoked.
... desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jscompilestreamingchrome full sup
port 61edge full sup
port 16firefox full sup
port 58ie no sup
port noopera full sup
port 47safari no sup
port nowebview android full suppor...
...t 61chrome android full sup
port 61firefox android full sup
port 58opera android full sup
port 45safari ios no sup
port nosamsung internet android full sup
port 8.0nodejs no sup
port nolegend full sup
port full sup
port no sup
port no sup
port ...
WebAssembly.validate() - JavaScript
desktopmobileserverchromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsvalidatechrome full sup
port 57edge full sup
port 16firefox full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).ie no sup
port noopera full sup
port ...
... 44safari full sup
port 11webview android full sup
port 57chrome android full sup
port 57firefox android full sup
port 52notes full sup
port 52notes notes disabled in the firefox 52 extended sup
port release (esr).opera android full sup
port 43safari ios full sup
port 11samsung internet android full sup
port 7.0nodejs full sup
port 8.0.0legend fu...
...ll sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
Object initializer - JavaScript
syntax let o = {} let o = {a: 'foo', b: 42, c: {}} let a = 'foo', b = 42, c = {} let o = {a: a, b: b, c: c} let o = { property: function (parameters) {}, get property() {}, set property(value) {} }; new notations in ecmascript 2015 please see the compatibility table for sup
port for these notations.
... in non-sup
porting environments, these notations will lead to syntax errors.
... computed property names starting with ecmascript 2015, the object initializer syntax also sup
ports computed property names.
Statements and declarations - JavaScript
ex
port used to ex
port functions to make them available for im
ports in external modules, and other scripts.
... im
port used to im
port functions ex
ported from an external module, another script.
... im
port.meta an object exposing context-specific metadata to a javascript module.
How to make PWAs installable - Progressive web apps (PWAs)
previous overview: progressive next in the last article, we read about how the example application, js13kpwa, works offline thanks to its service worker, but we can go even further and allow users to install the web app on mobile and desktop browers that sup
port doing so.
... when the user visits the pwa with a sup
porting mobile browser, it should display a notification (such as a banner or dialog box) indicating that it's possible to install the app as a pwa.
...browser sup
port 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.
Making PWAs work offline with Service workers - Progressive web apps (PWAs)
if you want to experiment first before pushing your code to production, you can always test on a localhost or setup github pages — both sup
port https.
... "progressive" in pwa when implemented properly as a progressive enhancement, service workers can benefit users who have modern browsers that sup
port the api by providing offline sup
port, but won't break anything for those using legacy browsers.
... registering the service worker we'll start by looking at the code that registers a new service worker, in the app.js file: note : we're using the es6 arrow functions syntax in the service worker implementation if('serviceworker' in navigator) { navigator.serviceworker.register('./pwa-examples/js13kpwa/sw.js'); }; if the service worker api is sup
ported in the browser, it is registered against the site using the serviceworkercontainer.register() method.
clip - SVG: Scalable Vector Graphics
the value of auto defines a clipping path along the bounds of the view
port created by the given element.
... value auto | rect() default value auto animatable yes the value auto defines a clipping path along the bounds of the view
port created by the given element.the value rect() defines a clipping rectangle following the following syntax: rect(<top>, <right>, <bottom>, <left>).
... the <top> and <bottom> values specify offsets from the top border edge of the element view
port, while <right> and <left> specify offsets from the left border edge of the element view
port.
viewBox - SVG: Scalable Vector Graphics
the viewbox attribute defines the position and dimension, in user space, of an svg view
port.
...the numbers separated by whitespace and/or a comma, which specify a rectangle in user space which is mapped to the bounds of the view
port established for the associated svg element (not the browser view
port).
... --> <rect x="0" y="0" width="100%" height="100%"/> <!-- with a small viewbox the circle looks large as it is using user units for the r attribute: 4 resolved against 10 as set in the viewbox --> <circle cx="50%" cy="50%" r="4" fill="white"/> </svg> <svg viewbox="-5 -5 10 10" xmlns="http://www.w3.org/2000/svg"> <!-- the point of coordinate 0,0 is now in the center of the view
port, and 100% is still resolve to a width or height of 10 user units so the rectangle looks shifted to the bottom/right corner of the view
port --> <rect x="0" y="0" width="100%" height="100%"/> <!-- with the point of coordinate 0,0 in the center of the view
port the value 50% is resolve to 5 which means the center of the circle is in the bottom/right corner of the view
port.
Content type - SVG: Scalable Vector Graphics
svg sup
ports all of the syntax alternatives for <color> defined in css2 syntax and basic data types, and (depend on the implementation) in the future css color module level 3.
...for example, to fill a rectangle with a linear gradient, you first define a <lineargradient> element and give it an id, as in: <lineargradient xml:id="mygradient">...</lineargradient> you then reference the linear gradient as the value of the fill attribute for the rectangle, as in the following example: <rect fill="url(#mygradient)"/> svg sup
ports two types of iri references: local iri references, where the iri reference does not contain an <absoluteiri> or <relativeiri> and thus only contains a fragment identifier (i.e., #<elementid> or #xpointer(id<elementid>)).
...two common cases are: when a percentage length value represents a percentage of the view
port width or height when a percentage length value represents a percentage of the bounding box width or height on a given object.
<marker> - SVG: Scalable Vector Graphics
ts="10,10 10,90 90,90" fill="none" stroke="black" marker-start="url(#arrow)" marker-end="url(#arrow)" /> <!-- data line with polymarkers --> <polyline points="15,80 29,50 43,60 57,30 71,40 85,15" fill="none" stroke="grey" marker-start="url(#dot)" marker-mid="url(#dot)" marker-end="url(#dot)" /> </svg> attributes markerheight this attribute defines the height of the marker view
port.
... value type: userspaceonuse|strokewidth ; default value: strokewidth; animatable: yes markerwidth this attribute defines the width of the marker view
port.
... value type: top|center|bottom|<coordinate> ; default value: 0; animatable: yes viewbox this attribute defines the bound of the svg view
port for the current svg fragment.
SVG and CSS - SVG: Scalable Vector Graphics
--segment-fill-fill: azure; --segment-fill-stroke: lightsteelblue; --segment-fill-stroke-width: 1; --segment-edge-fill: none; --segment-edge-stroke: deepskyblue; --segment-edge-stroke-width: 3; --segment-fill-fill-hover: plum; --segment-fill-stroke-hover: none; --segment-edge-stroke-hover: slateblue; } /* non-standard way of styling elements referenced via <use> elements, sup
ported by some older browsers */ #outer-petals .segment-fill { fill: azure; stroke: lightsteelblue; stroke-width: 1; } #outer-petals .segment-edge { fill: none; stroke: deepskyblue; stroke-width: 3; } #outer-petals .segment:hover > .segment-fill { fill: plum; stroke: none; } #outer-petals .segment:hover > .segment-edge { stroke: slateblue; } /* inner petals */ #inner-petals { -...
...-segment-fill-fill: yellow; --segment-fill-stroke: yellow; --segment-fill-stroke-width: 1; --segment-edge-fill: none; --segment-edge-stroke: yellowgreen; --segment-edge-stroke-width: 9; --segment-fill-fill-hover: darkseagreen; --segment-fill-stroke-hover: none; --segment-edge-stroke-hover: green; } /* non-standard way of styling elements referenced via <use> elements, sup
ported by some older browsers */ #inner-petals .segment-fill { fill: yellow; stroke: yellow; stroke-width: 1; } #inner-petals .segment-edge { fill: none; stroke: yellowgreen; stroke-width: 9; } #inner-petals .segment:hover > .segment-fill { fill: darkseagreen; stroke: none; } #inner-petals .segment:hover > .segment-edge { stroke: green; } open the document in your svg-enabled browser.
...this behavior is standardized, though only a few browsers sup
port the :hover pseudo-class and other more complex css selectors on elements referenced via <use> elements, at the moment.
Mixed content - Web security
mixed passive/display content mixed passive/display content is content served over http that is included in an https webpage, but that cannot alter other
portions of the webpage.
...if the webpage is public and has no sensitive data about the user, using mixed active content still provides the attacker with the op
portunity to redirect the user to other http pages and steal http cookies from those sites.
... as well as finding these warnings in the web console, you could use content security policy (csp) to re
port issues.
Web security
connection security trans
port security layer (tls) the trans
port layer security (tls) protocol is the standard for enabling two networked applications or devices to exchange information privately and robustly.
... http strict-trans
port-security the strict-trans
port-security: http header lets a website specify that it may only be accessed using https.
...oss-site scripting cryptanalysis cryptographic hash function cryptography csp csrf decryption digital certificate dtls encryption forbidden header name forbidden response header name hash hmac hpkp hsts https key mitm owasp preflight request public-key cryptography re
porting directive robots.txt same-origin policy session hijacking sql injection symmetric-key cryptography tofu tls ...
Using shadow DOM - Web Components
an im
portant aspect of web components is encapsulation — being able to keep the markup structure, style, and behavior hidden and separate from other code on the page so that different parts do not clash, and the code can be kept nice and clean.
... note: shadow dom is sup
ported by default in firefox (63 and onwards), chrome, opera, and safari.
... the new chromium-based edge (75 and onwards) sup
ports it too; the old edge didn't.
Navigator - Archive of obsolete content
navigator.moznotificationprovides sup
port for creating notification objects, which are used to display desktop notification alerts to the user.
... currently, these are only sup
ported on firefox mobile and firefox os.
Communicating With Other Scripts - Archive of obsolete content
tent scripts can communicate with: your main.js file, or any other modules in your add-on other content scripts loaded by your add-on page scripts (that is, scripts embedded in the web page or included using <script> tags) main.js your content scripts can communicate with your add-on's "main.js" (or any other modules you're written for your add-on) by sending it messages, using either the
port.emit() api or the postmessage() api.
... see the articles on using postmessage() and using
port for details.
Cross-domain Content Scripts - Archive of obsolete content
script "panel-script.js" to it sends the panel a "show" message when it is shown adds a button which shows the panel when it is clicked // main.js var data = require("sdk/self").data; var forecast_panel = require("sdk/panel").panel({ height: 50, contenturl: data.url("panel.html"), contentscriptfile: data.url("panel-script.js") }); forecast_panel.on("show", function(){ forecast_panel.
port.emit("show"); }); require("sdk/ui/button/action").actionbutton({ id: "get-forecast", label: "get the forecast", icon: "./icon-16.png", onclick: function() { forecast_panel.show(); } }); the "panel.html" just includes a <div> block for the forecast: <!doctype html> <!-- panel.html --> <html> <head></head> <body> <div id="forecast_summary"></div> </body> </html> the "...
...panel-script.js" uses xmlhttprequest to fetch the latest forecast: // panel-script.js var url = "http://datapoint.metoffice.gov.uk/public/data/txt/wxfcs/regionalforecast/json/500?key=your-api-key"; self.
port.on("show", function () { var request = new xmlhttprequest(); request.open("get", url, true); request.onload = function () { var jsonresponse = json.parse(request.responsetext); var summary = getsummary(jsonresponse); var element = document.getelementbyid("forecast_summary"); element.textcontent = summary; }; request.send(); }); function getsummary(forecast) { return forecast.regionalfcst.fcstperiods.period[0].paragraph[0].$; } finally, we need to add the "cross-domain-content" key to "package.json": "permissions": { "cross-domain-content": ["http://data...
Reddit Example - Archive of obsolete content
button({ id: "reddit-panel", label: "reddit panel", icon: "./icon-16.png", onclick: function() { reddit_panel.show(); } }); var reddit_panel = require("sdk/panel").panel({ width: 240, height: 320, contenturl: "http://www.reddit.com/.mobile?keep_extension=true", contentscriptfile: [data.url("jquery-2.1.0.min.js"), data.url("panel.js")] }); reddit_panel.
port.on("click", function(url) { require("sdk/tabs").open(url); }); this code supplies two content scripts to the panel's constructor in the contentscriptfile option: the jquery library and the script that intercepts link clicks.
... event.stoppropagation(); event.preventdefault(); self.
port.emit('click', t.tostring()); }); this script uses jquery to interact with the dom of the page and the self.
port.emit function to pass urls back to the add-on script.
Contributor's Guide - Archive of obsolete content
unlike languages like c++ and java, javascript does not have native sup
port for classical inheritance.
...unfortunately, javascript does not yet have native sup
port for modules: it has to rely on the host application to provide it with functionality such as loading subscripts, and ex
porting/ im
porting names.
clipboard - Archive of obsolete content
the following types are sup
ported: text (plain text) html (a string of html) image (a base-64 encoded png) if no data type is provided, then the module will detect it for you.
... currently the image type doesn't sup
port transparency on windows.
context-menu - Archive of obsolete content
the page context occurs when the user invokes the context menu on a non-interactive
portion of the page.
... to learn more about private windows, how to opt into private browsing, and how to sup
port private browsing, refer to the documentation for the private-browsing module.
l10n - Archive of obsolete content
var _ = require("sdk/l10n").get; console.log(_("child_id", 1)); console.log(_("child_id", 2)); see the tutorial on plural sup
port for more information.
... var _ = require("sdk/l10n").get; console.log(_("home_town", "alan", "norwich")); see the tutorial on placeholder sup
port for more information.
notifications - Archive of obsolete content
usage this api sup
ports desktop notifications on windows, os x using growl (and notification center as of os x 10.9 mavericks), and linux using libnotify.
...if the user's system does not sup
port desktop notifications or if its notifications service is not running: if firefox was started normally, notifications are logged to firefox's error console if the user launched firefox from the command line, notifications are logged to the terminal.
private-browsing - Archive of obsolete content
respecting private browsing the private-browsing module ex
ports a single function isprivate() that takes an object, which may be a browserwindow, tab, or worker, as an argument.
...in the handler for the page-mod's attach event, it passes the worker into isprivate(): var pagemod = require("sdk/page-mod"); var privatebrowsing = require("sdk/private-browsing"); var loggingscript = "self.
port.on('log-content', function() {" + " console.log(document.body.innerhtml);" + "});"; function logpublicpagecontent(worker) { if (privatebrowsing.isprivate(worker)) { console.log("private window, doing nothing"); } else { worker.
port.emit("log-content"); } } pagemod.pagemod({ include: "*", contentscript: loggingscript, onattach: logpu...
ui - Archive of obsolete content
this module ex
ports constructors for the following: actionbutton togglebutton frame toolbar sidebar each object has its own reference page, linked above: for all the details please refer to the reference page.
... attaching panels to buttons is only sup
ported from firefox 30 onwards.
core/namespace - Archive of obsolete content
ex
ports.view = view; // ...
... delete sandboxes(this).sandbox; }; ex
ports.widget = widget; in addition access to the namespace can be shared with other code by just handing them a namespace accessor function.
loader/sandbox - Archive of obsolete content
evaluate code module provides evaluate function that lets you execute code in the given sandbox: evaluate(scope, 'var a = 5;'); evaluate(scope, 'a + 2;'); //=> 7 more details about evaluated script may be passed via optional arguments that may improve exception re
porting: // evaluate code as if it was loaded from 'http://foo.com/bar.js' and // start from 2nd line.
...data: urls are sup
ported.
places/bookmarks - Archive of obsolete content
usage this module ex
ports: three constructors: bookmark, group, and separator, corresponding to the types of objects, referred to as bookmark items, in the bookmarks database in firefox two additional functions, save() to create, update, and remove bookmark items, and search() to retrieve the bookmark items that match a particular set of criteria.
... placesemitter the placesemitter is not ex
ported from the module, but returned from the save and search functions.
system/child_process - Archive of obsolete content
however, there are a few differences to be aware of: you need to require() the module using require("sdk/system/child_process") fork() is not sup
ported gid and uid are not sup
ported in node.js, spawn() and exec() inherit the environment variables from the parent process, by default.
... const { emit } = require('sdk/event/core'); const { spawn } = require('sdk/system/child_process'); var proc = spawn("/bin/cat"); emit(proc.stdin, 'data', "hello from add-on code"); emit(proc.stdin, 'end'); using child_process in non-jpm extensions // im
port sdk stuff const commonjs_uri = 'resource://gre/modules/commonjs'; const { require } = cu.im
port(commonjs_uri + '/toolkit/require.js', {}); var child_process = require('sdk/system/child_process'); // use it in the same way as in the example above ...
test/httpd - Archive of obsolete content
usage the most basic usage is: var { startserverasync } = require("sdk/test/httpd"); var srv = startserverasync(
port, basepath); require("sdk/system/unload").when(function cleanup() { srv.stop(function() { // you should continue execution from this point.
...the server listens at http://localhost:
port/ and serves files from the specified directory.
Displaying annotations - Archive of obsolete content
the complete content script is here: self.on('message', function onmessage(annotations) { annotations.foreach( function(annotation) { if(annotation.url == document.location.tostring()) { createanchor(annotation); } }); $('.annotated').css('border', 'solid 3px yellow'); $('.annotated').bind('mouseenter', function(event) { self.
port.emit('show', $(this).attr('annotation')); event.stoppropagation(); event.preventdefault(); }); $('.annotated').bind('mouseleave', function() { self.
port.emit('hide'); }); }); function createanchor(annotation) { annotationanchorancestor = $('#' + annotation.ancestorid); annotationanchor = $(annotationanchorancestor).parent().find( ':contains(' + annotat...
... []; in the main function, add the code to create the matcher: var matcher = pagemod.pagemod({ include: ['*'], contentscriptwhen: 'ready', contentscriptfile: [data.url('jquery-1.4.2.min.js'), data.url('matcher.js')], onattach: function(worker) { if(simplestorage.storage.annotations) { worker.postmessage(simplestorage.storage.annotations); } worker.
port.on('show', function(data) { annotation.content = data; annotation.show(); }); worker.
port.on('hide', function() { annotation.content = null; annotation.hide(); }); worker.on('detach', function () { detachworker(this, matchers); }); matchers.push(worker); } }); when a new page is loaded the function assigned to onattach is called.
Chrome Authority - Archive of obsolete content
for example, none of the following code will be matched by the manifest scanner, leading to exceptions at runtime, when the require() call is prohibited from im
porting the named modules: // all of these will fail!
...a future manifest format may move the declaration
portion out to a separate file, to allow for more fine-grained expression of authority.
Drag & Drop - Archive of obsolete content
next, setup the handlers so that files can be dropped on the application: function _dragover(aevent) { var dragservice = components.classes["@mozilla.org/widget/dragservice;1"].getservice(components.interfaces.nsidragservice); var dragsession = dragservice.getcurrentsession(); var sup
ported = dragsession.isdataflavorsup
ported("text/x-moz-url"); if (!sup
ported) sup
ported = dragsession.isdataflavorsup
ported("application/x-moz-file"); if (sup
ported) dragsession.candrop = true; } function _dragdrop(aevent) { var dragservice = components.classes["@mozilla.org/widget/dragservice;1"].getservice(components.interfaces.nsidragservice); var dragsession = dra...
...taflavor("text/x-moz-url"); trans.adddataflavor("application/x-moz-file"); for (var i=0; i<dragsession.numdropitems; i++) { var uri = null; dragsession.getdata(trans, i); var flavor = {}, data = {}, length = {}; trans.getanytransferdata(flavor, data, length); if (data) { try { var str = data.value.queryinterface(components.interfaces.nsisup
portsstring); } catch(ex) { } if (str) { uri = _ios.newuri(str.data.split("\n")[0], null, null); } else { var file = data.value.queryinterface(components.interfaces.nsifile); if (file) uri = _ios.newfileuri(file); } } if (uri) uris.push(uri); } // use the array of file uris ...
LookupPrefix - Archive of obsolete content
note that all gecko-based browsers (including firefox) sup
port node.lookupprefix.
...alelement.prefix) === namespaceuri) { return originalelement.prefix; } if (originalelement.attributes && originalelement.attributes.length) { for (var i=0; i < originalelement.attributes.length; i++) { var att = originalelement.attributes[i]; xmlnspattern.lastindex = 0; var localname = att.localname || att.name.substr(att.name.indexof(':')+1); // latter test for ie which doesn't sup
port localname if (localname.indexof(':') !== -1) { // for firefox when in html mode localname = localname.substr(att.name.indexof(':')+1); } if ( xmlnspattern.test(att.name) && att.value === namespaceuri && lookupnamespaceuri(originalelement, localname) === namespaceuri ) { return localname; } } } if (originalelement.parentnode) { // entityreferences may have ...
Progress Listeners - Archive of obsolete content
example create an object which implements nsiwebprogresslistener: const state_start = ci.nsiwebprogresslistener.state_start; const state_stop = ci.nsiwebprogresslistener.state_stop; var mylistener = { queryinterface: xpcomutils.generateqi(["nsiwebprogresslistener", "nsisup
portsweakreference"]), onstatechange: function(awebprogress, arequest, aflag, astatus) { // if you use mylistener for more than one tab/window, use // awebprogress.domwindow to obtain the tab/window which triggers the state change if (aflag & state_start) { // this fires when the load event is initiated } if (aflag & state_stop) { //...
... alert(auri.spec); this.oldurl = auri.spec; }, // nsiwebprogresslistener queryinterface: xpcomutils.generateqi(["nsiwebprogresslistener", "nsisup
portsweakreference"]), onlocationchange: function(aprogress, arequest, auri) { this.processnewurl(auri); }, onstatechange: function() {}, onprogresschange: function() {}, onstatuschange: function() {}, onsecuritychange: function() {} }; window.addeventlistener("load", function() { myextension.init() }, false); window.addeventlistener("unload", function() { myextensio...
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 sup
portable (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> htmldocum...
...however, it will work with attribute selectors that target non-prefixed attributes (such as 'id', but not xml:id: http://www.w3.org/tr/selectors-api/#resolving) (even though css3 does sup
port namespaced attribute selectors: http://www.w3.org/tr/css3-selectors/#attrnmsp and potentially xml:id as #: http://www.w3.org/tr/css3-selectors/#id-selectors ).
getAttributeNS - Archive of obsolete content
as some browsers do not sup
port getattributens, the following might be used to work on them as well.
... note that all gecko-based browsers (including firefox) sup
port dom:element.getattributens.
Custom about: URLs - Archive of obsolete content
it is im
ported to queryinterface the components.manager otherwise this will not work.
... const {classes: cc, interfaces: ci, manager: cm, results: cr, utils: cu, constructor: cc} = components; cm.queryinterface(ci.nsicomponentregistrar); components.utils.im
port("resource://gre/modules/services.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:myaboutp...
Displaying web content in an extension without security issues - Archive of obsolete content
here it is most im
portant to disable javascript and plugins.
...description"></div> </div> now to insert a new entry in the document you would do the following: var template = doc.getelementbyid("entrytemplate"); var entry = template.clonenode(true); entry.removeattribute("id"); entry.getelementsbyclassname("title")[0].textcontent = title; entry.getelementsbyclassname("description")[0].textcontent = description; template.parentnode.appendchild(entry); the im
portant difference here is that the result will always have the same structure as the template tag.
Migrating raw components to add-ons - Archive of obsolete content
the firefox extension mechanism allows you to do everything that you could do through direct component drops, but also gives you and your users extra flexibility and more sophisticated versioning sup
port.
...if this is the only reason you are using a binary component instead of javascript, take a look at the new javascript c-types sup
port introduced in firefox 3.6.
Offering a context menu for form controls - Archive of obsolete content
window.addeventlistener("load", function() { let settargetoriginal = nscontextmenu.prototype.settarget; components.utils.re
porterror(settargetoriginal); nscontextmenu.prototype.settarget = function(anode, arangeparent, arangeoffset) { settargetoriginal.apply(this, arguments); if (this.istargetaformcontrol(anode)) this.shoulddisplay = true; }; }, false); this code, which is run when the window is opened up, works by replacing the settarget() routine for the prototype of nscontextmenu with on...
... as a result, all controls in the window will sup
port a context menu when right-clicked, since we've changed the core behavior of context menus to override their default behavior of doing nothing on form controls.
Chapter 6: Firefox extensions and XUL applications - Archive of obsolete content
nearly all components inherit from nsisup
ports (fixme: why 'nearly' ?), so adding a trailing space when you search serves as a delimiter on the inheritance position, and makes it easier to specify what you’re looking for (see figures 6, 7).4 this results in the file nsilocalfile.idl.
... the next command will im
port the source code: gonzui-im
port.exe mozilla once the im
port process is complete, type the following command to launch the gonzui server: gonzui-server.exe now you can access gonzui from your web browser by typing the following into your location bar : http://localhost:46984 this lets you browse all packages, click on links to traverse them, and take traversed-link locations as search starting ...
Chapter 4: Using XPCOM—Implementing advanced processes - Archive of obsolete content
it's im
portant to know whether a component should be created with getservice() or createinstance(), because using one instead of the other can cause problems.
...on windows vista, it will be located at c:\users\username\appdata\roaming\mozilla\firefox\profiles\random number.default\ ; on windows xp or 2000, it will be c:\documents and settings\username\application data\mozilla\firefox\profiles\random number.default\ ; on linux, it will be ~/.mozilla/firefox/random number.default/ ; on mac os x, it will be ~/library/application sup
port/firefox/profiles/random number.default/ in the interests of security, delete these lines from prefs.js after finishing these tests.
Custom XUL Elements with XBL - Archive of obsolete content
here are a couple of im
portant things to notice: the "xul:" namespace must be used for all xul tags you have in your content.
... one im
portant thing to take into account is that you shouldn't use the id attribute in any content nodes.
Handling Preferences - Archive of obsolete content
adding preferences to an extension extensions can read and write firefox preferences and, most im
portantly, create and manage their own.
...get count() { return this._prefservice.getintpref("extensions.xulschoolhello.message.count"); }, increment : function() { let currentcount = this._prefservice.getintpref("extensions.xulschoolhello.message.count"); this._prefservice.setintpref("extensions.xulschoolhello.message.count", currentcount + 1); } one im
portant thing to keep in mind is that the "get" methods of the service can throw an exception if the preference is not found.
Setting up an extension development environment - Archive of obsolete content
you might also want to set dom.re
port_all_js_exceptions = true.
...useful for testing debug symbols and the crash re
porting system (firefox and thunderbird) javascript object examiner displays javascript object methods and properties for any available scope developer profile and devprefs sets up the development environment described above when installed (firefox and fennec) firefox extension proxy file extension files are normally installed in the user profile.
Firefox addons developer guide - Archive of obsolete content
so there may be still some reference to the xuldev website (we want to host source code on mdc, not on xuldev), and to japanese things (like some specific locales, which have been translated to french since non-latin characters are not well sup
ported).
... gen's opinion: yes, because it is im
portant for developers to make informed decisions regarding oss licenses and it was a part of the original guide.
Using Dependent Libraries In Extension Components - Archive of obsolete content
the firefox extension system does not provide automatic sup
port for loading these dependent libraries, but it is possible to load these libraries explicitly using a component stub.
...static void* lookupsymbol(const mach_header* alib, const char* asymbolname); extern "c" ns_ex
port nsresult nsgetmodule(nsicomponentmanager* acompmgr, nsifile* alocation, nsimodule* *aresult) { nsresult rv; // this is not the real component.
MozOrientation - Archive of obsolete content
warning: this experimental api was removed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3), when sup
port for the standard deviceorientationevent was implemented.
... in firefox versions 3.6, 4, and 5 gecko utilized mozorientation which was also built to sup
port orientation data but with different apis from the specified deviceorientationevent.
List of Former Mozilla-Based Applications - Archive of obsolete content
eed reader switched 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 re
ports 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...
...old article available about how borland embedded mozilla in kylix 2 mango im client last news item on site from january 2007 mobidvd dvd/vcd/cd ripping software site down mozilla suite internet application suite development shifted to firefox, thunderbird and seamonkey applications netscape navigator browser sup
port for netscape ended on february 1, 2008 nvu web authoring tool development stopped in 2005 and is being continued as an unofficial bugfix release by the kompozer project pogo browser from at&t site no longer accessible as of may 2009 pyro desktop desktop environment last news item on site from july 2007 script editor editor inactive ...
Installing plugins to Gecko embedding browsers on Windows - Archive of obsolete content
since the prospect of embedded gecko browsers raises the scenario of more than one gecko-based browser that a netscape-style plugin can work with, it becomes im
portant to let plugin developers know how to discover these browsers on a windows machine.
... original document information last updated date: june 18, 2002 copyright information:
portions of this content are © 1998–2006 by individual mozilla.org contributors; content available under a creative commons license ...
Notes on HTML Reflow - Archive of obsolete content
currently, this is only used by the view
port frame to schedule a reflow to reflow all of the view
port's fixed-position frames.
... original document information author(s): chris waterson last updated date: december 4, 2004 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Source Navigator - Archive of obsolete content
one can check whether the installation is complete by executing: $ which snavigator /usr/bin/snavigator im
porting the source execute the following: snavigator.
...this shows the "auto-create project" dialog: which allows you to decide your filename of the project file (which ends in .proj) and your source directory/directories that you want to im
port into the project.
Working with BFCache - Archive of obsolete content
q: when a user clicks a link that replaces the view in the current tab with a new page, what is the fate of the nsidomwindow sup
porting the view they click on?
...q: hmm, so what event tells me “you'll never get a pageshow so you can drop the megabytes of info you've saved in firebug side table for that page?” a: an observer notification with the topic "inner-window-destroyed" whose subject is an nsisup
portspruint64 containing the window id of the inner window being destroyed.
Tinderbox - Archive of obsolete content
it consists of a set of client machines that continuously build and test mozilla and re
port their results back to a server that makes those results available via a web page.
...only if all clients re
ported both successful builds and successful tests will we display a green icon that signifies all is well with the code.
Creating a Microsummary - Archive of obsolete content
warning: microsummary sup
port was removed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) a microsummary generator is a set of instructions for creating a microsummary from the content of a page.
...all it from http://people.mozilla.com/~myk/micro...ial/index.html, we might add the following code to the index.html page: <button onclick="window.sidebar.addmicrosummarygenerator('http://people.mozilla.com/~myk/microsummaries/tutorial/sfx-generator.xml')">install the spread firefox home page microsummary!</button> clicking that button will generate a javascript error on browsers that don't sup
port microsummaries, however, so to improve the experience for those users, we should check to see if the user is using a microsummaries-enabled browser and display an explanatory message if not.
Getting Started - Archive of obsolete content
the most im
portant directory is \global.
...this is a catchall directory which holds all of the images and styles for
portions of mozilla that don't merit their own individual directory.
DTrace - Archive of obsolete content
mozilla dtrace sup
port has been added by the sun dtrace team and can be used on solaris 10 and mac os x 10.5.
... trunk nightly builds with shark sup
port (*-mac-shark.dmg here) are built with --enable-dtrace.
Installing Dehydra - Archive of obsolete content
dehydra is not sup
ported on mac os x.
...(obsolete dehydra releases can be found on the mozilla ftp site.) hg clone http://hg.mozilla.org/rewriting-and-analysis/dehydra/ cd dehydra ex
port cxx=/usr/bin/g++ ./configure \ --js-headers=$home/obj-js/dist/include \ --js-libs=$home/obj-js make # run dehydra and treehydra tests make check usage dehydra checking can be performed directly within the mozilla build.
Block and Line Layout Cheat Sheet - Archive of obsolete content
objects this section presents some of the classes involved in block and line reflow, along with im
portant members of each object that control reflow processing.
... original document information author(s): chris waterson last updated date: december 4, 2004 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Gecko Coding Help Wanted - Archive of obsolete content
re
ports in bugzilla can be deceptive, deceptively hard...
... original document information author(s): fantasai last updated date: may 4, 2004 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
HTTP Class Overview - Archive of obsolete content
httphandler implements nsiprotocolhandler manages preferences owns the authentication cache holds references to frequently used services nshttpchannel implements nsihttpchannel talks to the cache initiates http transactions processes http response codes intercepts progress notifications nshttpconnection implements nsistreamlistener & nsistreamprovider talks to the socket trans
port service feeds data to its transaction object routes progress notifications nshttpconnectioninfo identifies a connection nshttptransaction implements nsirequest encapsulates a http request and response parses incoming data nshttpchunkeddecoder owned by a transaction strips chunked transfer encoding nshttprequesthead owns a nshttpheaderarray knows how to fill a request buf...
...nshttpauthcache stores authentication credentials for http auth domains nshttpbasicauth implements nsihttpauthenticator generates basic auth credentials from user:pass nshttpdigestauth implements nsihttpauthenticator generates digest auth credentials from user:pass original document information author(s): darin fisher last updated date: august 5, 2002 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
CRMF Request object - Archive of obsolete content
though some browsers may still sup
port it, it is in the process of being dropped.
... warning: the features mentioned in this article are deleted proprietary mozilla extensions, and are not sup
ported in any other browser.
popChallengeResponse - Archive of obsolete content
though some browsers may still sup
port it, it is in the process of being dropped.
... warning: the features mentioned in this article are deleted proprietary mozilla extensions, and are not sup
ported in any other browser.
Java in Firefox Extensions - Archive of obsolete content
liveconnect gives your extension's javascript code (linked from or contained in xul code) access to 2 objects: java and packages (note that per this thread, although the new documentation for the liveconnect reimplementation states that these globals will be deprecated (in the context of applets), "firefox and the java plug-in will continue to sup
port the global java/packages keywords, in particular in the context of firefox extensions.").
...flect.array.newinstance(java.lang.object, 2); // 2nd argument should indicate the number of items in the following array var mydir = new java.io.file(dirurl); // a file url arglist[0] = mydir; var envconfig = envconfigclass.newinstance(); arglist[1] = envconfig; // call our constructor with our arguments var env = constructor.newinstance(arglist); be aware that liveconnect, while now actively sup
ported by sun has only recently been reimplemented for use in mozilla, so there may still be some bugs (though many prior liveconnect bugs, such as try-catch not catching java exceptions, the failure of auto-converting javascript arrays properly, etc., have now been fixed).
Basics - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
...class notifications the notification box appears at the bottom right corner of the browser and displays im
portant information to the user.
Me - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
...the namespace currently lives in the future and must be im
ported before it is used: jetpack.future.im
port("me"); methods onfirstrun(funcfunction)jetpack.me.onfirstrun() allows jetpacks to be notified after they are successfully installed.
Meta - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
... future im
ports experimental new language and api features.
Jetpack Snippets - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
...using firebug lite in a slidebar jetpack.future.im
port("slidebar");jetpack.slidebar.append({ html: <html><head></head><body> <p>some slidbar you want to debug</p> <a href="javascript:console.log('hello!')">test</a> <script><![cdata[ //firebug lite bookmarklet code: var firebug=document.createelement('script'); firebug.setattribute('src','http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'); document.body.appendchild(firebug); (function(){if(window.firebug.version){firebug.init();}else{settimeout(arguments.callee);}})();void(firebug); ]]></script> </body></html>, width: 800, //wide ...
Notifications - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
... the notification box appears at the bottom right corner of the browser and displays im
portant information to the user.
slideBar - Archive of obsolete content
read the experiment re
port for what we learned from it and the blog post announcing the first sdk release for what we're up to next!
...jetpack.future.im
port("slidebar"); methods append(iconurihtmlhtml/xmlurluriwidthintpersistboolautoreloadboolonclickfunctiononselectfunctiononreadyfunction)this is a list of options to specify modifications to your slidebar instance.
Makefile.mozextension.2 - Archive of obsolete content
oject).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 ex
port 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} #seamonkey {92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} #s...
...$(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> </description> </targetapplication> </description> </rdf> endef ex
port install_rdf install.rdf: @echo generating $(project)/install.rdf @echo "$$install_rdf" > $(project)/install.rdf ###### define overlay_xul <overlay id="$(project)-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"><script src="overlay.js"/></overlay> ...
Monitoring downloads - Archive of obsolete content
by matching on both // source uri and start time, we sup
port logging multiple downloads of // the same file.
...by looking for a record with both the same uri and start time, we properly sup
port the case where the user downloads the same file multiple times.
HostWindow - Archive of obsolete content
note: the sidebar is currently not sup
ported.
... we are considering whether to sup
port a sidebar in future versions of prism and welcome input on this subject.
Prism - Archive of obsolete content
basic desktop integration: sup
port of desktop features can make using the app more natural and convenient for end users.
...prism sup
ports a simple styling system that allows the user to add css files to the webapp bundle.
Cmdline tests - Archive of obsolete content
two use cases for the cmdline testsuite: use case 1: test the interactive cmdline debugger test contents: start avmshell -d test.abc, set breakpoint on a line, show local variable value, quit from cmdutils im
port * def run(): r=runtestlib() r.run_test( 'debugger locals', '%s -d testdata/debug.abc'%r.avmrd, input='break 53\ncontinue\nnext\ninfo locals\nnext\ninfo locals\nquit\n', expectedout=['local1 = undefined','local2 = 10','local2 = 15'] ) use case 2: test -memstats returns memory logs to stdout test contents: start avmshell -memstats test.abc, assert stdout contain...
...s 'gross stats', 'sweep m reclaimed n pages.' from cmdutils im
port * def run(): r=runtestlib() r.run_test(name='memstats', command="%s -memstats testdata/memstats.abc" % r.avm, expectedout=[ 'gross stats', 'managed fragmentation', 'gross stats end', 'sweep\\([0-9]+\\) reclaimed [0-9]+ whole pages' ] ...
Using Breakpoints in Venkman - Archive of obsolete content
using breakpoints to debug when you set a breakpoint, you give venkman (or whatever debugger you're using) the op
portunity to display information about the execution environment.
... one of the most im
portant aspects of debugging a script or software program is the ability to examine variables—function return values, errors, counters, variable scopes—as they change over the course of the script execution.
Video presentations - Archive of obsolete content
(as quicktime; 127 mb, 50 mb, and 68 mb) the life cycle of a bug (part 1, part 2) mike connor describes how a bug goes from bug re
port to patch to implemented fix.
... learn how to properly file a good bug re
port, how the bug re
ports are handled, and how to submit and get reviews for patches.
initInstall - Archive of obsolete content
a relative pathname must start with plugins/, to be relative to the plug-ins
portion of that namespace or java/download/, to be relative to the java
portion.
...this distinction is im
portant when you add components with the addfile method.
setRootKey - Archive of obsolete content
when you create a winreg object, it is set to access keys under the hkey_classes_root
portion of the registry.
... if you want to access keys in another
portion, you must use this method to change the root key.
Working With Directories - Archive of obsolete content
file and stream guide: [ nsiscriptableio | accessing files | getting file information | reading from files | writing to files | moving, copying and deleting files | uploading and downloading files | working with directories ] im
portant note: the pages from the file and stream guide use the io object (nsiscriptableio), which was not available in any released version of the platform (pending some fixes).
... there are alternative xpcom apis you can use, your help in updating this pages to use the sup
ported api is very much welcome!
IO - Archive of obsolete content
file and stream guide: [ nsiscriptableio | accessing files | getting file information | reading from files | writing to files | moving, copying and deleting files | uploading and downloading files | working with directories ] im
portant note: the pages from the file and stream guide use the io object (nsiscriptableio), which was not available in any released version of the platform (pending some fixes).
... there are alternative xpcom apis you can use, your help in updating this pages to use the sup
ported api is very much welcome!
TOC - Archive of obsolete content
file and stream guide: [ nsiscriptableio | accessing files | getting file information | reading from files | writing to files | moving, copying and deleting files | uploading and downloading files | working with directories ] im
portant note: the pages from the file and stream guide use the io object (nsiscriptableio), which was not available in any released version of the platform (pending some fixes).
... there are alternative xpcom apis you can use, your help in updating this pages to use the sup
ported api is very much welcome!
Menus - Archive of obsolete content
toolbarbutton toolbar buttons can also sup
port menus.
... menuitems also sup
port displaying shortcuts associated with the menuitem, as well as icons beside the label.
OpenClose - Archive of obsolete content
as with other ways of opening a menu, the popupshowing event will be fired to provide an op
portunity to customize the commands that appear on the menu.
...as long as you pass the right value depending on the situation, it isn't too im
portant to know the specifics of the difference between both cases.
Panels - Archive of obsolete content
a panel is a popup which can sup
port any type of content.
... it is used when sup
porting temporary popup displays for selecting or entering data.
Tooltips - Archive of obsolete content
note that tooltips can only be activated using the mouse, so they should never contain im
portant information that isn't available elsewhere.
... however, it is possible to use another tooltip element that looks differently, or which sup
ports other elements besides a single text label.
Providing Command-Line Options - Archive of obsolete content
t 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.im
port("resource://gre/modules/xpcomutils.jsm"); components.utils.im
port("resource://gre/modules/services.jsm"); // changeme: to the chrome uri of your extension or application const chrome_uri = "chrome://myapp/content/"; /** * utility functions */ /** * opens a chrome window.
... { try { // changeme: change "viewapp" to your command line flag that takes an argument var uristr = cmdline.handleflagwithparam("viewapp", false); if (uristr) { // convert uristr to an nsiuri var uri = cmdline.resolveuri(uristr); openwindow(chrome_uri, uri); cmdline.preventdefault = true; } } catch (e) { components.utils.re
porterror("incorrect parameter passed to -viewapp on the command line."); } // changeme: change "myapp" to your command line flag (no argument) if (cmdline.handleflag("myapp", false)) { openwindow(chrome_uri, null); cmdline.preventdefault = true; } }, // changeme: change the help info as appropriate, but // follow the guidelines in nsicommandlinehandler.idl // spe...
Template Logging - Archive of obsolete content
fortunately, some debugging and logging sup
port is provided with templates that may help.
...however, it is im
portant to note that an error will not be printed simply if data didn't exist for a particular result.
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 sup
port editing: <tree editable="true"> <treecols> <treecol type="checkbox" editable="true"> ...
... currently, only checkbox columns sup
port editing, although the content-based tree handles the nsitreeview.setcellvalue() and nsitreeview.setcelltext() functions to change the tree content with a script for other types of cells.
Box Objects - Archive of obsolete content
x, y the x and y coordinates are referenced from the top left corner of the document in the window (that
portion which excludes the window border and title bar) and refer to the top left corner of the element, including css padding.
... *note that x, y refers to the
portion of the element that is just inside any borders, which is inconsistent with the other four boxobject position and size references, which include borders as part of the element.
Install Scripts - Archive of obsolete content
it is im
portant to note that during step two, you only indicate which files should be installed and any other operations you wish to have happen.
...for maximum
portability, you can't specify a string name for the directory.
Numeric Controls - Archive of obsolete content
a numeric textbox would normally be used when the value was im
portant to the user, for instance, a field to enter a number of days, or the maximum size of a file.
... a scale would be used when the actual value isn't im
portant, just that sliding the scale decreases or increases a state.
Property Files - Archive of obsolete content
non-ascii characters, utf-8 and escaping gecko 1.8.x (or later) sup
ports property files encoded in utf-8.
...property files sup
port escape sequences of the form: \uxxxx , where xxxx is a unicode character code.
Styling a Tree - Archive of obsolete content
(we don't use getrowproperties() as the text color will not be inherited into each cell.) prior to gecko 22 the properties object that is passed as the last argument to the getcellproperties() is an xpcom object that implements nsisup
portsarray.
... getcellproperties: function(row,col){ if ((row %4) == 0){ return "makeitblue"; } } to sup
port gecko versions before and after this change use.
Tree View Details - Archive of obsolete content
this tree will only sup
port a single parent level with an inner child level, but it could be extended to sup
port additional levels without too much effort.
... function init() { document.getelementbyid("elementlist").view = treeview; } the custom tree view will need to implement a number of methods, of which the im
portant ones will be examined individually.
Trees - Archive of obsolete content
the tree also sup
ports nested rows, whereas the listbox does not.
...this is an im
portant point and many xul developers have trouble understanding this aspect.
Using Spacers - Archive of obsolete content
if adding sup
port for multiple languages, the text for one language may require more room than another.
... applications that need to sup
port multiple platforms and languages usually have their windows laid out with lots of space to allow for this.
The Implementation of the Application Object Model - Archive of obsolete content
if we ship a browser that does not have 100% sup
port for css2, for example, but we've extended html by adding 20-30 new tags, people are going to put down their blinders and see only the fact that we were off adding a whole slew of new stuff to html when we could have been firming up our standards story.
...four interfaces with over 100 methods combined, a significant
portion of which are redundant.
button - Archive of obsolete content
panel elements are popups that sup
port any type of content.
...ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related interfaces nsiaccessibleprovider, nsidomxulbuttonelement ...
grid - Archive of obsolete content
<grid> <columns> <column flex="1"/> <column flex="2"/> </columns> <rows> <row> <label value="user name"/> <textbox id="user"/> </row> <row> <label value="group"/> <menulist> <menupopup> <menuitem label="accounts"/> <menuitem label="sales" selected="true"/> <menuitem label="sup
port"/> </menupopup> </menulist> </row> </rows> </grid> </groupbox> 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, ...
...ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements columns, column, rows, row.
iframe - Archive of obsolete content
currently, xul iframes running in remote processes are not sup
ported.
...ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related nsiaccessibleprovider ...
image - Archive of obsolete content
the new behavior aligns more with the html <img> element and shrinks both the width and height down pro
portionally.
...ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes alert-icon class that adds an alert icon.
menupopup - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata hidepopup() return type: no return value closes the popup immediately.
...an unanchored popup appears at the position specified by x and y, relative to the view
port of the document containing the popup node.
notification - Archive of obsolete content
info a notification that is of lesser im
portance.
...ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata close() return type: no return value closes the notification or findbar and removes it from its ...
preferences - Archive of obsolete content
void observe(in nsisup
ports asubject, in string atopic, in wstring adata); nsiobserver method used internally to react to changes to preferences listed as children of this element.
...ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related preferences system documentation: introduction: getting started | examples | trouble...
prefwindow - Archive of obsolete content
im
portant note for xulrunner-based applications: the preferences system - part of the toolkit - still relies on two browser.* preferences.
...ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata acceptdialog() return type: no return value accepts the dialog and closes it, s...
richlistbox - Archive of obsolete content
note: in versions of firefox prior to firefox 3, rich list boxes sup
port only single selection.
...ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata additemtoselection( item ) return type: no return value selects the given item, without desel...
richlistitem - Archive of obsolete content
does not sup
port setting label values.
...ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related interfaces nsiaccessibleprovider, nsidomxulselectcontrolitemelement ...
toolbar - Archive of obsolete content
note: gecko 2.0 adds sup
port for external toolbars.
...ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), 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 ...
toolbox - Archive of obsolete content
note: gecko 2.0 adds sup
port for external toolbars.
...ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata appendcustomtoolbar( name, currentset ) firefox only return type: element adds a custom toolbar...
tooltip - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata hidepopup() return type: no return value closes the popup immediately.
...an unanchored popup appears at the position specified by x and y, relative to the view
port of the document containing the popup node.
tree - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata startediting( row, column ) return type: no return value activates user editing of the given cell...
... { 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 !im
portant;} treechildren:-moz-tree-column { border-right:1px solid rgb(220,220,220) !im
portant; } the javascript to get the text for the selected row/rows: function getrowcellvalues() { var tree = document.getelementbyid('mytree'); for (var i = 0; i < tree.view.rowcount; i++) { if (tree.view.getcellvalue(i, tree.columns.getcolumnat(0)) == 'true'){ alert(tree.view.getcelltext(i, tree...
Building XULRunner - Archive of obsolete content
by default, xulrunner is built with javaxpcom sup
port; the build system must be able to find an appropriate jdk on the system; see the instructions on building javaxpcom for more details.
... if you do not want to build javaxpcom sup
port, specify --disable-javaxpcom in your configuration.
Building XULRunner with Python - Archive of obsolete content
for example def onload(): btntest = document.getelementbyid("btntest") btntest.addeventlistener('command', ontest, false) def ontest(): window.alert('button activated') window.addeventlistener('load', onload, false) one possible gotcha is that the default python path used to find modules that areim
ported explicitly includes the xulrunner executable directory and the directory that is current when xulrunner launches.
...h.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.re
porterror(str); } a final tip is to use task manager to check for a zombie xulrunner process after a crash.
Custom app bundles for Mac OS X - Archive of obsolete content
ents/ info.plist (application bundle properties are specified in this xml file.) pkginfo (this is a simple text file and is created along with the info.plist file) 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 sup
port 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/ pre...
... examples these example files are taken from a
port of webrunner which was created to illustrate one method of mac os x application packaging.
Using LDAP XPCOM with XULRunner - Archive of obsolete content
by default, xulrunner is built without ldap xpcom sup
port.
... if you want to use ldap components in your xul application, you have two options : compile xulrunner with ldap sup
port enabled, or add ldap xpcom directly to your xul app (in the components directory).
Using SOAP in XULRunner 1.9 - Archive of obsolete content
it requires servers to sup
port wsdl which took it out of the running.
...(there is a diff below.) you'll need: sasoapclient.js saxmlutils.js making a soap call var url = 'http://example.com/soap/'; var ns = 'http://example.com/soap/namespace'; var method = 'foo'; var params = { 'foo': 'bar', 'baz': 'bang' }; var callback = function(obj) { components.utils.re
porterror(obj.tosource()); }; soapclient.proxy = url; var body = new soapobject(method); body.ns = ns; for (var k in params) { body.appendchild(new soapobject(k).val(params[k])); } var req = new soaprequest(url, body); req.action = ns + '#' + method; soapclient.sendrequest(req, callback); diff between jqsoapclient.js and sasoapclient.js 42c42 < var jsout = $.xmltojson(xdata.responsexml); ---...
What XULRunner Provides - Archive of obsolete content
the following features are either already implemented or planned: gecko features xpcom networking gecko rendering engine dom editing and transaction sup
port (no ui) cryptography xbl (xbl2 planned) xul svg xslt xml extras (xmlhttprequest, domparser, etc.) web services (soap) auto-update sup
port (not yet complete) type ahead find toolbar history implementation (the places implementation in the 1.9 cycle) accessibility sup
port ipc services for communication between gecko-based apps (not yet complete) storage/sqlite interfaces user interface features the following user interface is supplied by xul...
...rovided by xulrunner: cross-platform embedding (xre_initembedding) javaxpcom embedding gtkmozembed (linux only) activex control (windows only) (not yet complete) obsolete since gecko 7.0 nsview-based-widget (mac os x only) (not yet complete) the "maybe" list the following features have been discussed and may be included if developer time permits and code size is controlled: ldap sup
port spellchecking sup
port (with or without dictionaries provided) see bug 285977 core sup
port for profile roaming (with application-specific extensibility) pyxpcom embedding (not yet complete) - but it does work, if you compile a custom build that includes the pyxpcom bindings and there is a working python available.
Windows and menus in XULRunner - Archive of obsolete content
xul provides elements to sup
port both menus and toolbars.
...here’s the css file: /* global skin --------------------------------------------------- */ @im
port 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.
XUL Explorer - Archive of obsolete content
sup
port attribute value checking where appropriate (boolean and enumerated values) - xul checker sup
port “best practice” checks such as: using of commands and keys, strings in dtds and so on - xul checker multi-tabbed editor sup
port sup
port wizards to generate common projects - extensions sup
port extension testing using firefox extension test mode venkman sup
port dom inspector sup
port future:...
... sup
port more “best practice” checks such as: more a11y checks, strings in dtds and so on - xul checker allow users to add snippets on the fly add sidebars for more functionality - property sidebar and project sidebar sup
port wizards to generate common projects - xul files, js xpcom, and xulrunner applications for more detailed information, see the xul_explorer:planning#feature_planning_for_xul_explorer.
calICalendarViewController - Archive of obsolete content
interface code [scriptable, uuid(1f783898-f4c2-4b2d-972e-360e0de38237)] interface calicalendarviewcontroller : nsisup
ports { void createnewevent (in calicalendar acalendar, in calidatetime astarttime, in calidatetime aendtime); void modifyoccurrence (in caliitemoccurrence aoccurrence, in calidatetime anewstarttime, in calidatetime anewendtime); void deleteoccurrence (in caliitemoccurrence aoccurrence); }; methods createnewevent void createnewevent (in calicalendar a...
... related interfaces calicalendarview calidecoratedview example code var myviewcontroller = { queryinterface: function(aiid) { if (!aiid.equals(components.interfaces.calicalendarviewcontroller) && !aiid.equals(components.interfaces.nsisup
ports)) { throw components.results.ns_error_no_interface; } return this; }, createnewevent: function (acalendar, astarttime, aendtime) { // if we're given both times, skip the dialog if (astarttime && aendtime && !astarttime.isdate && !aendtime.isdate) { var event = createevent(); event.startdate = astarttime; eve...
xbDesignMode.js - Archive of obsolete content
*
portions created by the initial developer are copyright (c) 2003 * the initial developer.
... * * contributor(s): doron rosenberg <doron@netscape.com> (original author) * * * * ***** end license block ***** */ /* xbdesignmode a javascript wrapper for browsers that sup
port designmode */ function xbdesignmode(aiframe){ this.meditordocument = null; this.miframeelement = null; // argument is a string, therefore an id if ( (typeof(aiframe) == "string") && (document.getelementbyid(aiframe).tagname.tolowercase()=="iframe") ){ this.miframeelement = document.getelementbyid(aiframe); } else if( (typeof(aiframe)=="object") && (aiframe.tagname.tolowercase() == "iframe") ){ this.miframeelement = aiframe; } else { throw "argument isn't an id of an iframe or an iframe reference"; } if (this.miframeelement.contentdocument){ //...
2006-11-10 - Archive of obsolete content
im
portant dates: technical submissions: monday 19th feb 2007 technical paper notification: friday 16th march 2007 communication submissions: monday 26th march 2007 communication paper notification: friday 06th april 2007 all camera ready due: monday 16th april 2007 conference dates: monday 07th and tuesday 08th may 2007 notable keynotes representatives from w3c, ibm, university of manchester, uk and o...
...this is re
ported to have broken accesskeys using numeric values.
2006-11-22 - Archive of obsolete content
he expressed his gratitude and thanks everyone for being sup
portive during and after the summit.
... idispatch sup
port for jaws scripting needed aaron leventhal stated that currently there is no idispatch sup
port for iaccessible's in mozilla.
2006-12-01 - Archive of obsolete content
discussions firefox 2.0 should re-implement modal window.open to sup
port web 2.0 a plea to re-implement the option to show modal windows, using window.open(), from inside an untrusted script.
... discussion of sup
port for modal windows within firefox 2.0 a lengthy post regarding the re-implementation of modal windows into firefox.
2006-10-06 - Archive of obsolete content
summary: mozilla.dev.builds - september 30th to october 6th 2006 tb mozilla_1_8_branch build problem on mac os x (10.4.7, universal build) ludwig hügelschäfer stated that he has been encountering an error when he executes a "make ex
port" operation on thunderbird (part of the mozilla_1_8_branch) since september 15th.
... ../../dist/host/bin/host_xpidl -m header -w -i~mozilla/xpcom/base -i../../dist/idl -o _xpidlgen/nsiconsolelistener ~/mozilla/xpcom/base/nsiconsolelistener.idl gmake[2]: *** [_xpidlgen/nsiconsolelistener.h] bus error gmake[2]: *** deleting file `_xpidlgen/nsiconsolelistener.h' gmake[1]: *** [ex
port] error 2 make: *** [all] error 2:: on octorber 4th ludwig hügelschäfer responded to his original post with the solution to his own problem.
2006-09-22 - Archive of obsolete content
summary: mozilla.dev.i18n - feb 2nd - sep 22nd, 2006 announcements testing a dummy greek bon echo nsis installer bug #69230: accelerators should not be affected by keyboard group/level proposal of code changes for l10n in firefox 3 discussions thai language sup
port: how can we add thai as an official localized build?
... thai issue for 2.0 timeframe arabic sup
port & uniscribe: details nstextframe: re-design and impact on i18n native unicode converter editing and selection: should editing and selection operate on grapheme clusters?
2006-09-29 - Archive of obsolete content
summary of newsgroup moz.dev.platform summary: mozilla.dev.platform - september 22 - 29, 2006 announcements firefox 2 release candidate 1 is now available for download announcing that firefox 2 rc 1 is available for download discussions xulrunner fails without feedback on osx intel 10.4.7 will morton is trying to
port a xul application to osx.
...this happens with all his xulrunner
ports, with xulrunner 1.8.0.1, 1.8.0.4 and nightly 1.8.
2006-11-10 - Archive of obsolete content
benjamin smedberg crossposted a notice about unit testing for the mozilla toolkit, letting developers know about the im
portance of testing for the improvement of mozilla 2, and asks for complete coverage.
...he is looking for xptcall
port maintainers to submit patches to bug 349002.
Monitoring plugins - Archive of obsolete content
this component then re
ports the plugin runtime using the observer service to anyone registered to receive the notifications.
... runtime data the runtime information re
ported is always in fractions of a second.
NPN_GetAuthenticationInfo - Archive of obsolete content
syntax #include <npapi.h> nperror npn_getauthenticationinfo(npp instance, const char *protocol, const char *host, int32_t
port, const char *scheme, const char *realm, char **username, uint32_t *ulen, char **password, uint32_t *plen); parameters this function has the following parameters: instance pointer to the current plug-in instanc...
...e protocol protocol name (uri scheme) host host name
port port number scheme http authentication scheme name realm http authentication realm username out parameter.
NPN_InvalidateRect - Archive of obsolete content
« gecko plugin api reference « browser side plug-in api summary invalidates the specified
portion of the plugin's drawing area, adding it to the region that needs to be redrawn when the plugin next repaints its contents.
... syntax #include <npapi.h> void npn_invalidaterect(npp instance, nprect *invalidrect); parameters the function has the following parameters: instance pointer to the plug-in instance to invalidate a
portion of.
NPN_SetValueForURL - Archive of obsolete content
(while the api theoretically allows the preferred proxy for a given url to be changed, doing so does not have much meaning given how proxies are configured, and is not sup
ported.) syntax #include <npapi.h> typedef enum { npnurlvcookie = 501, npnurlvproxy } npnurlvariable; nperror npn_setvalueforurl(npp instance, npnurlvariable variable, const char *url, const char *value, uint32_t len); parameters this function has the following parameters: instance pointer to the current plug-in instance.
...the only sup
ported type is npnurlvcookie.
Shipping a plugin as a Toolkit bundle - Archive of obsolete content
as of firefox 3 (and any gecko 1.9 based application) the use of install.js scripts is no longer sup
ported and plugins must either be shipped as an executable installer or in a bundle as described here.
...gecko 2.0 (firefox 4) and later gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) removed sup
port for platform-specific subdirectories.
The First Install Problem - Archive of obsolete content
example: [hkey_local_machine\software\mozillaplugins\]\@mycompany.com/myapplication,version=5.01\mimetypes\application/x-myapp] description=myapplication plugin for app files "suffixes" -- this will be a semi-colon concatenated list of sup
ported suffixes.
... example: [hkey_local_machine\software\mozillaplugins\]\@mycompany.com/myapplication,version=5.01\mimetypes\application/x-myapp] suffixes=app suffixes -- a subkey containing string values (reg_sz) representing all the suffixes (3 digit extensions) sup
ported by this module.
Writing a plugin for Mac OS X - Archive of obsolete content
xp_macosx it's im
portant to define the gcc preprocessor definition xp_macosx to 1; this is used by the npapi headers to build properly on mac os x.
... if you want to implement your plugin in c++ or objective-c++, you need to tell the compiler to ex
port them in c format by using extern "c" in the header, like this: #pragma gcc visibility push(default) extern "c" { nperror np_initialize(npnetscapefuncs *browserfuncs); nperror np_getentrypoints(nppluginfuncs *pluginfuncs); void np_shutdown(void); } #pragma gcc visibility pop you can check to be sure your symbols are visible and in standard c format by using the nm utility provided among...
Plugins - Archive of obsolete content
im
portant: since firefox 52, all plugin sup
port except flash has been dropped (see plug-in sup
port has been dropped other than flash for more details).
... sup
porting private browsing in plugins firefox 3.5 introduced sup
port for private browsing; learn how to make your plugin respect the user's privacy wishes.
Solaris 10 Build Prerequisites - Archive of obsolete content
/opt/jdsbld/bin/env.sh to im
port the jds cbe settings into your environment.
...--- env.sh.orig tue jul 1 02:38:35 2008 +++ env.sh tue jun 24 01:08:01 2008 @@ -95,7 +95,8 @@ echo setting ld=$ld ex
port ld -path="$cbe_prefix/bin:/usr/ccs/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/bin:/usr /sfw/bin:$ccdir" +path="/opt/sfw/bin:$cbe_prefix/bin:/usr/ccs/bin:/usr/gnu/bin:/usr/bin:/usr/s bin:/bin:/usr/sfw/bin:$ccdir" test "x$jds_cbe_env_quiet" != x1 && \ echo setting path=$path ex
port path +ex
port pkg_config_path=/opt/sfw/lib/pkgconfig:/usr/lib/pkgconfig 3.
Table Reflow Internals - Archive of obsolete content
overview review of reflow table frames table reflow intro to paginated reflow table paginated reflow review of reflow reflow process starts when an html document starts loading (the frame tree contains only view
port, scroll(s), canvas, html, body).
... review of reflow reflow starts with pres shell which reflows the reflow root (usually the view
port frame), which reflows it children, etc.
Theme changes in Firefox 3.5 - Archive of obsolete content
sup
porting 3.5 features video/audio player: controlbar has to be styled (chrome://global/skin/media/videocontrols.css) shadow effect for disabled text using text-shadow.
...to do this only for 3.5 use a css selector that is only sup
ported in 3.5, like so: window:not([active="true"]) menubar>menu:nth-child(1n) { color:threedshadow } private browsing: show private browsing state by coloring the url bar, or by adding an icon to the toolbox/tabbrowserbar.
Using Web Standards in your Web Pages - Archive of obsolete content
the problem lies with designers and developers chained to the browser-quirk-oriented markup of the 1990s-often because they don't realize it is possible to sup
port current standards while accommodating old browsers." -web standards project this article provides an overview of the process for upgrading the content of your web pages to conform to the world wide web consortium (w3c) web standards.
...nts benefits of using web standards making your page using web standards - how to using the w3c dom developing cross browser and cross platform pages using xmlhttprequest summary of changes references original document information author(s): mike cowperthwaite, marcio galli, jim ley, ian oeschger, simon paquet, gérard talbot last updated date: may 29, 2008 copyright information:
portions of this content are © 1998–2008 by individual mozilla.org contributors; content available under a creative commons license | details.
::-ms-check - Archive of obsolete content
this pseudo-element is sup
ported only in internet explorer and microsoft edge.
... browser compatibility historically sup
ported in internet explorer and edge before version 79.
::-ms-fill-lower - Archive of obsolete content
the ::-ms-fill-lower css pseudo-element represents the lower
portion of the track of a slider control; that is, the
portion corresponding to values less than the value currently selected by the thumb.
... browser compatibility historically sup
ported in internet explorer and edge before version 79.
::-ms-fill-upper - Archive of obsolete content
the ::-ms-fill-upper css pseudo-element is a microsoft extension that represents the upper
portion of the track of a slider control; that is, the
portion corresponding to values greater than the value currently selected by the thumb.
... browser compatibility historically sup
ported in internet explorer and edge before version 79.
E4X - Archive of obsolete content
ecmascript for xml (e4x) is a programming language extension that adds native xml sup
port to javascript.
... e4x doesn't sup
port parsing xml declaration.
Array.observe() - Archive of obsolete content
changes done via array methods, such as array.prototype.pop() will be re
ported as "splice" changes.
... index assignment changes which do not change the length of the array may be re
ported as "update" changes.
ArrayBuffer.transfer() - Archive of obsolete content
uf2.bytelength; // 80 new int32array(buf2)[0]; // 42 var buf3 = arraybuffer.transfer(buf2, 0); buf2.bytelength; // 0 but if you use the polyfill then the value is still 80 buf3.bytelength; // 0 polyfill you can partially work around this by inserting the following code at the beginning of your scripts, allowing use of much of the functionality of transfer() in browsers that do not natively sup
port it.
... this is not the exact equivalent of this api because browsers that natively sup
port it are be able to internally use the c++ function realloc() which extends the length of the memory and only copies it to a new location as-needed as opposed to the following pollyfill which always copies the whole thing to a new space of memory, but this function transfers data from one arraybuffer to another arraybuffer.
Debug.write - Archive of obsolete content
var counter = 42; debug.write("the value of counter is " + counter); requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards, internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
Debug.writeln - Archive of obsolete content
var counter = 42; debug.writeln("the value of counter is " + counter); requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards, internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
Debug - Archive of obsolete content
var counter = 42; debug.write("the value of counter is " + counter); requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards, internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
ScriptEngine() - Archive of obsolete content
example the following example illustrates the use of the scriptengine function: if (window.scriptengine) { console.log(window.scriptengine()); } // output: jscript requirements sup
ported in the following document modes: quirks, internet explorer 6 standards, internet explorer 7 standards, internet explorer 8 standards, internet explorer 9 standards, internet explorer 10 standards, internet explorer 11 standards.
... also sup
ported in store apps (windows 8 and windows phone 8.1).
New in JavaScript 1.2 - Archive of obsolete content
netscape navigator 4.0 was the third major version of the browser with javascript sup
port.
...new methods array.prototype.concat() array.prototype.slice() string.prototype.charcodeat() string.prototype.concat() string.fromcharcode() string.prototype.match() string.prototype.replace() string.prototype.search() string.prototype.slice() string.prototype.substr() new operators delete equality operators (== and !=) new statements labeled statements switch do...while im
port ex
port other new features regular expressions signed scripts changed functionality in javascript 1.2 you can now nest functions within functions.
New in JavaScript 1.3 - Archive of obsolete content
getutcminutes() date.prototype.getutcseconds() date.prototype.getutcmilliseconds() date.prototype.toutcstring() date.prototype.setutcfullyear() date.prototype.setutcmonth() date.prototype.setutcdate() date.prototype.setutchours() date.prototype.setutcminutes() date.prototype.setutcseconds() date.prototype.setutcmilliseconds() other new features strict equality operators unicode sup
port a javascript console was introduced.
... statements label switch do...while ex
port im
port built-in objects regexp methods of built-in objects tosource() object.prototype.watch() object.prototype.unwatch() function.arity function.prototype.apply() function.prototype.call() array.prototype.concat() array.prototype.pop() array.prototype.push() array.prototype.shift() array.prototype.slice() array.prototype.splice() string.prototype.concat() string.prototype...
New in JavaScript 1.7 - Archive of obsolete content
iterators and generators array comprehensions let statement (sup
port for let expression was dropped in gecko 41, see bug 1023609).
... const statement destructuring assignment (sup
port for js1.7 style destructuring for-in was dropped in gecko 40, see bug 1083498).
Archived JavaScript Reference - Archive of obsolete content
see also the newer version of date.prototype.tolocaledatestring().ecmascript 2016 to es.next sup
port in mozillaexpression closuresexpression closures are a shorthand function syntax for writing simple functions.for each...inthe for each...in statement iterates a specified variable over all values of object's properties.
...to make the function a legacy generator, the function body should contain at least one yield expression.microsoft javascript extensionsmicrosoft browsers (internet explorer, and in a few cases, microsoft edge) sup
port a number of special microsoft extensions to the otherwise standard javascript apis.new in javascriptthis chapter contains information about javascript's version history and implementation status for mozilla/spidermonkey-based javascript applications, such as firefox.number.tointeger()the number.tointeger() method used to evaluate the passed value and convert it to an integer, but its implementati...
Examples - Archive of obsolete content
if you wish to test these examples by yourself, please read the im
portant notes.
... im
portant notes if you plan to test these examples by yourself, you must use the right filename extension (it is written at the beginning of the code).
Styling the Amazing Netscape Fish Cam Page - Archive of obsolete content
since i wanted them to be side by side, it was im
portant to be sure the total width of the element boxes (including margins) was less than 50%, so the first step was this: div.card {float: left; width: 45%; margin: 1em 2% 0 2%;} by making the content of each card 45% the width of the containing element, and adding 2% margin to both the left and right sides, each card's element box is 49% as wide as the parent.
... conclusion redesigning a classic is something like being asked to revisemoby dick for modern audiences: you're thrilled at the op
portunity, but afraid of doing injustice to the original.
XForms Custom Controls Examples - Archive of obsolete content
"content"></xhtml:div> <children/> </content> <implementation implements="nsixformsuiwidget"> <field name="_domparser">null</field> <property name="domparser" readonly="true"> <getter> if (!this._domparser) this._domparser = new domparser(); return this._domparser; </getter> </property> <method name="refresh"> <body> // get new value, parse, and im
port it.
... var val = this.stringvalue; var newdom = this.domparser.parsefromstring(val, "text/xml"); var impnode = document.im
portnode(newdom.firstchild, true); // get content node, clean it, and update it var content = document.getanonymouselementbyattribute(this, "anonid", "content"); if (content.firstchild) { content.removechild(content.firstchild); } content.appendchild(impnode); return true; </body> </method> </implementation> </binding> ...
XForms Input Element - Archive of obsolete content
introduction this element is an im
portant and oft-used xforms element to show and change the instance data to which this xforms control is bound (see the spec).
... attributes ui common appearance - the value of this attribute gives a hint to the xforms processor as to which type of widget(s) to use to represent this control accesskey - used to specify the keyboard shortcut for focusing this control single-node binding special inputmode - not sup
ported for this control incremental - sup
ported.
XForms Range Element - Archive of obsolete content
attributes ui common appearance - isn't sup
ported.
... single-node binding special incremental - sup
ported, default value is false start - lower bound of possible values end - upper bound of possible values step - is used for incrementing/decrementing values start/end/step attributes if the value of the bound instance node is outside the range of values specified by the start and end attributes, then the range element receives a xforms-out-of-range event.
XUL Booster - Archive of obsolete content
xul booster is a third party eclipse / webtools build that offers some sup
port for xul editing and awesome sup
port for extension packaging.
...it sup
ports ex
porting xpi files or registering a file system based project.
Common causes of memory leaks in extensions - Extensions
the following example shows how to unload your modules again (bootstrap.js): components.utils.im
port("resource://gre/modules/services.jsm"); function startup(data, reason) { // this assumes your add-on did register some chrome components.utils.im
port("chrome://myaddon/content/mymodule.jsm"); } function shutdown(data, reason) { // no need to do regular clean up when the application is closed // unless you need to break circular references that might negatively // impact the shutdown p...
... if (reason == app_shutdown) return; // your add-on needs to unload all modules it ships and im
ported!
Examples - Game development
pyramid solitaire ancient egypt pyramid solitaire app
ported to webassembly with emscripten assorted demos wavegl webgl visualizer for sound sources.
... canvas air
port simulation animated map showing planes taking off and landing at air
ports, along with flight path patterns.
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 sup
port (and webxr sup
port if you have available vr or ar hardware) such as the latest firefox or chrome — download firefox nightly or chrome (v54 or higher).
...the community is growing, just like the number of sup
ported vr devices — it's a great time to start experimenting with such frameworks.
Building up a basic demo with Babylon.js - Game development
you should start off by: making sure you are using a modern browser with good webgl sup
port, such as the latest firefox or chrome.
...</script> <canvas id="render-canvas"></canvas> <script> var canvas = document.getelementbyid("render-canvas"); /* all our javascript code goes here */ </script> </body> </html> it contains some basic information like the document <title>, and some css to set the width and height of the <canvas> element (which babylon.js will use to render the content on) to fill the entire available view
port space.
Building up a basic demo with the PlayCanvas engine - Game development
you should start off by: making sure you are using a modern browser with good webgl sup
port, such as the latest firefox or chrome.
...cript> <canvas id="application-canvas"></canvas> <script> var canvas = document.getelementbyid("application-canvas"); /* all our javascript code goes here */ </script> </body> </html> it contains some basic information like the document <title>, and some css to set the width and height of the <canvas> element that playcanvas will use to 100% so that it will fill the entire available view
port space.
GLSL Shaders - Game development
you should: make sure you are using a modern browser with good webgl sup
port, such as the latest firefox or chrome.
...'s code goes here </script> <script id="fragmentshader" type="x-shader/x-fragment"> // fragment shader's code goes here </script> <script> // scene setup goes here </script> </body> </html> it contains some basic information like the document <title>, and some css to set the width and height of the <canvas> element that three.js will insert on the page to be the full size of the view
port.
Mobile touch controls - Game development
pure javascript demo let's implement the mobile sup
port in a little demo available on github, so we can move the player's ship by touching the screen on a mobile device.
... summary that covers adding touch controls for mobile; in the next article we'll see how to add keyboard and mouse sup
port.
Implementing game control mechanisms - Game development
in the following articles we will show how to implement various different control mechanisms for captain rogers to sup
port different platforms — from touch on mobile, through keyboard/mouse/gamepad on desktop, to more unconventional ones like tv remote, shouting to or waving your hand in front of the laptop, or squeezing bananas.
... pure javascript demo there's also a small online demo with full source code available on github where the basic sup
port for the control mechanisms described in the articles is implemented in pure javascript.
Efficient animation for web games - Game development
this article covers techniques and advice for creating efficient animation for web games, with a slant towards sup
porting lower end devices such as mobile phones.
... how this conclusion was reached, however, is more im
portant than the conclusion itself.
Gecko - MDN Web Docs Glossary: Definitions of Web-related terms
besides this, gecko makes sure associated apis work well on every operating system gecko sup
ports, and that appropriate apis are exposed only to relevant sup
port targets.
... this means that gecko includes, among other things, a networking stack, graphics stack, layout engine, a javascript virtual machine, and
porting layers.
HTTP - MDN Web Docs Glossary: Definitions of Web-related terms
resources using the "http" schema are typically trans
ported over unencrypted connections using the http protocol.
... the "https" scheme (as in "https://developer.mozilla.org") indicates that a resource is trans
ported using the http protocol, but over a secure tls channel.
HTTP/2 - MDN Web Docs Glossary: Definitions of Web-related terms
the primary goals for http/2 are to reduce latency by enabling full request and response multiplexing, minimize protocol overhead via efficient compression of http header fields, and add sup
port for request prioritization and server push.
...instead, http/2 modifies how the data is formatted (framed) and trans
ported between the client and server, both of which manage the entire process, and hides application complexity within the new framing layer.
Internationalization - MDN Web Docs Glossary: Definitions of Web-related terms
internationalization is the process of architecting your web application so that it can be quickly and easily adapted to various languages and regions without much engineering effort when new languages and regions are sup
ported.
... internationalization includes sup
port for multiple character sets (usually via unicode), units of measure (currency, °c/°f, km/miles, etc.), date and time formats, keyboard layouts, and layout and text directions.
Polyfill - MDN Web Docs Glossary: Definitions of Web-related terms
a polyfill is a piece of code (usually javascript on the web) used to provide modern functionality on older browsers that do not natively sup
port it.
... for example, a polyfill could be used to mimic the functionality of an html canvas element on microsoft internet explorer 7 using a silverlight plugin or mimic sup
port for css rem units, or text-shadow, or whatever you want.
Site - MDN Web Docs Glossary: Definitions of Web-related terms
this is computed by consulting a public suffix list to find the
portion of the host which is counted as the public suffix (e.g.
... examples of the same site https://developer.mozilla.org/docs/ https://sup
port.mozilla.org/ same site because the registrable domain of mozilla.org is the same http://example.com:8080 https://example.com same site because scheme and
port are not relevant examples of different site https://developer.mozilla.org/docs/ https://example.com not same site because the registrable domain of the two urls differs specifications specification status comment url living standard initial definition ...
TCP - MDN Web Docs Glossary: Definitions of Web-related terms
tcp (transmission control protocol) is an im
portant network protocol that lets two hosts connect and exchange data streams.
... tcp has concurrence control, which means the initial requests start small, increasing in size to the levels of bandwidth the computers, servers, and network can sup
port.
About Scriptable Interfaces - Interfaces
when we label an interface as scriptable, we're saying that components ex
porting this interface can be referenced (through this interface) from scripts (e.g javascript), and that we can write new components implementing the interface using script languages.
...no other scripts languages are sup
ported by xpconnect.
Accessibility - Learn web development
beyond mechanical use, it's im
portant to learn how to use these technologies responsibly so that all readers might use your creations on the web.
... mobile accessibility with web access on mobile devices being so popular, and popular platforms such as ios and android having fully-fledged accessibility tools, it is im
portant to consider the accessibility of your web content on these platforms.
Combinators - Learn web development
we have covered a lot in this article, but can you remember the most im
portant information?
...next we will move on to another im
portant part of css — the css box model.
Test Your Skills: Fundamental layout comprehension - Learn web development
the navigation bar should scroll with the content and then become stuck at the top of the view
port when it reaches it.
... in this module introduction to css layout normal flow flexbox grid floats positioning multiple-column layout responsive design beginner's guide to media queries legacy layout methods sup
porting older browsers fundamental layout comprehension assessment ...
Normal Flow - Learn web development
the normal layout flow (mentioned in the layout introduction article) is the system by which elements are placed inside the browser's view
port.
... previous overview: css layout next in this module introduction to css layout normal flow flexbox grid floats positioning multiple-column layout responsive design beginner's guide to media queries legacy layout methods sup
porting older browsers fundamental layout comprehension assessment ...
How does the Internet work? - Learn web development
it began in the 1960s as a us-army-funded research project, then evolved into a public infrastructure in the 1980s with the sup
port of many public universities and private companies.
... the various technologies that sup
port the internet have evolved over time, but the way it works hasn't changed that much: internet is a way to connect computers all together and ensure that, whatever happens, they find a way to stay connected.
How much does it cost to do something on the Web? - Learn web development
editors can all ex
port finished projects to standard file formats, but each editor saves ongoing projects in its own specialized format.
... isp access make sure that you have sufficient bandwidth: low-bandwidth access may be adequate to sup
port a 'simple' website: reasonably-sized images, texts, some css and javascript.
How do you upload your files to a web server? - Learn web development
your account is: demozilla your website will be visible at demozilla.examplehostingprovider.net to publish to this account, please connect through sftp with the following credentials: sftp server: sftp://demozilla.examplehostingprovider.net username: demozilla password: quickbrownfox
port: 5548 to publish on the web, put your files into the public/htdocs directory.
... fill in the correct
port and other information.
What are hyperlinks? - Learn web development
in the rest of this article, we discuss the various types of links and their im
portance to modern web design.
... when you're starting out, you don't have to worry about external and incoming links as much, but they are very im
portant if you want search engines to find your site (see below for more details).
How do you set up a local testing server? - Learn web development
enter the command to start up the server in that directory: # if python version returned above is 3.x python3 -m http.server # on windows try "python" instead of "python3", or "py -3" # if python version returned above is 2.x python -m simplehttpserver by default, this will run the contents of the directory on a local web server, on
port 8000.
... note: if you already have something running on
port 8000, you can choose another
port by running the server command followed by an alternative
port number, e.g.
Common questions - Learn web development
in this article we go over how web servers work, and why they're im
portant.
... this article covers the all-im
portant first step of every project: define what you want to accomplish with it.
Advanced text formatting - Learn web development
this however has fallen into disuse — it wasn't sup
ported in browsers as well as <abbr>, and <abbr> has such a similar function that it was considered pointless to have both.
... you've reached the end of this article, but can you remember the most im
portant information?
Marking up a letter - Learn web development
inline semantics the names of the sender and receiver (and tel and email) should be marked up with strong im
portance.
... try to mark up at least two appropriate words in the text with strong im
portance/emphasis.
General asynchronous programming concepts - Learn web development
overview: asynchronous next in this article, we'll run through a number of im
portant concepts relating to asynchronous programming, and how this looks in web browsers and javascript.
...programming languages that can sup
port multiple threads can use multiple cores to complete multiple tasks simultaneously: thread 1: task a --> task b thread 2: task c --> task d javascript is single-threaded javascript is traditionally single-threaded.
Introducing asynchronous JavaScript - Learn web development
you can try it for yourself: <button>click me</button> note: it is im
portant to remember that alert(), while being very useful for demonstrating a synchronous blocking operation, is terrible for use in real world applications.
... the catch() block at the end runs if any of the .then() blocks fail — in a similar way to synchronous try...catch blocks, an error object is made available inside the catch(), which can be used to re
port the kind of error that has occurred.
Asynchronous JavaScript - Learn web development
in this module we take a look at asynchronous javascript, why it is im
portant, and how it can be used to effectively handle potential blocking operations such as fetching resources from a server.
... guides general asynchronous programming concepts in this article we'll run through a number of im
portant concepts relating to asynchronous programming, and how this looks in web browsers and javascript.
Function return values - Learn web development
it's im
portant to understand what their values are, how to use them in your code, and how to make functions return useful values.
... you've reached the end of this article, but can you remember the most im
portant information?
Test your skills: Loops - Learn web development
name — contains a name to search for para — contains a reference to a paragraph, which will be used to re
port the results.
... para — contains a reference to a paragraph, which will be used to re
port the results.
JavaScript building blocks - Learn web development
it's im
portant to understand what their values are, how to make use of them in your code, and how to make your own custom functions return useful values.
...in this final article we will discuss some im
portant concepts surrounding events, and look at how they work in browsers.
Useful string methods - Learn web development
you've reached the end of this article, but can you remember the most im
portant information?
... conclusion you can't escape the fact that being able to handle words and sentences in programming is very im
portant — particularly in javascript, as websites are all about communicating with people.
JavaScript object basics - Learn web development
try these in the js console: person.name.first person.name.last im
portant: at this point you'll also need to go through your method code and change any instances of name[0] name[1] to name.first name.last otherwise your methods will no longer work.
... you've reached the end of this article, but can you remember the most im
portant information?
JavaScript — Dynamic client-side scripting - Learn web development
the object-oriented nature of javascript is im
portant to understand if you want to go further with your knowledge of the language and write more efficient code, therefore we've provided this module to help you.
... asynchronous javascript in this module we take a look at asynchronous javascript, why it is im
portant, and how it can be used to effectively handle potential blocking operations such as fetching resources from a server.
What is web performance? - Learn web development
how a user perceives your performance is as im
portant, or perhaps more im
portant, than any objective statistic, but it's subjective, and not as readily measurable.
...it is im
portant to minimize the loading and response times, and add additional features to conceal latency by making the experience as available and interactive as possible, as soon as possible, while asynchronously loading in the longer tail parts of the experience.
Using Vue computed properties - Learn web development
the list summary method will get the number of finished todoitems, and return a string re
porting this.
...properties vue conditional rendering: editing existing todos focus management with vue refs vue resources svelte getting started with svelte starting our svelte todo list app dynamic behavior in svelte: working with variables and props componentizing our svelte app advanced svelte: reactivity, lifecycle, accessibility working with svelte stores typescript sup
port in svelte deployment and next steps ...
Focus management with Vue refs - Learn web development
it's im
portant to note that a ref needs to be unique within a component.
...properties vue conditional rendering: editing existing todos focus management with vue refs vue resources svelte getting started with svelte starting our svelte todo list app dynamic behavior in svelte: working with variables and props componentizing our svelte app advanced svelte: reactivity, lifecycle, accessibility working with svelte stores typescript sup
port in svelte deployment and next steps ...
Vue resources - Learn web development
this is where you can re
port issues and/or contribute directly to the vue codebase.
...properties vue conditional rendering: editing existing todos focus management with vue refs vue resources svelte getting started with svelte starting our svelte todo list app dynamic behavior in svelte: working with variables and props componentizing our svelte app advanced svelte: reactivity, lifecycle, accessibility working with svelte stores typescript sup
port in svelte deployment and next steps ...
Styling Vue components with CSS - Learn web development
width: 100%; max-width: 68rem; margin: 0 auto; font: 1.6rem/1.25 "helvetica neue", helvetica, arial, sans-serif; background-color: #f5f5f5; color: #4d4d4d; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; } @media screen and (min-width: 620px) { body { font-size: 1.9rem; line-height: 1.31579; } } /*end resets*/ next, in your src/main.js file, im
port the reset.css file like so: im
port './assets/reset.css'; this will cause the file to get picked up during the build step and automatically added to our site.
...properties vue conditional rendering: editing existing todos focus management with vue refs vue resources svelte getting started with svelte starting our svelte todo list app dynamic behavior in svelte: working with variables and props componentizing our svelte app advanced svelte: reactivity, lifecycle, accessibility working with svelte stores typescript sup
port in svelte deployment and next steps ...
Git and GitHub - Learn web development
git is an example of a vcs, and github is a web site + infrastructure that provides a git server plus a number of really useful tools for working with git repositories individually or in teams, such as re
porting issues with the code, reviewing tools, project management features such as assigning tasks and task statuses, and more.
... mastering issues (from github) issues are like a forum for your github project, where people can ask questions and re
port problems, and you can manage updates (for example assigning people to fix issues, clarifying the issue, letting people know things are fixed).
Tools and testing - Learn web development
on top of that, we still need to keep cross-browser sup
port in the forefront of our minds, and make sure that our code follows best practices that allow our projects to work across different browsers and devices that our users are using to browse the web, and be usable by people with disabilities.
... note: we have referenced a number of tools in this topic, not because we endorse them or think they are the best, but because we know they work and have good industry sup
port.
Information for users
features include assistive technology sup
port on windows (like window-eyes, jaws, etc.), firefox keyboard sup
port, available accessibility extensions like fire vox and other extensions.
... purpose newsgroup mailing list google group developer discussion mozilla.dev.accessibility subscribe/unsubscribe google group end user sup
port mozilla.sup
port.accessibility subscribe/unsubscribe google group ...
Adding a new CSS property
this is particularly im
portant in case the unexpected token is a parenthesis or something else that requires matching the other half of a pair.
... also, it's very im
portant not to touch the computed style data at all when there's no specified data provided (ecssunit_null); touching the computed style data in this case would break partial computation based on a start struct, which is when we computed style data on the basis of computed data we've already computed from a subset of the style rules that we're currently computing from.
Continuous Integration
it re
ports to a custom dashboard known as phonedash.
...eventually, the system will likely be expanded with sup
port for android.
Creating reftest-based unit tests
here is a list of reftest op
portunities files in the source.
... in order to test invalidation it is im
portant that invalidation tests let the document completely finish loading and displaying before making the changes for which invalidation and repainting is to be tested.
Simple Thunderbird build
if it is in your `mozconfig` file, you should go ahead and remove it when building thunderbird 74 or later, since sup
port for it will eventually be removed completely.
...a symlink there is not sup
ported.
pymake
pybuild is no longer sup
ported!
... make.py (and the pymake modules that sup
port it) are an implementation of the make tool which are mostly compatible with makefiles written for gnu make.
Interface Compatibility
beginning with mozilla 2 (firefox 4), this will no longer be sup
ported: all @status markings have been removed, and extensions that use binary components will need to recompile for each major version they wish to sup
port.
... if necessary, it is possible for an extension to sup
port 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.
Listening to events on all tabs
firefox 3.5 adds sup
port for listening to progress events on all tabs.
... note: some status values are defined by nsitrans
port and nsisockettrans
port.
Runtime Directories
username>\appdata\local\virtualstore\program files\mozilla firefox\ windows 2000/xp c:\program files\mozilla firefox\ c:\documents and settings\<username>\application data\mozilla\firefox\ (or %appdata%\mozilla\firefox\) c:\documents and settings\<username>\local settings\application data\mozilla\firefox\ os x /applications/firefox.app ~/library/application sup
port/firefox/profiles/xxxxxxxx.default/ ~/library/caches/firefox/profiles/xxxxxxxx.default/ linux ????
... ~/.thunderbird/xxxxxxxx.default/ (or ~/.mozilla-thunderbird/xxxxxxxx.default/ on debian/ubuntu) n/d see also https://sup
port.mozilla.org/kb/profiles-where-firefox-stores-user-data#w_how-do-i-find-my-profile https://sup
port.mozilla.org/kb/profiles-tb#w_where-is-my-profile-stored http://kb.mozillazine.org/profile_folder ...
Developer guide
taskcluster taskcluster is the task execution framework that sup
ports mozilla's continuous integration and release processes.
... crash tracking information about the socorro crash re
porting system.
Displaying Places information using views
every xul document containing a built-in view must im
port 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.
...one strategy is to create your custom object(s) implementing each of these interfaces, sup
port your custom behavior with them, but pass off everything else to a placestreeview instance that you would own.
Multiple Firefox profiles
you can find details about profiles on mozilla's end-user sup
port site.
... here is a complete example terminal command from steps 2-3: /applications/firefox.app/contents/macos/firefox -profile /users/suzie/library/application\ sup
port/firefox/profiles/r99d1z7c.default if the profile manager window does not open, firefox may have been running in the background, even though it was not visible.
Performance
better: addon.js as above // framescript.js components.utils.im
port("resource://my-addon/processmodule.jsm", {}).addframe(this) // processmodule.jsm const ex
ported_symbols = ['addframe']; const precomputedconstants = // ...
... better: // addon.js var main = new myaddonservice(); main.onchange(statechange); function statechange() { services.ppmm.broadcastasyncmessage("my-addon:update-configuration", {newconfig: main.serialize()}) } // processmodule.jsm const ex
ported_symbols = ['getmaincopy']; var maincopy; services.cpmm.addmessagelistener("my-addon:update-configuration", function(message) { maincopy = message.data.newconfig; }) funtion getmaincopy() { return maincopy; } // framescript.js components.utils.im
port("resource://my-addon/processmodule.jsm") // getmaincopy() used by other functions don't register observers (and other callbacks to g...
Tracking Protection
for example, you should not use google analytics in the following way: <a href="http://www.example.com" onclick="tracklink('http://www.example.com', event);"> visit example.com </a> <script> function tracklink(url,event) { event.preventdefault(); ga('send', 'event', 'outbound', 'click', url, { 'trans
port': 'beacon', 'hitcallback': function() { document.location = url; } }); } </script> instead, you should account for the case when google analytics is missing by checking to see if the ga object has initialized: <a href="http://www.example.com" onclick="tracklink('http://www.example.com', event);"> visit example.com </a> <script> function tracklink(url,event) { event.pr...
...eventdefault(); if (window.ga && ga.loaded) { ga('send', 'event', 'outbound', 'click', url, { 'trans
port': 'beacon', 'hitcallback': function() { document.location = url; } }); } else { document.location = url; } } </script> more information about this technique is available at google analytics, privacy, and event tracking.
Firefox UI considerations for web developers
providing a top sites ready icon the simple rule is to provide an icon which is at least 96x96 pixels in size, using a <link> element whose rel attribute is a reference to a file containing an icon of a sup
ported type.
... note: only "rich" icons (apple-touch-icon and fluid-icon) sup
port the sizes attribute.
Using the Browser API
when the front page of https://developer.mozilla.org is loaded, for example, the e.detail.backgroundcolor value re
ported is rgb(0, 83, 159).
... false; prev.disabled = true; next.disabled = true; searchbar.value = ''; } } }); note that whenever one of the search-related methods is invoked, a mozbrowserfindchange event is fired to allow you to react to search changes in a more precise way if desired: //browser.addeventlistener('mozbrowserfindchange', function(e) { // can react to find changes if required //}) re
porting errors we've got one more piece of code to mention from our source: browser.addeventlistener('mozbrowsererror', function (e) { console.log("loading error: " + e.detail); }); this simple listener logs an error message to the console when an error with the browser iframe is encountered.
mozbrowsercontextmenu
details the details property returns an anonymous javascript object with the following properties: clientx the x value of the coordinate that was clicked inside the browser <iframe>'s view
port.
... clienty the y value of the coordinate that was clicked inside the browser <iframe>'s view
port.
mozbrowserscroll
details the details property returns an anonymous javascript object with the following properties: top a number representing the new vertical scroll position of the <iframe> view
port — in css pixels — from the top of the view
port.
... left a number representing the new horizontal scroll position of the <iframe> view
port — in css pixels — from the left of the view
port.
mozbrowserscrollareachanged
details the details property returns an anonymous javascript object with the following properties: width a number representing the new scroll area width of the <iframe> view
port, in css pixels.
... height a number representing the new scroll area height of the <iframe> view
port, in css pixels.
Browser API
browser api interfaces to sup
port the requirement of a browser <iframe>, the htmliframeelement dom interface has been extended with new methods that give the <iframe> some super powers.
...the following methods are used to deal with those events: the <iframe> gains sup
port for the methods of the eventtarget interface addeventlistener(), removeeventlistener(), and dispatchevent().
Embedding Tips
how do i disable drag/drop sup
port?
... nscomptr<nsicommandmanager> commandmanager = do_getinterface(iwebbrowser); if (commandmanager) { nscomptr<nsidomwindow> thedomwindow = do_getinterface(iwebbrowser); nscomptr<nsicommandparams> cmdparamsobj = do_createinstance(ns_command_params_contractid,&rv); cmdparamsobj->setisup
portsvalue("addhook", reinterpret_cast<nsisup
ports*>(ichromeimplementation)); commandmanager->docommand("cmd_clipboarddragdrophook", cmdparamsobj, thedomwindow); } ...
Gecko
products using the same version of gecko have identical sup
port for web standards.
... character sets sup
ported by gecko a list of the character sets sup
ported by gecko.
Getting Started with Chat
you will need to use the following information to configure the server connection: server: irc.mozilla.org
port: 6667 (default) or 6697 (ssl) desktop clients desktop clients tens to allow the most detailed configuration.
... channels here is a list of channels you should be aware of as a member of the mozilla community: (remember to use irc.mozilla.org and
port 6697 or 6667 for your server settings) #qa a channel for qa discussion #developers a channel for mozilla development discussion #sumo a channel for sup
port with firefox for more information about the mozilla irc network and more channels, go here.
How test harnesses work
mozilla test harnesses are typically composed of a python runner that invokes firefox, utilizes the browser to run tests, and re
ports the results.
...extension in the profile (for non-marionette tests) gathers the tests (manifestdestiny) potentially sets up an http server for test data (mozhttpd) invokes the binary (mozrunner) it is the job of the shim extension to shut down the browser logging (mozlog, in theory) (run tests, accrue results) cleanup: shutdown the browser check for crashes (mozcrash) re
porting (moztest) marionette tests list of testing extensions pageloader (talos) mochitest: //github.com/realityripple/uxp/blob/master/testing/mochitest/install.rdf (mochitest) ...
JavaScript-DOM Prototypes in Mozilla
here is an attempt to modify a host object: (function(){ try { image.prototype.src = 1; } catch(ex){ alert(ex); } })(); this demonstrates that the image constructor, a host object sup
ported in nearly all browsers for mac and windows, has a prototype property, and that an attempt to modify the prototype's src - property results in an error.
...once the name of the parent interface is known (and the name is not nsisup
ports) the code will look up a property by that name on the global object.
JavaScript Tips
however, in javascript this is quite simple even in the case of a weak reference which in c++ requires a helper class: var weakobserver = { queryinterface: function queryinterface(aiid) { if (aiid.equals(components.interfaces.nsiobserver) || aiid.equals(components.interfaces.nsisup
portsweakreference) || aiid.equals(components.interfaces.nsisup
ports)) return this; throw components.results.ns_nointerface; }, observe: function observe(asubject, atopic, astate) { } } when declaring xpcom methods, try to use the same names for method parameters as are used in the interface definition.
... for best performance give ids to all im
portant elements.
AddonManager
to im
port the addonmanager object in the add-on sdk, use: const { addonmanager } = require("resource://gre/modules/addonmanager.jsm"); to im
port it in a normal bootstrapped extension or similar, use: cu.im
port("resource://gre/modules/addonmanager.jsm"); method overview promise?
...this is used to build the lists of changed add-ons re
ported by the getstartupchanges() method.
AsyncShutdown.jsm
in this case, a crash re
port is produced, with information on all the shutdown blockers that have not been resolved, and all the additional debug information returned by calls to info().
...used for debugging/error re
porting.
Download
hasprogress read only boolean indicates whether this download's progress property is able to re
port partial progress while the download proceeds, and whether the value in totalbytes is relevant.
...intermediate values are re
ported only if hasprogress is true.
Geometry.jsm
it ex
ports two classes: point and rect.
... to use these routines, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/geometry.jsm"); once you've im
ported the module, you can then use the point and rect classes.
Log.jsm
to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/log.jsm"); basic usage components.utils.im
port("resource://gre/modules/log.jsm"); // get a logger, give it a name unique to this chunk of code.
... config information regarding im
portant configuration options the system is using that affect how it runs.
OSFile.jsm
why is off main thread file i/o im
portant?
... why is i/o efficiency im
portant?
PopupNotifications.jsm
to use this, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/popupnotifications.jsm"); once you've im
ported the module, you can then use the popupnotifications object it ex
ports; this object provides methods for creating and displaying popup notification panels.
... note: this code module is im
ported by firefox chrome windows, so you don't have to do it yourself in most extensions.
Promise.jsm
to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/promise.jsm"); note: a preliminary promise module is also available starting from gecko 17, though it didn't conform to the promises/a+ proposal until gecko 25: components.utils.im
port("resource://gre/modules/commonjs/promise/core.js"); // gecko 17 to 20 components.utils.im
port("resource://gre/mod...
...while you may still im
port this module from the above paths, the recommended way for loading it is through the add-on sdk loader.
Webapps.jsm
im
porting components.utils.im
port("resource://gre/modules/webapps.jsm"); // ex
ported symbol is domapplicationregistry method overview init: function() loadcurrentregistry: function() notifyappsregistrystart: function notifyappsregistrystart() notifyappsregistryready: function notifyappsregistryready() sanitizeredirects: function sanitizeredirects(asource) _savewidgetsfullpath: function(amanifest, adestapp) appkind: function(aapp, amanifest) updatepermissionsforapp: function(aid, aispreinstalled) updateofflinecacheforapp: function(aid) installpreinstalledapp: function installpreinstalledapp(aid) removeifhttpsduplicate: function(aid) installsystemapps: functi...
...ge: function(adata) receivemessage: function(amessage) getappinfo: function getappinfo(aappid) broadcastmessage: function broadcastmessage(amsgname, acontent) registerupdatehandler: function(ahandler) unregisterupdatehandler: function(ahandler) notifyupdatehandlers: function(aapp, amanifest, azippath) _getappdir: function(aid) _writefile: function(apath, adata) dogetlist: function() doex
port: function(amsg, amm) doim
port: function(amsg, amm) doextractmanifest: function(amsg, amm) dolaunch: function (adata, amm) launch: function launch(amanifesturl, astartpoint, atimestamp, aonsuccess, aonfailure) close: function close(aapp) canceldownload: function canceldownload(amanifesturl, aerror) startofflinecachedownload: function(amanifest, aapp, aprofiledir, aisupdate) computemanifest...
L10n Checks
ab-cd browser chrome/browser browser.dtd +backforwardmenu.tooltip +fullzoomenlargecmd.commandkey3 +fullzoomreducecmd.commandkey2 +fullzoomresetcmd.commandkey2 +organizebookmarks.label -showallbookmarkscmd2.label migration/migration.dtd -im
portfromfile.accesskey -im
portfromfile.label +im
portfromhtmlfile.accesskey +im
portfromhtmlfile.label you can assume changed strings when you see entities removed and added with a similar name.
...te entities and files, by setting the -t parameter, e.g.: check-l10n-completeness -t suite/locales/l10n.ini ../l10n/ de check access keys in all modes you can tell l10n checks to check if the access keys are set properly, by setting the -a parameter, e.g.: check-l10n-completeness -a 1 suite/locales/l10n.ini ../l10n/ de there are three modes available: 1: show just errors 2: show errors and im
portant warnings 3: show all errors and warnings spell checking in all modes you can tell l10n checks to search for spelling errors, by setting the -c parameter, e.g.: check-l10n-completeness -c suite/locales/l10n.ini ../l10n/ de spell checking requires enchant and pyenchant to be installed on the system.
Localization notes
localizers usually work on the localizable files without the context of the source files including the localized strings; it is im
portant to add comments to the localizable files themselves, too.
...it's im
portant to follow the format as closely as possible.
Localizing XLIFF files for iOS
most translation tools sup
port the xliff standard, making localizing the xliff files for firefox for ios easy to do using translation tools.
... once you've completed translation, it's im
portant to make sure the xml in your xliff file is valid (e.g., no broken tag sets).
Initial setup
for now, simply be aware that these will become im
portant as your efforts progress.
...the svn for localizers guide will help you learn the most im
portant svn commands for l10n.
QA phase
install the .xpi langpack you just created (or ex
ported).
... your work is so im
portant!
Localization formats
.lang files provide some features that differentiate it from gettext: .lang is not dependent on php/.po library, so if our webdev team sets up a site without gettext sup
port, we still have .lang.
... (it should be noted that this is near impossibility since most sites will be set up with gettext sup
port.) .lang files can be easily edited in a text editor with this setup, a localizer is given a "[something].lang" file containing all the strings needing localization.
Web Localizability
why localizability is im
portant there are many reasons why you should start thinking about making your web app localizable as soon as possible.
...extending you web app to sup
port new languages will be easy.
MathML3Testsuite
however, any re
port is welcome on the tracking bug for the mathml testsuite.
...nattribs math presentation css dynamicexpressions generallayout scriptsandlimits tablesandmatrices tokenelements topics accents bidi elementarymathexamples embellishedop largeop linebreak nesting stretchychars whitespace torturetests errorhandling original document information author(s): frédéric wang other contributors: last updated date: may 26, 2010 copyright information:
portions of this content are © 2010 by individual mozilla.org contributors; content available under a creative commons license | details.
Mozilla Development Tools
bugzilla bugzilla is where developers can re
port bugs in the mozilla source releases, and browse an online database of already-re
ported bugs.
... original document information author(s): myk melez last updated date: november 8, 2005 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Gecko Profiler FAQ
similarly it also can’t show you instruction level information about where each sample was captured (this is why there is no sup
port for line-level sampling for native code either.) at this point the granularity of each sample it displays is a native function.
... overview of the changes in the last (year?) to cleopatra/etc faster, hopefully more reliable has a timeline tab lets you hide threads with a context menu sup
ports symbolication for local builds on windows if you run “mach buildsymbols” first profiling non-nsthreads?
JS::PerfMeasurement
note: at present, js::perfmeasurement is only functional on linux, but it is planned to add sup
port for windows (bug 583322) and osx (bug 583323) as well, and we welcome patches for other operating systems.
... we also can't guarantee that all platforms will sup
port all event types, once we have more than one back end for this interface.
Profiling with the Gecko Profiler and Local Symbols on Windows
make sure you don't have ac_add_options --disable-crashre
porter in your firefox .mozconfig file.
... generate the breakpad symbol files by running ./mach buildsymbols: https://developer.mozilla.org/en/building_firefox_with_debug_symbols#breakpad_symbol_files this will have created symbols under $objdir/dist/ , named after the binary name, architecture and version, so something like "firefox-40.0a1.en-us-win32.crashre
porter-symbols.zip" point talos to this zipfile by passing its path to the --symbolspath flag.
tools/power/rapl
windows unfortunately, rapl does not work on windows, and
porting it would be difficult because windows does not have apis that allow easy access to the relevant model-specific registers.
... if the processor does not sup
port gpu or ram estimates then " n/a " will be printed in the relevant column instead of a number, and it will contribute zero to the total.
Research and prep
ensure that your suggestions follow these parameters: search there are typically five search plug-ins listed for firefox desktop (only four for firefox mobile): generic search the default option should expose the quickest path to the best result on the world wide web for the user (indexing a large
portion of the global www).
... global search the second position can be used for the next best local language provider, meaning coverage within the local language and/or locale (indexing a smaller
portion of the www but producing better local language results).
NSPR Types
calling convention types these types are used to sup
port cross-platform declarations of prototypes and implementations: pr_extern is used for declarations of external functions or variables.
...conscientious use of these macros ensures
portability of code to all the platforms sup
ported by nspr and still provides optimal behavior on those systems that treat long long values directly.
Network Addresses
typically, the only numeric declarations required are the well-known
port numbers that are part of the prnetaddr structure.
...by using these functions with other network address functions, clients can sup
port either version 4 or version 6 of the internet protocol transparently.
PRSockOption
enumeration type used in the option field of prsocketoptiondata to form the name
portion of a name-value pair.
... description the prsockoption enumeration consists of all the socket options sup
ported by nspr.
PR_EXTERN
used to define the prototypes for functions or variables that are to be ex
ported from a shared library.
... warning: some platforms do not allow the use of the underscore character (_) as the first character of an ex
ported symbol.
PR EnumerateAddrInfo
syntax #include <prnetdb.h> void *pr_enumerateaddrinfo( void *enumptr, const praddrinfo *addrinfo, pruint16
port, prnetaddr *result); parameters the function has the following parameters: enumptr the index pointer of the enumeration.
...
port the
port number to be assigned as part of the prnetaddr structure.
PR_EnumerateHostEnt
syntax #include <prnetdb.h> printn pr_enumeratehostent( printn enumindex, const prhostent *hostent, pruint16
port, prnetaddr *address); parameters the function has the following parameters: enumindex the index of the enumeration.
...
port the
port number to be assigned as part of the prnetaddr structure.
PR_GetInheritedFileMap
im
ports a prfilemap previously ex
ported by my parent process via pr_createprocess.
... description pr_getinheritedfilemap retrieves a prfilemap object ex
ported from its parent process via pr_createprocess.
PR_IMPLEMENT
used to define implementations of symbols that are to be ex
ported from a shared library.
... warning: some platforms do not allow the use of the underscore character (_) as the first character of an ex
ported symbol.
PR_OpenTCPSocket
can be pr_af_inet (ipv4), pr_af_inet6 (ipv6), or pr_af_local (unix domain, sup
ported on posix systems only).
...typically, the server binds its socket to a well-known
port with pr_bind, calls pr_listen to start listening for connection setup requests, and calls pr_accept to accept a connection.
PR OpenUDPSocket
can be pr_af_inet (ipv4), pr_af_inet6 (ipv6), or pr_af_local (unix domain, sup
ported on posix systems only).
...the socket may be bound to a well-known
port number with pr_bind.
PR_ProcessAttrSetInheritableFileMap
prepare filemap for ex
port to my children processes via pr_createprocess.
...a subsequent call to pr_createprocess makes the prfilemap im
portable by the child process.
PR_SetConcurrency
virtual processors are actuallyglobal threads, each of which is designed to sup
port an arbitrary number oflocal threads.
...in such cases, all the threads being sup
ported by the virtual processor will block, but those assigned to another virtual processor will be unaffected.
Running NSPR tests
timetest passed tpd passed udpsrv passed vercheck passed version passed writev passed xnotify passed zerolen passed end mon mar 12 11:55:47 pdt 2007 how to determine if the test suite passed if all the tests re
ported passed as the results, the test suite passed.
... what if some of the tests crashed or re
ported failed as the results?
NSPR
netscape
portable runtime (nspr) provides a platform-neutral api for system level and libc-like functions.
... mac: install the mac
ports nspr package, or the homebrew nspr package.
NSS CERTVerify Log
to create a log: #include "sec
port.h" #include "certt.h" certverifylog *log; arena =
port_newarena(512); log =
port_arenaznew(arena,log); log->arena = arena; you can then pass this log into your favorite cert verify function.
... this allows multiple errors to be re
ported all at * once.
Certificate functions
the nss version column indicates which versions of nss sup
port the function.
... cert_getsloptime mxr 3.2 and later cert_getsslcacerts mxr 3.2 and later cert_getstatename mxr 3.2 and later cert_getusepkixforvalidation mxr 3.12 and later cert_getvaliddnspatternsfromcert mxr 3.12 and later cert_gentime2formattedascii mxr 3.2 and later cert_hexify mxr 3.2 and later cert_im
portcachain mxr 3.2 and later cert_im
portcerts mxr 3.2 and later cert_isrootdercert mxr 3.8 and later cert_isusercert mxr 3.6 and later cert_keyfromdercrl mxr 3.4 and later cert_makecanickname mxr 3.4 and later cert_mergeextensions mxr 3.10 and later cert_nametoascii mxr 3.2 and later ...
FIPS Mode - an explanation
instructions for how to configure firefox into fips mode may be found on sup
port.mozilla.com.
... instructions for how to configure firefox into fips mode may be found on sup
port.mozilla.com.
Getting Started With NSS
the nss library and its sup
porting command line tools are written in the c programming language.
...(this section is still under construction, but there are many contribution op
portunities) start by opening a bugzilla account at bugzilla.mozilla.org if you don't have one.
NSS_3.12.2_release_notes.html
bug 459248: sup
port intel aes extensions.
... feedback bugs discovered should be re
ported by filing a bug re
port with mozilla.org bugzilla (product nss).
NSS 3.15.4 release notes
sup
port sha-1 signatures with tls 1.2 client authentication.
...feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.15.5 release notes
nss 3.15.5 source distributions are also available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_15_5_rtm/src/ new in nss 3.15.5 new functionality added sup
port for the tls application layer protocol negotiation (alpn) extension.
...feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.16.1 release notes
new functions in pk11pub.h pk11_ex
portderprivatekeyinfo and pk11_ex
portprivkeyinfo - ex
ports a private key in a der-encoded asn.1 privatekeyinfo type or a seckeyprivatekeyinfo structure.
... only rsa private keys are sup
ported now.
NSS 3.16 release notes
nss 3.16 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_16_rtm/src/ new in nss 3.16 new functionality sup
ports the linux x32 abi.
... the certutil utility has been improved to sup
port creation of version 1 and version 2 certificates, in addition to the existing version 3 sup
port.
NSS 3.17.3 release notes
nss 3.17.3 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_17_3_rtm/src/ new in nss 3.17.3 new functionality sup
port for tls_fallback_scsv has been added to the ssltap and tstclnt utilities.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.17.4 release notes
notable changes in nss 3.17.4 bug 1084986: if an ssl/tls connection fails, because client and server don't have any common protocol version enabled, nss has been changed to re
port error code ssl_error_unsup
ported_version (instead of re
porting ssl_error_no_cypher_overlap).
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.19.2.4 release notes
security fixes in nss 3.19.2.4 the following security fixes from nss 3.21 have been back
ported to nss 3.19.2.4: bug 1185033 / cve-2016-1979 - use-after-free during processing of der encoded keys in nss bug 1209546 / cve-2016-1978 - use-after-free in nss during ssl connections in low memory bug 1190248 / cve-2016-1938 - errors in mp_div and mp_exptmod cryptographic functions in nss compatibility nss 3.19.2.4 shared libraries are backward compatible with all older nss 3.x shared li...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.19 release notes
in tls 1.2 handshakes, nss advertises sup
port for the sha512 hash algorithm in order to be compatible with tls servers that use certificates with a sha512 signature (bug 1155922).
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.22.2 release notes
notable changes in nss 3.22.2 bug 1247990 - the root ca changes from nss 3.23 have been back
ported.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.27.1 release notes
however, some applications query the list of protocol versions that are sup
ported by the nss library, enabling all sup
ported tls protocol versions.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.28.2 release notes
nss 3.28.2 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_28_2_rtm/src/ incorrect version number note the version numbers embedded in the nss 3.28.2 are wrong (it re
ports itself as version 3.28.1).
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.28.3 release notes
nss 3.28.3 requires netscape
portable runtime (nspr) 4.13.1 or newer.
...see also the separate release notes for nss 3.29.1 feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.28.5 release notes
it back
ports the changes that were initially released in nss version 3.30.2.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.29.1 release notes
nss 3.29.1 requires netscape
portable runtime (nspr) 4.13.1 or newer.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.29.2 release notes
nss 3.29.2 requires netscape
portable runtime (nspr) 4.13.1 or newer.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.29 release notes
nss 3.29 requires netscape
portable runtime (nspr) 4.13.1 or newer.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.31.1 release notes
nss 3.31.1 requires netscape
portable runtime (nspr) 4.15, or newer.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.32 release notes
nss 3.32 requires netscape
portable runtime (nspr) 4.16, or newer.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (select the product 'nss').
NSS 3.34.1 release notes
nss 3.34.1 requires netscape
portable runtime (nspr) 4.17, or newer.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (select product 'nss').
NSS 3.36.8 release notes
bugs fixed in nss 3.36.8 1554336 - optimize away unneeded loop in mpi.c 1515342 - more thorough input checking (cve-2019-11729) 1540541 - don't unnecessarily strip leading 0's from key material during pkcs11 im
port (cve-2019-11719) compatibility nss 3.36.8 shared libraries are backward compatible with all older nss 3.x shared libraries.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.40 release notes
nss 3.40 source distributions are available on ftp.mozilla.org for secure https download: source tarballs: https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_40_rtm/src/ new in nss 3.40 new functionality the draft-00 version of encrypted sni sup
port is implemented tstclnt now takes -n option to specify encrypted sni key new functions none notable changes in nss 3.40 the mozilla::pkix library has been
ported from mozilla psm to nss.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.41 release notes
fingerprint: 56c77128d98c18d91b4cfdffbc25ee9103d4758ea2abad826a90f3457d460eb4 cn = opentrust root ca g2 sha-256 fingerprint: 27995829fe6a7515c1bfe848f9c4761db16c225929257bf40d0894f29ea8baf2 cn = opentrust root ca g3 sha-256 fingerprint: b7c36231706e81078c367cb896198f1e3208dd926949dd8f5709a410f75b6292 bugs fixed in nss 3.41 bug 1412829, reject empty sup
ported_signature_algorithms in certificate request in tls 1.2 bug 1485864 - cache side-channel variant of the bleichenbacher attack (cve-2018-12404) bug 1481271 - resend the same ticket in clienthello after helloretryrequest bug 1493769 - set session_id for external resumption tokens bug 1507179 - reject ccs after handshake is complete in tls 1.3 this bugzilla query returns all...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.42 release notes
new in nss 3.42 new functionality bug 818686 - sup
port xdg basedir specification new functions none notable changes in nss 3.42 the following ca certificates were added: none the following ca certificates were removed: none added sup
port for some of the testcases from the wycheproof project: bug 1508666 - added aes-gcm test cases bug 1508673 - added chacha20-poly1305 test cases ...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.44.1 release notes
new in nss 3.44.1 new functionality 1546229 - add ipsec ike sup
port to softoken many new fips test cases (note: this has increased the source archive by approximately 50 megabytes for this release.) bugs fixed in nss 3.44.1 1554336 - optimize away unneeded loop in mpi.c 1515342 - more thorough input checking (cve-2019-11729) 1540541 - don't unnecessarily strip leading 0's from key material during pkcs11 im
port (cve-2019-11719) 15...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.44.4 release notes
thank you to cesar pereida garcia and the network and information security group (nisec) at tampere university for re
porting this issue.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.48.1 release notes
bugs fixed in nss 3.48.1 bug 1606992 - cache the most recent pbkdf2 password hash, to speed up repeated sdr operations, im
portant with the increased kdf iteration counts.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.48 release notes
42 - ensure des iv length is valid before usage from pkcs#11 bug 1588567 - enable mozilla::pkix gtests in nss ci bug 1591315 - update nsc_decrypt length in constant time bug 1562671 - increase nss mp kdf default iteration count, by default for modern key4 storage, optionally for legacy key3.db storage bug 1590972 - use -std=c99 rather than -std=gnu99 bug 1590676 - fix build if arm doesn't sup
port neon bug 1575411 - enable tls extended master secret by default bug 1590970 - ssl_settimefunc has incomplete coverage bug 1590678 - remove -wmaybe-uninitialized warning in tls13esni.c bug 1588244 - nss changes for delegated credential key strength checks bug 1459141 - add more cbc padding tests that missed nss 3.47 bug 1590339 - fix a memory leak in btoa.c bug 1589810 - fix uninitialized v...
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.49.1 release notes
bugs fixed in nss 3.49.1 bug 1606992 - cache the most recent pbkdf2 password hash, to speed up repeated sdr operations, im
portant with the increased kdf iteration counts.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.49.2 release notes
bugs fixed in nss 3.49.2 bug 1606992 - cache the most recent pbkdf1 password hash, to speed up repeated sdr operations, im
portant with the increased kdf iteration counts.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.51.1 release notes
bugs fixed in nss 3.51.1 bug 1619102 - add workaround option to include both dtls and tls versions in dtls sup
ported_versions.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.51 release notes
bug 1611209 - correct swapped pkcs11 values of ckm_aes_cmac and ckm_aes_cmac_general bug 1612259 - complete integration of wycheproof ecdh test cases bug 1614183 - check if ppc __has_include(<sys/auxv.h>) bug 1614786 - fix a compilation error for ‘getfipsenv’ "defined but not used" bug 1615208 - send dtls version numbers in dtls 1.3 sup
ported_versions extension to avoid an incompatibility.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.52.1 release notes
thank you to cesar pereida garcia and the network and information security group (nisec) at tampere university for re
porting this issue.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.53.1 release notes
thank you to sohaib ul hassan, billy bob brumley, and the network and information security group (nisec) at tampere university for re
porting this issue and providing a patch.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS 3.56 release notes
bugs fixed in nss 3.56 bug 1650702 - sup
port sha-1 hw acceleration on armv8 bug 1656981 - use mpi comba and mulq optimizations on x86-64 macos.
... feedback bugs discovered should be re
ported by filing a bug re
port with bugzilla.mozilla.org (product nss).
NSS Sample Code sample2
* note: iv is only needed if cipher blocking chaining (cbc) mode of encryption * is used * * the recommended approach is to store and trans
port wrapped (encrypted) * des keys (ivs can be in the clear).
...we use pk11_originunwrap * to indicate the key was unwrapped - which is what should be done * normally anyway - using raw keys isn't a good idea */ symkey = pk11_im
portsymkey(slot, ciphermech, pk11_originunwrap, cka_encrypt, &keyitem, null); if (symkey == null) { fprintf(stderr, "failure to im
port key into nss (err %d)\n", pr_geterror()); goto out; } /* set up the pkcs11 encryption paramters.
nss tech note6
any offer of binary sup
port that may have been previously made to you by nss developers is null and void.
...if you still decide to make unsup
ported changes, you can allow the softoken to come up in fips 140 mode of operation by regenerating the .chk files yourself.
PKCS11 module installation
pkcs #11 modules are external modules which add to firefox sup
port for smartcard readers, biometric security devices, and external certificate stores.
...older versions of firefox may sup
port the window.pkcs11 property for installing pkcs #11 modules.
FC_GetMechanismList
name fc_getmechanismlist - get a list of mechanism types sup
ported by a token.
... description fc_getmechanismlist obtains a list of mechanism types sup
ported by a token.
FC_WaitForSlotEvent
description this function is not sup
ported by the nss cryptographic module.
... return value fc_waitforslotevent always returns ckr_function_not_sup
ported.
NSS cryptographic module
therefore, an application that sup
ports pkcs #11 cryptographic tokens can be easily modified to use the nss cryptographic module.
... the nss cryptographic module also ex
ports the function nsc_moduledbfunc for managing the nss module database secmod.db.
troubleshoot.html
the 64-bit builds don't sup
port gcc.
...some systems may not be configured to allow this many simultaneous connections by default; if the stress tests fail, try increasing the number of simultaneous sockets sup
ported.
OLD SSL Reference
e certificate and key databases setting up the ca db and certificate setting up the server db and certificate setting up the client db and certificate verifying the server and client certificates building nss programs chapter 3 selected ssl types and structures this chapter describes some of the most im
portant types and structures used with the functions described in the rest of this document, and how to manage the memory used for them.
...tiongetdefault ssl_cipherprefsetdefault ssl_cipherprefgetdefault ssl_clearsessioncache ssl_configserversessionidcache initializing multi-processing with a shared ssl server cache ssl_configmpserversidcache ssl_inheritmpserversidcache ssl ex
port policy functions nss_setdomesticpolicy nss_setex
portpolicy nss_setfrancepolicy ssl_cipherpolicyset ssl_cipherpolicyget ssl configuration functions ssl configuration ssl_im
portfd ssl_optionset ...
ssltyp.html
upgraded documentation may be found in the current nss reference selected ssl types and structures chapter 3 selected ssl types and structures this chapter describes some of the most im
portant types and structures used with the functions described in the rest of this document, and how to manage the memory used for them.
... syntax #include <seccomon.h> #include <prtypes.h> #include <sec
port.h> typedef enum { sibuffer, sicleardatabuffer, sicipherdatabuffer, sidercertbuffer, siencodedcertbuffer, sidernamebuffer, siencodednamebuffer, siasciinamestring, siasciistring, sideroid } secitemtype; typedef struct secitemstr secitem; struct secitemstr { secitemtype type; unsigned char *data; unsigned int len; }; description a secitem struc...
S/MIME functions
the nss version column indicates which versions of nss sup
port the function.
...s_cmssigneddata_destroy mxr 3.2 and later nss_cmssigneddata_getcontentinfo mxr 3.2 and later nss_cmssigneddata_getdigestalgs mxr 3.2 and later nss_cmssigneddata_getsignerinfo mxr 3.2 and later nss_cmssigneddata_hasdigests mxr 3.2 and later nss_cmssigneddata_im
portcerts mxr 3.2 and later nss_cmssigneddata_setdigests mxr 3.2 and later nss_cmssigneddata_setdigestvalue mxr 3.4 and later nss_cmssigneddata_signerinfocount mxr 3.2 and later nss_cmssigneddata_verifycertsonly mxr 3.2 and later nss_cmssigneddata_verifysignerinfo...
NSS tools : signver
signver sup
ports two types of databases: the legacy security databases (cert8.db, key3.db, and secmod.db) and new sqlite databases (cert9.db, key4.db, and pkcs11.txt).
...for example: # signver -a -s signature -d sql:/home/my/sharednssdb to set the shared database type as the default type for the tools, set the nss_default_db_type environment variable to sql: ex
port nss_default_db_type="sql" this line can be set added to the ~/.bashrc file to make the change permanent.
Necko Interfaces Overview
equest attribute of a nsirequest channel impl adds itself to its load group during invocation of asyncopen channel impl removes itself from its load group when download completes load groups in gecko own all channels used to load a particular page (until the channels complete) all channels owned by a load group can be canceled at once via the load group's nsirequest::cancel method nsitrans
port represents a physical connection, such as a file descriptor or a socket used directly by protocol handler implementations (as well as by mailnews and chatzilla) synchronous i/o methods: openinputstream, openoutputstream asynchronous i/o methods: asyncread, asyncwrite nsitrans
port::asyncread takes a nsistreamlistener parameter original document information author(s): darin fisher las...
...t updated date: december 10, 2001 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Necko walkthrough
but the interface for clients of necko is im
portant to consider: send request uri helps creates channel setup channel (headers, request data, response callback...) channel->asyncopen.
...hostname and
port) from the transaction, and then gets or creates a connection entry from the connection table, an nsclasshashtable<nscstringhashkey, nsconnectionentry> called mct in nshttpconnectionmgr.
Installing Pork
configure make building mozilla with mcpp to build mozilla with mcpp to generate annotated .ii files, use the following configure command: ac_cv_visibility_hidden=no cc="gcc34 -save-temps -wp,-w0,-k" cxx="g++ -save-temps -wp,-w0,-k" cppflags=-dns_disable_literal_template $srcdir/configure --enable-debug --disable-optimize --disable-accessibility --enable-application=browser --disable-crashre
porter building will probably require disabling warnings_as_errors: make warnings_as_errors= "-wp,-w0,-k" are options that get passed to mcpp.
... $ ex
port path=/builds/gcc-3.4.6-installed/bin:$path $ ex
port cppflags=-m32 $ cc=gcc34 cxx=g++34 cppflags=-m32 ldflags=-m32 ../src/configure --enable-replace-cpp --prefix=/builds/gcc-3.4.6-installed --target=i686-pc-linux $ make $ make install program_transform_name= ...
Tutorial: Embedding Rhino
evaluation of the script looks up variables in scope, and errors will be re
ported with the filename <cmd> and line number 1.
...); } calling javascript functions to get the function f, call it, and print the result, we add this code: object fobj = scope.get("f", scope); if (!(fobj instanceof function)) { system.out.println("f is undefined or not a function."); } else { object functionargs[] = { "my arg" }; function f = (function)fobj; object result = f.call(cx, scope, scope, functionargs); string re
port = "f('my args') = " + context.tostring(result); system.out.println(re
port); } javascript host objects defining host objects custom host objects can implement special javascript features like dynamic properties.
Rhino optimization
optimization settings the currently sup
ported optimization settings are: -1 interpretive mode is always used.
... note some language features (indirect calls to eval, use of the arguments property of function objects) were previously not sup
ported in higher optimization levels.
Rhino requirements and limitations
older versions sup
port jdks as early as 1.1.
...: javaobj.fieldandmethod = 5; var field = javaobj.fieldandmethod; javaobj.fieldandmethod = 7; // now, field == 7 you can work around this by forcing the field value to be converted to a javascript type when you take its value: javaobj.fieldandmethod = 5; var field = javaobj.fieldandmethod + 0; // force conversion now javaobj.fieldandmethod = 7; // now, field == 5 jsobject rhino does not sup
port the netscape.javascript.jsobject class.
FOSS
flusspferd - (newer) c++ bindings libjspp - c++ template based library for extending & embedding spidermonkey; works with spidermonkey 1.8.5 and above, has lots of goodies spiderape - the oldest c++ bindings for spidermonkey trixul - (trixul cvs) - trixul xml-based gui toolkit embeds spidermonkey, using javascript to implement logic behind its gui, sup
porting calls from javascript to c++ objects rust mozjs - rust bindings used by servo gnome gjs - javascript bindings to gnome (broadly, to any library using the gobject introspection mechanism) objective caml http://alain.frisch.fr/soft.html#spider - bindings to embed spidermonkey in ocaml applications perl http://jspl.msg.mx/ - bindings to cross-embed spidermonkey and perl.
...bundled modules include sup
port for bytearray, bytestring, cgi, posix signals, ffi, and more.
64-bit Compatibility
amd64 pointers if mucking with pointers on amd64 (or em64-t/intel64), it is im
portant to keep in mind an invariant that bits 63-48 must be sign-extended from bit 47.
...for example, this code tries to load an index from an integer array, but it is not
portable: lir->insload(lir_ldp, lir->ins2(lir_piadd, arrayins, lir->ins2i(lir_mul, indexins, sizeof(int)) ), 0); the sanityfilter will assert on a 64-bit platform because lir_piadd (which will be lir_qiadd) needs both operands to be 64-bit.
Exact Stack Rooting
since the gc may move gcthings, it very im
portant that spidermonkey know about each and every gcpointer in the system.
...if you think you do need to do one of these, ask on one of spidermonkey's sup
port forums: maybe we've already solved your problem using a different mechanism.
JIT Optimization Strategies
note: this page is an in-progress documentation of jit optimization strategies planned to sup
port the "jit coach" feature intended for inclusion in firefox developer tools.
...this is one of the most im
portant optimizations the jit performs.
JS::CallArgs
if false, it re
ports an error message on the context.
...then, when an eventual release making that change occurs,
porting efforts will require changing methods' signatures but won't require invasive changes to the methods' implementations, potentially under time pressure.
JS::CompileOptions
callers should set this flag for cross-origin scripts, and it will be propagated appropriately to child scripts and passed back in jserrorre
ports.
... "im
portscript" - code by calling im
portscripts in a web worker.
JSErrorFormatString
description jserrorformatstring is a struct to represent error message and type, returned by js_re
porterrornumber function.
... see also mxr id search for jserrorformatstring jsexntype js_re
porterrornumber bug 684526 ...
JSNewEnumerateOp
this callback overrides a
portion of spidermonkey's default [[enumerate]] internal method.
...this callback overrides a
portion of spidermonkey's default [[enumerate]] internal method.
JSObjectOps.enumerate
jsobjectops is not a sup
ported api.
... otherwise, it invokes the jsclass.enumerate hook as an old-style jsenumerateop to give the object an op
portunity to define any remaining lazy properties.
JS_AliasProperty
if the property name you specify does not exist, js_aliasproperty re
ports an error, and returns js_false.
... if the property is currently out of scope, already exists, or the alias itself cannot be assigned to the property, js_aliasproperty does not re
port an error, but returns js_false.
JS_ClearPendingException
many jsapi functions can simply re
port an error and return false without building and throwing an exception object.
...see also mxr id search for js_clearpendingexception js_getpendingexception js_isexceptionpending js_re
portpendingexception js_setpendingexception ...
JS_ConvertArguments
if an optional argument is missing from argv, js_convertarguments neither assigns anything to any variable nor re
ports an error.
... if argc is less than the number of arguments required by format, js_convertargument re
ports an error and returns false.
JS_GetErrorPrototype
syntax jsobject * js_geterrorprototype(jscontext *cx); name type description cx jscontext * pointer to a js context whose errors should be re
ported via your function.
... other contexts in the same runtime can have their own error re
porting functions.
JS_ValueToInt32
if the result is nan, an infinity, or a number outside the 32-bit range, js_valuetoint32 re
ports an error and conversion fails.
...js::toint32 will also convert nan (and anything that converts to nan, such as an array of strings) to 0, whereas this routine would re
port an error.
JS_malloc
if allocation fails, an error is re
ported in this context.
...if any of these three functions fails to allocate the required amount of memory, it re
ports an error as though by calling js_re
portoutofmemory(cx) and returns null.
TPS Tests
troubleshooting and debugging tips for writing and running tps tests tps evaluates the whole file in every phase, so any syntax error(s) in the file will get re
ported in phase 1, even though the error may not be in phase 1 itself.
... it's common for the phase after the problem to be the one re
porting errors (e.g.
Exploitable crashes
a crash re
port from your debugger, your os, or mozilla crash-stats can tell you a lot about whether or not a crash is potentially exploitable.
...additionally, mozilla developers make heavy use of two tools in particular to find exploitable situations before they show up as exploitable crash re
ports.
Setting up an update server
on macos, you can get the exact size of your mar by running the command: stat -f%z <filename> or on linux, the same command would be: stat --format "%s" <filename> starting your update server now, start an update server to serve the update files on
port 8000.
...you can use this command with firefox's browser console to determine the update directory: const {fileutils} = chromeutils.im
port("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.
XForms Accessibility
assistive technologies api for xforms is sup
ported starting from firefox 3 (gecko 1.9).
...note, we sup
port -moz-user-focus style neither for xhtml or xul.
Accessibility API Implementation Details
at apis sup
portthis documentation explains how makers of screen readers, voice dictation packages, onscreen keyboards, magnification software and other assitive technologies can sup
port gecko-based software.
... we provide for them the sup
port of these products on windows, linux/unix and os x platforms.at developmentthe accessibility of computer software has seen drastic improvements over the past two decades.
History Service Design
database indexes are quite im
portant, and a good query can make the difference between minutes or seconds.
... expiration expiration is an im
portant part of data management for two reasons: privacy: expiring data based on user interaction is im
portant, nothing must be left behind on a page removal database maintenance: having cleaner and smaller tables helps queries performances expiration is done at certain moments, but in future will most likely be moved to async queries, to be executed on a separate thread.
Using the Places history service
nsibrowserhistory.addpagewithdetails: called by history im
porting code.
...however, this is not yet sup
ported by the navhistory implementation.
The Publicity Stream API
this library will detect whether native api sup
port is enabled by the user's browser, if not it will shim in a pure html implementation.
...missing required properties) finally, the publicizeactivity() function will throw an exception if required arguments are missing, or if unsup
ported arguments are present.
extIPreferenceBranch
events readonly attribute extievents the events object for the preferences sup
ports: "change" methods has() check to see if a preference exists.
... there are no other types sup
ported by the preference subsystem.
Preface
starting with gecko 1.7.5 (firefox 1.0) a special npapi extension for scriptability is sup
ported, see scripting plugins.
...im
portant terms and new concepts are also italicized the first time they appear in the text.
Creating XPCOM components
preface who should read this book organization of the tutorial following along with the examples conventions acknowledgements an overview of xpcom the xpcom solution gecko components interfaces interfaces and encapsulation the nsisup
ports base interface xpcom identifiers cid contract id factories xpidl and type libraries xpcom services xpcom types method types reference counting status codes variable mappings common xpcom error codes using xpcom components component examples cookie manager the webbrowserfind component the weblock component component use in mozilla f...
...ng classes in xpcom using strings nsembedstring and nsembedcstring smart pointers starting weblock getting called at startup registering for notifications getting access to the category manager providing access to weblock creating the weblock programming interface defining the weblock interface in xpidl the xpidl syntax scriptable interfaces subclassing nsisup
ports the web locking interface implementing weblock declaration macros representing return values in xpcom xpidl code generation getting the weblock service from a client implementing the iweblock interface the directory service modifying paths with nsifile manipulating files with nsifile using nsilocalfile for reading data processing the white list data iweblock met...
Receiving startup notifications
the im
portant 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.
... for example: category profile-after-change mycomponent @foobar/mycomponent;1 im
portant: in the past, the contract id of the category entry started with "service," if the component was implemented as a service.
How to build a binary XPCOM component using Visual Studio
let’s specify a simple interface: #include "nsisup
ports.idl" [scriptable, uuid(263ed1ba-5cc1-11db-9673-00e08161165f)] interface ispecialthing : nsisup
ports { attribute astring name; long add(in long a, in long b); }; remember to generate your own guid.
... #ifndef __specialthing_impl_h__ #define __specialthing_impl_h__ #include "comp.h" #include "nsstringapi.h" #define specialthing_contractid "@starkravingfinkle.org/specialthing;1" #define specialthing_classname "specialthing" #define specialthing_cid { 0x245626, 0x5cc1, 0x11db, { 0x96, 0x73, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f } } class cspecialthing : public ispecialthing { public: ns_decl_isup
ports ns_decl_ispecialthing cspecialthing(); private: ~cspecialthing(); protected: /* additional members */ nsstring mname; }; #endif cpp file: #include "comp-impl.h" ns_impl_isup
ports1(cspecialthing, ispecialthing) cspecialthing::cspecialthing() { /* member initializers and constructor code */ mname.assign(l"default name"); } cspecialthing::~cspecialthing() { /* destructor code */ } ...
Components.utils.cloneInto
cloned functions have the same semantics as functions ex
ported using components.utils.ex
portfunction.
...if you do pass this flag, then functions in the object are cloned using the same mechanism as that used in components.utils.ex
portfunction: // add-on script var addonscriptobject = { greetme: function() { alert("hello from add-on"); } }; contentwindow.addonscriptobject = cloneinto(addonscriptobject, contentwindow, {clonefunctions: true}); // page script var test = document.getelementbyid("test"); test.addeventlistener("click", ...
Components.utils.forceGC
in this case it can be im
portant to be able to force a garbage collection cycle from javascript.
...this will make sure that xpcom components that build cycles with javascript objects also get collected which might be im
portant, for example for testcases that depend on the garbage collector.
Components.utils.unload
once this method has been called, references to the module will continue to work but any subsequent im
port of the module will reload it and give a new reference.
... if the javascript code module has not yet been im
ported then this method will do nothing.
Components object
utils.im
port loads a javascript module into the current script, without sharing a scope.
... utils.re
porterror re
ports a javascript error object to the error console.
HOWTO
e.g., you use: components.utils.im
port("resource://app/modules/gloda/log4moz.js"); however, you get (for that particular line, which is the first im
port): uncaught exception: [exception...
... "component returned failure code: 0x80040111 (ns_error_not_available) [nsixpccomponents_utils.im
port]" 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://app/ ur...
nsScriptableInputStream
class id 7225c040-a9bf-11d3-a197-0050041caf44 contractid @mozilla.org/scriptableinputstream;1 sup
ported interfaces nsiscriptableinputstream, nsiinputstream remarks this component should be accessed via the xpcom component manager.
... = components.interfaces.nsiscriptableinputstream; function consumestream(inputstream) { var factory = components.classes["@mozilla.org/scriptableinputstream;1"]; var sis = factory.createinstance(nsiscriptableinputstream); sis.init(inputstream); try { while (true) { var chunk = sis.read(512); if (chunk.length == 0) break; // ok, chunk now contains a
portion of the stream's data.
RefPtr
so for xpcom interfaces: nscomptr<nsisup
ports> a; nscomptr<nsifoo> foo; and for concrete classes: refptr<nsfoo> foo; // class that implements nsifoo; refptr<bar> bar; // some random class that i want ref-counted but has nothing to do with xpcom: // just implement addref() and release() and it will work with refptr it is im
portant that nscomptr is not used to hold a pointer to a concrete class since this can cau...
... note: in the above example, "nscomptr<nsfoo>" might compile and work ok (it won't if your xpcom class multiply-inherits nsisup
ports).
IAccessibleComponent
[propget] hresult background( [out] ia2color background ); parameters background the returned color is the background color of this object or, if that is not sup
ported, the default background color.
...[propget] hresult foreground( [out] ia2color foreground ); parameters foreground the returned color is the foreground color of this object or, if that is not sup
ported, the default foreground color.
IAccessibleEditableText
note that even a read only text object can sup
port the copy capability so this interface is not limited to editable objects.
...attributes set of attributes that replaces the old list of attributes of the specified text
portion.
IDispatch
js/src/xpconnect/idl/xpcidispatch.idlscriptable this interface is not to be used directly, it is to be used internally for xpconnect's idispatch sup
port.
... inherits from: nsisup
ports last changed in gecko 1.7 ...
imgICache
inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) as of firefox 18, there is no longer a single image cache.
... findentryproperties() find properties used to get properties such as 'type' and 'content-disposition' 'type' is a nsisup
portscstring containing the images' mime type such as 'image/png' 'content-disposition' will be a nsisup
portscstring containing the header if you call this before any data has been loaded from a uri, it will succeed, but come back empty.
imgIContainerObserver
1.0 66 introduced gecko 1.7 inherits from: nsisup
ports last changed in gecko 12.0 (firefox 12.0 / thunderbird 12.0 / seamonkey 2.9) if you wish to listen for activities on an imgicontainer, you should implement the framechanged() method.
... adirtyrect a rectangle indicating the
portion of the image container that changed.
mozIAsyncFavicons
1.0 66 introduced gecko 6.0 inherits from: nsisup
ports last changed in gecko 11.0 (firefox 11.0 / thunderbird 11.0 / seamonkey 2.8) nsifaviconservice handles this interface, so you do not need to directly create a new service.
...this is im
portant so that we know what to re
port when the favicon is used.
mozIJSSubScriptLoader
66 introduced gecko 1.0 inherits from: nsisup
ports last changed in gecko 28 (firefox 28 / thunderbird 28 / seamonkey 2.25 / firefox os 1.3) implemented by: @mozilla.org/moz/jssubscript-loader;1.
... to get this service, use: var mozijssubscriptloader = components.classes["@mozilla.org/moz/jssubscript-loader;1"] .getservice(components.interfaces.mozijssubscriptloader); note: see components.utils.im
port for another way to im
port javascript code.
mozIStorageError
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits from: nsisup
ports attributes attribute type description message autf8string a human readable error string with details; this may be null if no details are available.
... nolfs 22 attempted to use os features not sup
ported on the host system.
mozIStorageService
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) see mozistorageconnection method overview nsifile backupdatabasefile(in nsifile adbfile, in astring abackupfilename, [optional] in nsifile abackupparentdirectory); mozistorageconnection opendatabase(in nsifile adatabasefile); mozistorageconnection openspecialdatabase(in string astoragekey); mozistorageconnection openunshareddatabase(in nsifile adatabasefile); method...
...each connection uses its own sqlite cache, which is inefficient, so you should use opendatabase() instead of this method unless you need a feature of sqlite that is incompatible with a shared cache, like virtual table and full text indexing sup
port.
mozIStorageStatementWrapper
firefox 3.5 note firefox 3.5 adds sup
port for these features directly into the mozistoragestatement interface, so this interface is essentially deprecated.
... last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits from: nsisup
ports method overview void initialize(in mozistoragestatement astatement); void reset(); boolean step(); void execute(); attributes attribute type description statement mozistoragestatement the statement that is wrapped.
GetKeyBindings
« nsiaccessible page summary this method provides array of localized string of global keyboard accelerator for the given action index sup
ported by accessible.
... remark key bindings are sup
ported for default action only.
nsIAccessibleHyperLink
accessible/public/nsiaccessiblehyperlink.idlscriptable a cross-platform interface that sup
ports hyperlink-specific properties and methods.
... inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) method overview nsiaccessible getanchor(in long index); note: renamed from getobject in gecko 1.9 nsiuri geturi(in long index); boolean isselected(); obsolete since gecko 1.9 boolean isvalid(); obsolete since gecko 1.9 attributes attribute type description anchorcount long the number of anchors within this hyperlink.
nsIAccessibleRetrieval
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview nsiaccessible getaccessiblefor(in nsidomnode anode); nsiaccessible getaccessibleinshell(in nsidomnode anode, in nsipresshell apresshell); nsiaccessible getaccessibleinweakshell(in nsidomnode anode, in nsiweakreference apresshell); obsolete since gecko 2.0 nsiaccessible getaccessibleinwindow(in nsidomnode anode, in nsidomwindow adomwin); obsolete since gecko 2.0 nsiaccessible getapplicationaccessible(); nsiaccessible getattachedaccessiblefo...
...this node is either from bindings chain if given node is anonymous and owner binding denies accessible in anonymous content or given node (it's not im
portant whether it is accessible or not).
nsIApplicationCache
1.0 66 introduced gecko 1.9.1 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) each application cache has a unique client id for use with nsicacheservice.opensession() method, to access the cache's entries.
... item_op
portunistic 64 this item matched an op
portunistic cache namespace and was cached for that reason.
nsIApplicationCacheNamespace
1.0 66 introduced gecko 1.9.1 inherits from: nsisup
ports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) application caches can store a set of namespace entries that affect loads from the application cache.
... namespace_op
portunistic 4 items matching this namespace should be cached op
portunistically.
nsIAsyncInputStream
note: this method exists in part to sup
port pipes, which have both an input end and an output end.
...void closewithstatus( in nsresult astatus ); parameters astatus the error that will be re
ported if this stream is accessed after it has been closed.
nsIAsyncOutputStream
note: this method exists in part to sup
port pipes, which have both an input end and an output end.
...void closewithstatus( in nsresult reason ); parameters reason the error that will be re
ported if this stream is accessed after it has been closed.
nsIAsyncStreamCopier
inherits from: nsirequest last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview void asynccopy(in nsirequestobserver aobserver, in nsisup
ports aobservercontext); void init(in nsiinputstream asource, in nsioutputstream asink, in nsieventtarget atarget, in boolean asourcebuffered, in boolean asinkbuffered, in unsigned long achunksize, in boolean aclosesource, in boolean aclosesink); methods asynccopy() starts the copy operation.
...void asynccopy( in nsirequestobserver aobserver, in nsisup
ports aobservercontext ); parameters aobserver receives notifications.
nsIAutoCompleteItem
inherits from: nsisup
ports last changed in gecko 1.7 attributes attribute type description classname string class name used to define some style through css like the colors, an icon url, and so on.
... param nsisup
ports parameter use by the search engine.
nsIAutoCompleteListener
it only exists for legacy ldap autocomplete session sup
port.
... inherits from: nsisup
ports last changed in gecko 1.7 method overview void onautocomplete(in nsiautocompleteresults result, in autocompletestatus status); void onstatus(in wstring statustext); attributes attribute type description param nsisup
ports private parameter used by the autocomplete widget.
nsIBrowserSearchService
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by: @mozilla.org/browser/search-service;1.
...must be one of the sup
ported search engine data types defined above.
nsICacheDeviceInfo
inherits from: nsisup
ports last changed in gecko 1.7 attributes attribute type description description string get a human readable description of the cache device.
... usagere
port string get a usage re
port, statistics, miscellaneous data about the cache device.
nsIChannelEventSink
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) channels will try to get this interface from a channel's notificationcallbacks or, if not available there, from the loadgroup's notificationcallbacks.
...it is im
portant to understand that oldchannel will continue loading as if it received a response of http 200, which includes notifying observers and possibly display or process content attached to the http response.
nsIChannelPolicy
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) this interface exists to allow the content policy mechanism to function properly during channel redirects.
...attributes attribute type description contentsecuritypolicy nsisup
ports a nsicontentsecuritypolicy object to determine if the load should be allowed.
nsIClipboardDragDropHooks
inherits from: nsisup
ports last changed in gecko 1.7 embedders who want to have these hooks made available should implement nsiclipboarddragdrophooks and use the command manager to send the appropriate commands with these parameters/settings: command: cmd_clipboarddragdrophook params value type possible values "addhook" isup
ports nsiclipboarddragdrophooks as nsisup
ports "removehook" isup
ports nsiclipboarddragdrophooks as nsisup
ports note: overrides/hooks need to be add...
...if there are multiple hooks set for a window, any of them has an op
portunity to cancel the action so no further processing will occur.
nsICommandController
content/xul/document/public/nsicontroller.idlscriptable an enhanced controller interface that sup
ports passing parameters to commands.
... inherits from: nsisup
ports last changed in gecko 1.7 implemented by: @mozilla.org/embedcomp/base-command-controller;1.
nsICommandLine
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) components may implement the nsicommandlinehandler interface to add custom command line handling behavior.
...re
ports whether or not the specified flag was found.
nsICompositionStringSynthesizer
dom/interfaces/base/nsicompositionstringsynthesizer.idlscriptable this interface is a composition string synthesizer interface that synthesizes composition string with arbitrary clauses and a caret 1.0 66 introduced gecko 26 obsolete gecko 38 inherits from: nsisup
ports last changed in gecko 38.0 (firefox 38.0 / thunderbird 38.0 / seamonkey 2.35) this interface is obsoleted in gecko 38.
...however, gecko doesn't sup
port wide caret yet.
nsIConsoleService
inherits from: nsisup
ports last changed in gecko 19 (firefox 19 / thunderbird 19 / seamonkey 2.16) implemented by: @mozilla.org/consoleservice;1 as a service: var consoleservice = components.classes["@mozilla.org/consoleservice;1"] .getservice(components.interfaces.nsiconsoleservice); method overview void getmessagearray([array, size_is(count)] out nsiconsolemessage messages, out uint32_t count);obsolete since gecko 19 void getmessagearray([optional] out uint3...
...y(array, {}) || array.value; } logging a simple message a common usage is logging a message string to the console: function log(msg) { var consoleservice = components.classes["@mozilla.org/consoleservice;1"] .getservice(components.interfaces.nsiconsoleservice); consoleservice.logstringmessage(msg); } alternative logging methods include components.utils.re
porterror and dump().
nsIContentViewManager
content/base/public/nsiframeloader.idlscriptable manages the content views contained in a browser 1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) to obtain a reference to the view manager for a document, you can queryinterface() the nsiframeloader object to nsicontentviewmanager.
...once you have the view manager, you can call getcontentviewsin() to get a list of the content views for a given
portion of the browser display, then use those nsicontentview objects to manipulate the content views.
nsICryptoHMAC
1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) method overview acstring finish(in prbool aascii); void init(in unsigned long aalgorithm, in nsikeyobject akeyobject); void reset(); void update([const, array, size_is(alen)] in octet adata, in unsigned long alen); void updatefromstream(in nsiinputstream astream, in unsigned long alen); constants hashing algorithms.
...to create the key object use for instance: var keyobject = components.classes["@mozilla.org/security/keyobjectfactory;1"] .getservice(components.interfaces.nsikeyobjectfactory) .keyfromstring(components.interfaces.nsikeyobject.hmac, rawkeydata); exceptions thrown ns_error_invalid_arg if an unsup
ported algorithm type is passed.
nsIDNSRecord
inherits from: nsisup
ports last changed in gecko 1.7 method overview prnetaddr getnextaddr(in pruint16 a
port); native code only!
...prnetaddr getnextaddr( in pruint16 a
port ); parameters a
port a
port number to initialize the prnetaddr with.
nsIDOMChromeWindow
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void beginwindowmove(in nsidomevent mousedownevent); void getattention(); void getattentionwithcyclecount(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.
...void beginwindowmove( in nsidomevent mousedownevent ); parameters mousedownevent exceptions thrown ns_error_not_implemented if the operating system does not sup
port this method.
nsIDOMFile
note that in gecko, this interface currently inherits from nsisup
ports, but in the file api specification, it should be a blob.
... last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) inherits from: nsisup
ports this interface implements the dom file object; for complete documentation, read up on that.
nsIDOMGeoGeolocation
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits from: nsisup
ports implemented by: @mozilla.org/geolocation;1.
... starting in gecko 1.9.2, you can access this service using: var geolocation = components.classes["@mozilla.org/geolocation;1"] .getservice(components.interfaces.nsidomgeogeolocation); note: if nsidgeogeolocation throws an exception when im
porting, try using this: var geolocation = components.classes["@mozilla.org/geolocation;1"] .getservice(components.interfaces.nsisup
ports); method overview void clearwatch(in unsigned short watchid); void getcurrentposition(in nsidomgeopositioncallback successcallback, [optional] in nsidomgeopositionerrorcallback errorcallback, [optional] in nsidomgeopositionoptions options); unsigned short watchposition(in nsidomgeoposit...
nsIDOMMozNetworkStatsData
dom/network/interfaces/nsidomnetworkstats.idlscriptable represents a single record in the network statistics database, as re
ported using the nsidommoznetworkstatsmanager interface.
... 1.0 66 introduced gecko 18.0 inherits from: nsisup
ports last changed in gecko 18.0 (firefox 18.0 / thunderbird 18.0 / seamonkey 2.15) attributes attribute type description rxbytes unsigned long the number of bytes received on the connection.
nsIDOMNode
inherits from: nsisup
ports last changed in gecko 0.9.6 method overview nsidomnode appendchild(in nsidomnode newchild) nsidomnode clonenode(in boolean deep); boolean hasattributes(); boolean haschildnodes(); nsidomnode insertbefore(in nsidomnode newchild, in nsidomnode refchild) boolean issup
ported(in domstring feature, in domstring version); void normalize(); nsidomnode removechild(in nsidomnode oldchild) nsidomnode replacechild(in nsidomnode newchild, in nsidomnode oldchild) attributes attribute type description attributes nsidomnamednodemap read only.
...return value insertbefore() nsidomnode insertbefore( in nsidomnode newchild, in nsidomnode refchild ); parameters newchild refchild return value issup
ported() boolean issup
ported( in domstring feature, in domstring version ); parameters feature version return value normalize() void normalize(); parameters none.
nsIDOMWindowInternal
if the name doesn't exist, then a new window is opened and the specified resource is loaded into its browsing context.">open(in domstring url, in domstring name, in domstring options) nsidomwindow nsisup
ports aextraargument) void close() void updatecommands(in domstring action) boolean find([optional] in domstring str,[optional] in boolean casesensitive, [optional] in boolean backwards, [optional] in boolean wraparound, [optional] in boolean wholeword, [optional] in boolean searchinframes, [optional] in boolean showdialog) domstring atob(in domstring aasciistring)...
... pkcs11 nsidompkcs11 obsolete: this property is not sup
ported in newer versions of firefox.
nsIDOMXPathExpression
dom/interfaces/xpath/nsidomxpathexpression.idlscriptable represents a compiled xpath query returned from nsidomxpathevaluator.createexpression or document.createexpression inherits from: nsisup
ports last changed in gecko 1.7 method overview nsisup
ports evaluate(in nsidomnode contextnode, in unsigned short type, in nsisup
ports result) methods evaluate() evaluate the xpath expression.
... nsisup
ports evaluate( in nsidomnode contextnode, in unsigned short type, in nsisup
ports result ); parameters contextnode a dom node to evaluate the xpath expression against.
nsIDebug
xpcom/base/nsidebug.idlscriptable provides debugging sup
port for scripted languages, such as javascript, java, python, perl, and so forth.
... inherits from: nsisup
ports last changed in gecko 1.7 note: c/c++ consumers who are planning to use the nsidebug interface with the @mozilla.org/xpcom;1 contract should use ns_debugbreak() from xpcom glue instead, or alternatively the ns_abort, ns_assertion, ns_break, and ns_warning macros, which also call ns_debugbreak() if used in a debugging build.
nsIDeviceMotionData
1.0 66 introduced gecko 1.9.2 inherits from: nsisup
ports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) note: this interface was named nsidevicemotiondata prior to gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3).
... attributes attribute type description type unsigned long the type of motion data re
ported by this object; see motion type constants for possible values.
nsIDeviceMotionListener
xpcom/system/nsidevicemotion.idlscriptable this interface can be implemented by clients that want to be notified orientation or acceleration changes on sup
ported devices.
... 1.0 66 introduced gecko 1.9.2 inherits from: nsisup
ports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) method overview void onmotionchange(in nsidevicemotiondata amotiondata); methods onmotionchange() called when new orientation or acceleration data is available.
nsIDialogParamBlock
embedding/components/windowwatcher/public/nsidialogparamblock.idlscriptable an interface to pass strings, integers and nsisup
ports to a dialog.
... inherits from: nsisup
ports last changed in gecko 1.7 method overview print32 getint( in print32 inindex ); wstring getstring( in print32 inindex ); void setint( in print32 inindex, in print32 inint ); void setnumberstrings( in print32 innumstrings ); void setstring( in print32 inindex, in wstring instring); attributes attribute type description objects nsimutablearray a place where you can store an nsimutablearray to pass nsisup
ports.
nsIDirectoryService
the xpcom directory service implements this interface to provide sup
port for a variety of well-known file and directory locations.
... inherits from: nsisup
ports last changed in gecko 1.7 method overview void init(); void registerprovider(in nsidirectoryserviceprovider prov); void unregisterprovider(in nsidirectoryserviceprovider prov); init() initializes the nsidirectoryservice instance.
nsIDownloadObserver
inherits from: nsisup
ports last changed in gecko 1.7 method overview void ondownloadcomplete(in nsidownloader downloader, in nsirequest request, in nsisup
ports ctxt, in nsresult status, in nsifile result); methods ondownloadcomplete() called to signal a download that has completed.
... void ondownloadcomplete( in nsidownloader downloader, in nsirequest request, in nsisup
ports ctxt, in nsresult status, in nsifile result ); parameters downloader request ctxt status result ...
nsIDownloadProgressListener
inherits from: nsisup
ports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) to use simply implement this interface in your code, then call nsidownloadmanager.addlistener() to start listening.
...it is im
portant to note that there is no service for this listener.
nsIEditor
66 introduced gecko 1.0 inherits from: nsisup
ports last changed in gecko 18.0 (firefox 18.0 / thunderbird 18.0 / seamonkey 2.15) method overview [noscript] void init(in nsidomdocument doc, in nsicontent aroot, in nsiselectioncontroller aselcon, in unsigned long aflags); void setattributeorequivalent(in nsidomelement element, in astring sourceattrname, in astring sourceattrvalue, in boolean asuppresstransaction); void removeattributeorequivalent(in nsidomelement element, in domstring sourceattrname, in boolean asuppresstransaction); void postcreate(); void predestroy(in boolean adestroyingframes);...
...this helps to sup
port cases where only parts of the document are editable, by letting you see if the current selection is in an editable section.
nsIEffectiveTLDService
netwerk/dns/nsieffectivetldservice.idlscriptable this is an interface that examines a hostname and determines the longest
portion that should be treated as though it were a top-level domain (tld).
... 1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) implemented by: @mozilla.org/network/effective-tld-service;1.
nsIEnvironment
inherits from: nsisup
ports last changed in gecko 1.7 implemented by: @mozilla.org/process/environment;1 as a service: var env = components.classes["@mozilla.org/process/environment;1"].
... for non-unix/linux platforms we have to fall back to a "
portable" definition (which is incorrect for unix/linux!!!!) which simply checks whether the string returned by get() is empty or not.
nsIEventListenerInfo
1.0 66 introduced gecko 1.9.2 inherits from: nsisup
ports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview nsisup
ports getdebugobject(); astring tosource(); attributes attribute type description allowsuntrusted boolean indicates whether or not the event listener allows untrusted events.
...nsisup
ports getdebugobject(); parameters none.
nsIEventTarget
implement this interface in order to sup
port receiving events from other threads.
... 1.0 66 introduced gecko 1.6 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) method overview void dispatch(in nsirunnable event, in unsigned long flags); boolean isoncurrentthread(); void postevent(in pleventptr aevent); native code only!
nsIException
inherits from: nsisup
ports last changed in gecko 1.7 method overview string tostring(); attributes attribute type description columnnumber pruint32 valid column numbers begin at 0.
... data nsisup
ports arbitary data for the implementation.
nsIFTPEventSink
the nsiftpeventsink is an extension of nsisup
ports.
... last changed in gecko 1.9 (firefox 3) inherits from: nsisup
ports method overview void onftpcontrollog(in boolean server, in string msg) methods onftpcontrollog allows a consumer to receive a log of the ftp control connection conversation.
nsIFaviconService
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 22.0 (firefox 22.0 / thunderbird 22.0 / seamonkey 2.19) implemented by: @mozilla.org/browser/favicon-service;1.
...this is im
portant so that we know what to re
port when the favicon is used.
nsIFeedResult
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void registerextensionprefix(in astring anamespace, in astring aprefix); attributes attribute type description bozo boolean the feed processor sets the bozo bit when a feed triggers a fatal error during xml parsing.
... see also nsisup
ports nsifeedcontainer nsiuri nsiproperties interwiki link ...
nsIFeedResultListener
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void handleresult(in nsifeedresult result); methods handleresult() called when feed processing is complete.
... see also nsifeedprogresslistener nsisup
ports interwiki link ...
nsIHapticFeedback
xpcom/system/nsihapticfeedback.idlscriptable implemented to provide sup
port for haptic feedback (that is, vibration sup
port).
... 1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by: @mozilla.org/widget/hapticfeedback;1 as a service: var hapticfeedback = components.classes["@mozilla.org/widget/hapticfeedback;1"] .getservice(components.interfaces.nsihapticfeedback); once you have the service, you can initiate haptic feedback (that is, cause the device to vibrate, if it's sup
ported) by calling performsimpleaction(): hapticfeedback.performsimpleaction(components.interfaces.nsihapticfeedback.longpress); method overview void performsimpleaction(in long islongpress); constants press length constants constant value description shortpress 0 ...
nsIIDNService
netwerk/dns/nsiidnservice.idlscriptable this interface provides sup
port for internationalized domain names, including methods for manipulating idn hostnames according to ietf specification.
... inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) implemented by: @mozilla.org/network/idn-service;1 as a service: var idnservice = components.classes["@mozilla.org/network/idn-service;1"] .getservice(components.interfaces.nsiidnservice); method overview autf8string convertacetoutf8(in acstring input); autf8string converttodisplayidn(in autf8string input, out boolean isascii); acstring convertutf8toace(in autf8string input); boolean isace(in acstring input); autf8string normalize(in autf8string input); methods convertacetoutf8() converts an ace (ascii compatible encoding) hostname into unicode format, returning a utf-8 format string.
nsIINIParserWriter
1.0 66 introduced gecko 1.9.2 inherits from: nsisup
ports last changed in gecko 13.0 (firefox 13.0 / thunderbird 13.0 / seamonkey 2.10) this interface provides methods that allow writing to ini-format configuration files.
... to create an nsiiniparserwriter object, you use the nsiiniparserfactory interface to create a parser, then nsisup
ports.queryinterface() that to get an nsiiniparserwriter, like this: let writer = components.classes["@mozilla.org/xpcom/ini-processor-factory;1"].
nsIIdleService
1.0 66 introduced gecko 1.9.1 inherits from: nsisup
ports last changed in gecko 16 (firefox 16 / thunderbird 16 / seamonkey 2.13) you can get the idle time directly, but in most cases you will want to register an observer for a predefined interval.
...can be 0 if there is no valid idle time to re
port (this can happen if the user never interacted with the browser at all, and if we are unable to poll for idle time manually).
nsIInterfaceRequestor
inherits from: nsisup
ports last changed in gecko 0.9.5 this is similar to nsisup
ports.queryinterface().
...the semantics of nsisup
ports.queryinterface() dictate that given an interface a that you nsisup
ports.queryinterface() on to get to interface b, you must be able to nsisup
ports.queryinterface() on b to get back to a.
nsIJSCID
inherits from: nsijsid last changed in gecko 1.7 method overview nsisup
ports createinstance(); nsisup
ports getservice(); methods createinstance() nsisup
ports createinstance(); parameters none.
... return value getservice() nsisup
ports getservice(); parameters none.
nsIJetpack
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void sendmessage(in astring amessagename /* [optional] in jsval v1, [optional] in jsval v2, ...
...special messages if an exception goes uncaught in the jetpack process, it will be re
ported to the chrome process via a message with the name core:exception.
nsIJumpListItem
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) note: to consumers: it's reasonable to expect we'll need sup
port for other types of jump list items (an audio file, an email message, etc.).
... to add types, create the specific interface here, add an implementation class to winjumplistitem, and add sup
port to addlistbuild and removed items processing.
nsILivemarkService
1.0 66 introduced gecko 1.8 obsolete gecko 22.0 inherits from: nsisup
ports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) this interface is obsolete.
...being able to manually control this allows activity such as bookmarks im
port to occur without kicking off http traffic.
nsILocalFile
this parameter may be ignored on systems that do not sup
port file permissions.
...this routine only works on platforms which sup
port the ability to open a folder.
nsILoginInfo
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits from: nsisup
ports implemented by: @mozilla.org/login-manager/logininfo;1.
...a
port number (":123") may be appended.
nsILoginManagerIEMigrationHelper
toolkit/components/passwordmgr/public/nsiloginmanageriemigrationhelper.idlscriptable im
ports a login from the nsiieprofilemigrator into the login manager.
... 1.0 66 introduced gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) method overview void migrateandaddlogin(in nsilogininfo alogin); methods migrateandaddlogin() takes a login provided from nsieprofilemigrator, migrates it to the current login manager format, and adds it to the list of stored logins.
nsIMarkupDocumentViewer
inherits from: nsisup
ports last changed in gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4) method overview void scrolltonode(in nsidomnode node); void sizetocontent(); attributes attribute type description allowplugins boolean if true, plugins are allowed within the doc shell.
... bidisup
port octet whether to use platform bidi sup
port or mozilla's bidi sup
port 1 - use mozilla's bidi sup
port 2 - use the platform bidi sup
port 3 - disable bidi sup
port.
nsIMessageWakeupService
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) note: this service was introduced in gecko 5.0 on firefox for android, but was not provided on desktop until gecko 13.0 (firefox 13).
...currently, services must expose a wrappedjsobject in order to sup
port this; however, once bug 593407 is fixed, the service to be woken up must implement nsiframemessagelistener.
nsIMicrosummaryGenerator
1.0 66 introduced gecko 1.8 obsolete gecko 6.0 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) warning: microsummary sup
port was removed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) method overview long calculateupdateinterval(in nsidomnode apagecontent); boolean equals(in nsimicrosummarygenerator aother); astring generatemicrosummary(in nsidomnode apagecontent); attributes attribute type description loaded boolean has the generator itself (which may be a remote resource) been loaded.
...note: in the future, this may be expanded to sup
port rich text content.
nsIMicrosummaryService
1.0 66 introduced gecko 1.8 obsolete gecko 6.0 inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) warning: microsummary sup
port was removed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) implemented by: @mozilla.org/microsummary/service;1 as a service: var microsummaryservice = components.classes["@mozilla.org/microsummary/service;1"] .getservice(components.interfaces.nsimicrosummaryservice); method overview void addgenerator(in nsiuri generatoruri); nsimicrosummary createmicrosummary(in nsiuri pag...
...ismicrosummary() re
ports whether or not the given microsummary is the current microsummary for the given bookmark.
nsIMsgCompFields
properties attribute type description attachments char * obsolete attachments obsolete, do not use anymore attachmentsarray nsisup
portsarray readonly attachvcard prbool bcc astring body astring bodyisasciionly prbool cc astring characterset char * defaultcharacterset char * readonly drafid char * dsn prbool fcc astring fcc2 astring followupto char * forcemsgencoding prbool forceplaintext...
... newsposturl char * organization astring otherrandomheaders astring no longer exists - see https://groups.google.com/forum/#!topic/mozilla.dev.apps.thunderbird/s4ofmm8_b28 priority char * receiptheadertype print32 references char * replyto astring securityinfo nsisup
ports subject astring templatename astring temporaryfiles char * obsolete temporaryfiles obsolete, do not use anymore to astring usemultipartalternative prbool uuencodeattachments prbool methods utility methods prbool checkcharsetconversion ( out char * fallbackcharset )...
nsIMsgDBView
inherits from: nsisup
ports implemented by: @mozilla.org/messenger/msgdbview;1.
... sup
portsthreading boolean readonly: does the current database sup
port threading?
nsIMsgDatabase
hangelistener instigator); markhdrreplied() void markhdrreplied(in nsimsgdbhdr msghdr, in boolean breplied, in nsidbchangelistener instigator); markhdrmarked() void markhdrmarked(in nsimsgdbhdr msghdr, in boolean mark, in nsidbchangelistener instigator); markmdnneeded() mdn (message disposition notification) sup
port.
... void markmdnneeded(in nsmsgkey key, in boolean bneeded, in nsidbchangelistener instigator); ismdnneeded() markmdnneeded only used when mail server is a pop3 server, or when the imap server does not sup
port user defined permanentflags.
nsIMsgSearchValue
defined in comm-central/ mailnews/ base/ search/ public/ nsimsgsearchvalue.idl #include "nsmsgsearchcore.idl" interface nsimsgfolder; [scriptable, uuid(783758a0-cdb5-11dc-95ff-0800200c9a66)] interface nsimsgsearchvalue : nsisup
ports { // type of object attribute nsmsgsearchattribvalue attrib; // accessing these will throw an exception if the above // attribute does not match the type!
...sgmessageflags.idl and nsmsgfolderflags.idl attribute unsigned long status; attribute unsigned long size; attribute nsmsgkey msgkey; attribute long age; // in days attribute nsimsgfolder folder; attribute nsmsglabelvalue label; attribute nsmsgjunkstatus junkstatus; /* * junkpercent is set by the message filter plugin, and is approximately * pro
portional to the probability that a message is junk.
nsINavHistoryResult
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) places results use a model-view-controller (mvc) design pattern.
...if true, the result will keep a weak reference to the observer, which must implement the nsisup
portsweakreference interface.
nsINavHistoryResultViewObserver
inherits from: nsisup
ports last changed in gecko 1.9.0 method overview boolean candrop(in long index, in long orientation); void ondrop(in long row, in long orientation); void ontoggleopenstate(in long index); void oncycleheader(in nsitreecolumn column); void oncyclecell(in long row, in nsitreecolumn column); void onselectionchanged(); void onperformaction(in wstring action); void onperformactiononrow(in wstring action, in long row); void onperformactiononcell(in wstring act...
... methods candrop() implement this method to re
port whether or not a drop is permitted onto the specified location.
nsIOutputStream
inherits from: nsisup
ports last changed in gecko 1.0 an output stream may be "blocking" or "non-blocking" (see the isnonblocking() method).
...typically, output streams that do not have an internal buffer will not implement this method since such an implementation would require an intermediate buffer unless afromstream sup
ported nsiinputstream.readsegments(), but that is not guaranteed.
nsIPasswordManager
netwerk/base/public/nsipasswordmanager.idlscriptable used to interface with the built-in password manager 66 introduced gecko 1.0 deprecated gecko 1.9 inherits from: nsisup
ports last changed in gecko 1.0 see using nsipasswordmanager for examples.
...only the host
portion of these objects is relevant.
nsIPipe
inherits from: nsisup
ports last changed in gecko 1.6 method overview void init(in boolean nonblockinginput, in boolean nonblockingoutput, in unsigned long segmentsize, in unsigned long segmentcount, in nsimemory segmentallocator); attributes attribute type description inputstream nsiasyncinputstream the pipe's input end, which also implements nsisearchableinputstream.
...the pipe sup
ports nsiasyncinputstream and nsiasyncoutputstream, which give the user of a non-blocking pipe the ability to wait for the pipe to become ready again.
nsIPrefBranch2
the object must implement the nsisup
portsweakreference interface or this will fail.
...there are 3 approaches which have been implemented in an attempt to avoid these situations: the nsprefbranch object sup
ports nsisup
portsweakreference.
nsIPrefLocalizedString
modules/libpref/public/nsipreflocalizedstring.idlscriptable this interface is simply a wrapper interface for nsisup
portsstring so the preferences service can have a unique identifier to distinguish between requests for normal wide strings nsisup
portsstring) and 'localized' wide strings, which get their default values from properites files.
... inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void setdatawithlength(in unsigned long length, [size_is(length)] in wstring data); wstring tostring(); attributes attribute type description data wstring provides access to string data stored in this property.
nsIPrivateBrowsingService
1.0 66 introduced gecko 1.9.1 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) this interface is deprecated since firefox 20, and will probably be completely removed in firefox 21.
... for details on how to do this, see the article sup
porting private browsing mode.
nsIPropertyBag
inherits from: nsisup
ports last changed in gecko 1.0 method overview nsivariant getproperty(in astring name); attributes attribute type description enumerator nsisimpleenumerator get a nsisimpleenumerator whose elements are nsiproperty objects.
...opertybag: services.sysinfo.getproperty("version"); //output 5.1 services.sysinfo.getproperty("name"); //output windows_nt services.sysinfo.getproperty("arch"); //output x86 services.sysinfo.getproperty("haswindowstouchinterface"); //outputs false or true if windows touch is there consult the uxp repo (//github.com/realityripple/uxp/blob/master/xpcom/base/nssysteminfo.cpp) for the properties sup
ported.
nsIScriptableInputStream
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview unsigned long available(); void close(); void init(in nsiinputstream ainputstream); string read(in unsigned long acount); acstring readbytes(in unsigned long acount); methods available() return the number of bytes currently available in the stream.
... note: it is also im
portant to consider how a language bindings may interpret the string data type.
nsISimpleEnumerator
inherits from: nsisup
ports last changed in gecko 0.9.6 method overview nsisup
ports getnext(); boolean hasmoreelements(); methods getnext() called to retrieve the next element in the enumerator.
...nsisup
ports getnext(); parameters none.
nsIStreamListener
method overview void ondataavailable(in nsirequest arequest, in nsisup
ports acontext, in nsiinputstream ainputstream, in unsigned long aoffset, in unsigned long acount); methods ondataavailable() this method is called when the next chunk of data for the ongoing request may be read without blocking the calling thread.
...void ondataavailable( in nsirequest arequest, in nsisup
ports acontext, in nsiinputstream ainputstream, in unsigned long aoffset, in unsigned long acount ); parameters arequest an nsirequest indicating the source of the data.
nsITaskbarPreviewController
1.0 66 introduced gecko 1.9.2 inherits from: nsisup
ports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) clients should provide their own implementation of this interface.
...the controller and its sup
porting code, however, may change this values at any time.
nsITaskbarWindowPreview
user clicks on the toolbar buttons are re
ported to your nsitaskbarpreviewcontroller implementation's nsitaskbarpreviewcontroller.onclick() method.
... constants constant value description num_toolbar_buttons 7 the maximum number of toolbar buttons sup
ported by the windows taskbar api.
nsITextInputProcessorNotification
dom/interfaces/base/nsitextinputprocessorcallback.idlscriptable this interface of a request or notification to ime 1.0 66 introduced gecko 38 inherits from: nsisup
ports last changed in gecko 38.0 (firefox 38.0 / thunderbird 38.0 / seamonkey 2.35) this interface tells details of a request or notification to ime.
... when gecko sup
ports new notification to ime, this interface may have some new attributes.
nsIURIFixup
inherits from: nsisup
ports last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) implemented by: @mozilla.org/docshell/urifixup;1 as a service: var urifixup = components.classes["@mozilla.org/docshell/urifixup;1"] .createinstance(components.interfaces.nsiurifixup); method overview nsiuri createexposableuri(in nsiuri auri); nsiuri createfixupuri(in autf8string auritext, in unsigned long afixupflags); nsiuri keywordtouri(in autf8string akeyword); nsiurifixupinfo getfixupuriinfo(in autf8string auritext, in unsigned long afixupflags); constants constant value description ...
... ns_error_malformed_uri when the exposable
portion of auri is malformed.
nsIUTF8StringEnumerator
inherits from: nsisup
ports last changed in gecko 1.7 method overview autf8string getnext(); boolean hasmore(); methods getnext() returns the next string in the enumerator.
...hasmore() re
ports whether or not the enumerator has any strings that can be returned via getnext().
nsIUpdateChecker
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void checkforupdates(in nsiupdatechecklistener listener, in boolean force); void stopchecking(in unsigned short duration); constants constant value description current_check 1 constant for the stopchecking() method indicating that only the current update check should be stopped.
...this is used by any user interface that offers the user the op
portunity to check for updates immediately.
nsIUpdateTimerManager
toolkit/mozapps/update/nsiupdatetimermanager.idlscriptable this interface provides a global application service that provides sup
port for long-duration timers (on the order of many days, weeks, or even months).
... 1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void registertimer(in astring id, in nsitimercallback callback, in unsigned long interval); methods registertimer() presents a user interface that checks for and displays the available updates.
nsIVersionComparator
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) version strings are dot-separated sequences of version-parts.
...see here: nsixulappinfo components.utils.im
port("resource://gre/modules/services.jsm"); var curentbrowserversion = services.appinfo.platformversion; //example: '31.*' var comparetothisversion = '25.*'; var compareresult = services.vc.compare(curentbrowserversion, comparetothisversion); if (compareresult == -1) { //currentbrowserversion is less than '25.*' (comparetothisversion) } else if (compareresult == 0) { //currentbrowserversio...
nsIWebBrowser
inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) warning: this interface was frozen for a very long time, but was unfrozen for gecko 2.0.
... note: if this attribute is set to an object that implements nsisup
portsweakreference, the implementation should get the nsiweakreference and hold that.
nsIWebBrowserChrome2
1.0 66 introduced gecko 1.9 inherits from: nsiwebbrowserchrome last changed in gecko 1.9 (firefox 3) method overview void setstatuswithcontext(in unsigned long statustype, in astring statustext, in nsisup
ports statuscontext); methods setstatuswithcontext() called when the status text in the chrome needs to be updated.
...void setstatuswithcontext( in unsigned long statustype, in astring statustext, in nsisup
ports statuscontext ); parameters statustype indicates what is setting the text.
nsIWebPageDescriptor
inherits from: nsisup
ports last changed in gecko 1.7 method overview void loadpage(in nsisup
ports apagedescriptor, in unsigned long adisplaytype); attributes attribute type description currentdescriptor nsisup
ports retrieves the page descriptor for the current document.
...void loadpage( in nsisup
ports apagedescriptor, in unsigned long adisplaytype ); parameters apagedescriptor the page descriptor for the page to load.
nsIWinAppHelper
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) implemented by: @mozilla.org/xre/app-info;1.
...note that this parameter was never actually sup
ported.
nsIWinTaskbar
1.0 66 introduced gecko 1.9.2 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) starting with windows 7, applications gain some control over their appearance in the taskbar.
...skbartabpreview(in nsidocshell shell, in nsitaskbarpreviewcontroller controller); nsitaskbarprogress gettaskbarprogress(in nsidocshell shell); nsitaskbarwindowpreview gettaskbarwindowpreview(in nsidocshell shell); void setgroupidforwindow(in nsidomwindow aparent, in astring aidentifier); attributes attribute type description available boolean returns true if the operating system sup
ports windows 7 or later taskbar features; you can use this instead of in-place operating system version checking.
nsIWindowMediator
inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) the two most common uses of nsiwindowmediator are, enumerating all windows of a given type and getting the most recent / any window of a given type.
...im
portant: this will attach the functionality to future opened windows, so if you copy paste this code to scratchpad, then after running this script, you need to open a new window by pressing ctrl + n and then in the new window, selecting tabs will fire the alert.
nsIWindowsRegKey
1.0 66 introduced gecko 1.8 inherits from: nsisup
ports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) the interface represents a single key in the registry.
...in particular, this interface does not sup
port the reg_multi_sz and reg_expand_sz value types.
nsIWorkerGlobalScope
1.0 66 introduced gecko 1.9.1 inherits from: nsisup
ports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) attributes attribute type description location nsiworkerlocation read only.
... see also using web workers nsiworkermessage
port nsiworkermessageevent nsiworkerscope nsiabstractworker nsiworker ...
nsIWritablePropertyBag2
propertyasautf8string(in astring prop, in autf8string value); void setpropertyasbool(in astring prop, in boolean value); void setpropertyasdouble(in astring prop, in double value); void setpropertyasint32(in astring prop, in print32 value); void setpropertyasint64(in astring prop, in print64 value); void setpropertyasinterface(in astring prop, in nsisup
ports value); void setpropertyasuint32(in astring prop, in pruint32 value); void setpropertyasuint64(in astring prop, in pruint64 value); methods setpropertyasacstring() void setpropertyasacstring( in astring prop, in acstring value ); parameters prop property to set the value of.
... setpropertyasinterface() void setpropertyasinterface( in astring prop, in nsisup
ports value ); parameters prop property to set the value of.
nsIXMLHttpRequest
here is a comment from johnny stenback <jst@netscape.com>: the mozilla implementation of nsixmlhttprequest implements the interface nsidomeventtarget and that's how you're sup
ported to add event listeners.
... example code for opening a simple http request from a xul application (like a mozilla extension) without using observers: var req = components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createinstance(); req.open('post', "http://www.foo.bar:8080/nietzsche.do", true); req.send('your=data&and=more&stuff=here'); example 2 var {cu: utils, cc: classes, ci: instances} = components; cu.im
port('resource://gre/modules/services.jsm'); function xhr(url, cb) { let xhr = cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createinstance(ci.nsixmlhttprequest); let handler = ev => { evf(m => xhr.removeeventlistener(m, handler, !1)); switch (ev.type) { case 'load': if (xhr.status == 200) { cb(xhr.response); ...
nsIXPCException
inherits from: nsiexception last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview void initialize(in string amessage, in nsresult aresult, in string aname, in nsistackframe alocation, in nsisup
ports adata, in nsiexception ainner); xpcexjsval stealjsval(); native code only!
... methods initialize() void initialize( in string amessage, in nsresult aresult, in string aname, in nsistackframe alocation, in nsisup
ports adata, in nsiexception ainner ); parameters amessage aresult aname alocation adata ainner native code only!stealjsval xpcexjsval stealjsval(); parameters none.
nsIXPCScriptable
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits from: nsisup
ports method overview void precreate(in nsisup
ports nativeobj, in jscontextptr cx, in jsobjectptr globalobj, out jsobjectptr parentobj); void create(in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj); void postcreate(in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj); prbool addproperty(in nsixpconnectwrappednative wrapper, in jscontextptr...
... methods precreate() void precreate( in nsisup
ports nativeobj, in jscontextptr cx, in jsobjectptr globalobj, out jsobjectptr parentobj ); parameters nativeobj cx globalobj parentobj create() void create( in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj ); parameters wrapper cx obj postcreate() void postcreate( in nsixpconnectwrappednative wrapper, in jscontextptr cx, ...
nsIXULBuilderListener
inherits from: nsisup
ports last changed in gecko 1.7 method overview void didrebuild(in nsixultemplatebuilder abuilder); void willrebuild(in nsixultemplatebuilder abuilder); methods didrebuild() called after a template builder has rebuilt its content.
... example create an object which implements nsixulbuilderlistener: var mylistener = { queryinterface: function(aiid) { if (aiid.equals(components.interfaces.nsixulbuilderlistener) || aiid.equals(components.interfaces.nsisup
ports)) return this; throw components.results.ns_nointerface; }, willrebuild : function(builder) {}, didrebuild : function(builder) { } } attach the listener to a element: myelement.addlistener(mylistener); ...
nsIZipEntry
inherits from: nsisup
ports last changed in gecko 1.9 (firefox 3) attributes attribute type description compression unsigned short the type of compression used for the item.
... the possible values and their meanings are defined in the zip file specification at zip application note sup
port.
nsIMsgSearchValue
defined in comm-central/ mailnews/ base/ search/ public/ nsimsgsearchvalue.idl #include "nsmsgsearchcore.idl" interface nsimsgfolder; [scriptable, uuid(783758a0-cdb5-11dc-95ff-0800200c9a66)] interface nsimsgsearchvalue : nsisup
ports { // type of object attribute nsmsgsearchattribvalue attrib; // accessing these will throw an exception if the above // attribute does not match the type!
...sgmessageflags.idl and nsmsgfolderflags.idl attribute unsigned long status; attribute unsigned long size; attribute nsmsgkey msgkey; attribute long age; // in days attribute nsimsgfolder folder; attribute nsmsglabelvalue label; attribute nsmsgjunkstatus junkstatus; /* * junkpercent is set by the message filter plugin, and is approximately * pro
portional to the probability that a message is junk.
nsIAbCard/Thunderbird3
properties currently sup
ported on the card: names: firstname, lastname phoneticfirstname, phoneticlastname displayname, nickname spousename, familyname primaryemail, secondemail home contact: homeaddress, homeaddress2, homecity, homestate, homezipcode, homecountry homephone, homephonetype work contact.
...the following types are sup
ported: base64xml xml vcard autf8string translateto(in autf8string atype); parameters atype the type of item to translate the card into.
nsMsgMessageFlags
imapdeleted 0x00200000 indicates whether or not the message has been deleted on the imap server mdnre
portneeded 0x00400000 indicates whether or not a delivery receipt was requested.
... mdnre
portsent 0x00800000 indicates whether or not a delivery receipt was sent.
The Thread Manager
application/extension javascript should consider using a chromeworker instead.") interfaces there are several interfaces that provide threading sup
port: nsithreadmanager the thread manager itself lets you create threads.
... nsithreadinternal a subclass of nsithread that is implemented by the xpcom thread object to add sup
port for observing dispatch activity on a thread.
Status, Recent Changes, and Plans
eliminated the need to cast getter_addrefs when an nsisup
ports** is needed.
... relaxed the invariant for nscomptr<nsisup
ports>, so that it is now a pointer to any xpcom interface.
Using the Gecko SDK
the frozen gecko api consists of a set of component interfaces (c++ vtables) and <tt>extern "c"</tt> symbols ex
ported from the xpcom library and the nspr libraries.
...(
ports of this guide are welcome.) a "frozen" interface or function is guaranteed to be sup
ported by future versions of same major version of the platform.
Working with out parameters
when working with xpcom components, you might come across method declarations like the following one: [scriptable, uuid(8b5314bc-db01-11d2-96ce-0060b0fb9956)] interface nsitransferable : nsisup
ports { ...
... void gettransferdata ( in string aflavor, out nsisup
ports adata, out unsigned long adatalen ) ; ...
XPCOM ABI
firefox) is built, the name of the abi it sup
ports is embedded into it.
...an extension author may build (compile) the xpcom component for each and every sup
ported machine and pack all the builds into a single xpi, each into its distinctive platform-specific subdirectory.
XPIDL Syntax
status of this document this is a partial reverse-engineering of the libidl source code's parser, limited mostly to the subset of functionality that is sup
ported by the mozilla xpidl binary.
...the following is a list of potential features which are parseable but may not result in expected code: struct, union, and enumerated types array declarators (appears to be sup
ported in xpidl_header.c but not xpidl_typelib.c) exception declarations module declarations variable arguments (that makes the abnf get more wonky) sequence types max-length strings fixed-point numbers "any" and "long double" types.
XTF
the extensible tag framework (xtf) allows adding sup
port for new namespaces using xpcom components to mozilla (written in javascript or c++).
... for example, the mozilla xforms project uses xtf to add sup
port for the xforms namespace.
Testing Mozilla code
testing your code is im
portant!
... asan nightly projectthe asan nightly project involves building a firefox nightly browser with the popular addresssanitizer tool and enhancing it with remote crash re
porting capabilities for any errors detected.clang static analysisthis document is split in two parts.
Address book sync client design
it was im
ported from mozilla.org and last updated in 2000.
...this interface is as follows: #include "nsisup
ports.idl" #include "nsrootidl.idl" #include "nsifilespec.idl" [scriptable, uuid(e0ed29e0-098a-11d4-8fd6-00a024a7d144)] interface nsiabsynclistener : nsisup
ports { /** * notify the observer that the ab sync authorization operation has begun.
Creating a gloda message query
im
port gloda gloda's api is exposed in the "gloda" object that is contributed to your namespace.
... you can find the file, which includes doxygen markup of sorts, here: https://hg.mozilla.org/comm-central/file/tip/mailnews/db/gloda/modules/gloda.js components.utils.im
port("resource:///modules/gloda/public.js"); create the query let query = gloda.newquery(gloda.noun_message); add constraints to the query each constraint function takes one or more arguments which are "or"ed together.
Main Windows
things appear confusing for several reasons: much of the code is written to be
portable, so instead of duplicating it, its been put in overlays that are loaded over many different types of windows.
... customizetoolbar.xul and customizetoolbarsheet.xul these are two old files from when the original customizable toolbars were
ported from firefox (phoenix at the time) to thunderbird (minotaur at the time).
Spam filtering
it was im
ported from mozilla.org and last updated in 2003.
... currently, spam filtering is does not work for news, but it would be possible to add sup
port for this.
Add Option to Context Menu
> for thunderbird 3 <?xml version="1.0"?> <overlay id="sample" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <popup id="mailcontext"> <menuitem id="my_option" label="my option concise and cool label" oncommand="alert('hi')"/> </popup> </overlay> for thunderbird 2 and 3 in the same xpi if our extension needs to sup
port thunderbird 2 and 3 we need to make custom overlays for each version.
... note: if our extension sup
ports more mozilla applications (for example mozilla firefox and mozilla thunderbird) we need also specify application flag.
Folders and message lists
it's used like this: // im
port the fixiterator() function.
... components.utils.im
port("resource:///modules/iteratorutils.jsm"); for (let msghdr in fixiterator(myfolder.messages, components.interfaces.nsimsgdbhdr)) { // do something with msghdr...
customDBHeaders Preference
nce outlined in setting up extension development environment, you'll want to add the following preferences: // this allows you to add extra headers while composing messages user_pref("mail.compose.other.header", "x-superfluous,x-other,x-whatever"); // this enables the preservation of custom headers as incoming mail is processed user_pref( "mailnews.customdbheaders", "x-superfluous,x-other"); im
portant: please pay careful attention to the case of the mailnews.customdbheaders preference.
...ice = components.classes["@mozilla.org/observer-service;1"].getservice(components.interfaces.nsiobserverservice); observerservice.addobserver(createdbobserver, "msgcreatedbview", false); window.document.getelementbyid('foldertree').addeventlistener("select",addcustomcolumnhandler,false); } window.addeventlistener("load",doonceloaded,false); dump(" ~ ~ ~ ~ end superfluous ~ ~ ~ ~ \n"); im
portant be aware that only messages that are added to the .msf database after the customdbheaders pref is set will have the corresponding string property set on the msghdr.
libmime content type handlers
it was im
ported from mozilla.org and last updated in 2001.
...e prefixed by the * following: mimecth:text/vcard * * libmime will then use nscomponentmanager::contractidtoclsid() to * locate the appropriate content type handler */ #ifndef nsimimecontenttypehandler_h_ #define nsimimecontenttypehandler_h_ typedef struct { prbool force_inline_display; } contenttypehandlerinitstruct; #include "prtypes.h" #include "nsisup
ports.h" #include "mimecth.h" // {20dabd99-f8b5-11d2-8ee0-00a024a7d144} #define ns_imime_content_type_handler_iid \ { 0x20dabd99, 0xf8b5, 0x11d2, \ { 0x8e, 0xe0, 0x0, 0xa0, 0x24, 0xa7, 0xd1, 0x44 } } class nsimimecontenttypehandler : public nsisup
ports { public: static const nsiid& getiid() { static nsiid iid = ns_imime_content_type_handler_iid; return iid; } ns_imethod g...
Virtualenv
im
port paths).
... > ls tmp/bin/ activate activate.fish easy_install pip python activate.csh activate_this.py easy_install-2.7 pip-2.7 using this python binary, or these scripts (which point to this python binary), you will correctly install python packages in the lib/python2.x/site-packages directory and they will be appropriately added to your im
port path (sys.path) via lib/python2.x/site.py.
Memory Management
what won't keep objects alive it's im
portant to note that getting direct access to the contents of a cdata object using address(), addressofelement(), or contents, will result in a cdata object that does not hold its referent alive.
...this should be obvious, but is im
portant enough to be worth stating explicitly.
ctypes.open
see: http://stackoverflow.com/questions/19382201/how-to-load-dll-from-sdk-addon-data-folder it is im
portant 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.im
port("resource://gre/modules/services.jsm"); var cr = components.classes['@mozilla.org/chrome/chrome-registry;1'].getservice(components.interfaces.nsichromeregistry); var chromeuri_mylib = services.io.newuri('chrome://youraddon/content/mysubfolder/mycfunctionsforunix.so', 'utf-8', null); var localfile_mylib = cr.convertchromeurl(chromeuri_mylib); var jarpath_mylib = localfile_mylib.spec; // "jar:file...
Int64
because javascript doesn't currently include standard sup
port for 64-bit integer values, js-ctypes offers the int64 and uint64 objects to let you work with c functions and data that need (or may need) values represented using a 64-bit data type.
... note: it's im
portant to note that the 64-bit integer objects created by int64 are not int64 objects; rather, they're opaque objects whose values you manipulate through the other methods on the int64 object.
UInt64
as javascript doesn't currently include standard sup
port for 64-bit integer values, js-ctypes offers the int64 and uint64 objects to let you work with c functions and data that need (or may need) to use data represented using a 64-bit data type.
... note: it's im
portant to note that the 64-bit integer objects created by uint64 are not uint64 objects; rather, they're opaque objects whose values you manipulate through the other methods on the uint64 object.
js-ctypes
c++ sup
port is possible through vtable pointers see using com from js-ctypes.
... for a discussion on extended c++ sup
port see bug 505907.
Constants - Plugins
npvers_has_form_values 15 nppvformvalue nppvariables are sup
ported.
... npvers_has_popups_enabled_state 16 the npn_pushpopupsenabledstate() and npn_poppopupsenabledstate() functions are sup
ported.
Gecko Plugin API Reference - Plugins
warning: you must only call these from the main thread; calling them from other threads is not sup
ported and may have unpredictable results.
...er npobject npn_createobject npn_retainobject npn_releaseobject npn_invoke npn_invokedefault npn_evaluate npn_getproperty npn_setproperty npn_removeproperty npn_hasproperty npn_hasmethod npn_setexception npclass structures npanycallbackstruct npbyterange npembedprint npevent npfullprint npp np_
port npprint npprintcallbackstruct nprect npregion npsaveddata npsetwindowcallbackstruct npstream npwindow constants error codes result codes plug-in version constants version feature constants external resources external projects and articles for plugin creation original document information copyright information: netscape communication ...
Introduction to DOM Inspector - Firefox Developer Tools
dom inspector is standalone; it sup
ports all toolkit applications, and it's possible to embed it in your own xulrunner app.
... basic actions of the dom nodes viewer selecting elements by click another powerful interactive feature of the dom inspector is that when you have the dom inspector open and have enabled this functionality by choosing edit > select element by click or by clicking the little magnifying glass icon in the upper left
portion of the dom inspector application, you can click anywhere in a loaded web page or the the inspect chrome document, and the element you click will be shown in the document pane in the dom nodes viewer and information displayed in the object pane.
Set event listener breakpoints - Firefox Developer Tools
all of the standard events sup
ported in your version of firefox are listed, arranged by which api or api area they're part of.
...in addition, you get a box overlaid on the view
port saying "paused on event breakpoint", with buttons to step over that line of code or resume execution.
Source map errors - Firefox Developer Tools
general source map error re
porting if you do see a problem, a message will appear in the webconsole.
... ressourcen-adresse: moz-extension://c7f0f003-4fcf-49fd-8ec0-c49361266581/background.js source-map-adresse: background.js.map the only workaround is to manually change the map url to a public one (http://localhost:1234/file.map.js) and start a local webserver at this
port.
Tree map view - Firefox Developer Tools
each category is represented with a rectangle, and the size of the rectangle corresponds to the pro
portion of the heap occupied by items in that category.
...you can see the much larger pro
portion of the heap occupied by scripts, that are loaded from a large number of origins.
Network request details - Firefox Developer Tools
see https://en.wikipedia.org/wiki/special:centralautologin/p3p for more info.\"" }, { "name": "server", "value": "mw1316.eqiad.wmnet" }, { "name": "server-timing", "value": "cache;desc=\"pass\"" }, { "name": "strict-trans
port-security", "value": "max-age=106384710; includesubdomains; preload" }, { "name": "vary", "value": "accept-encoding,treat-as-untrusted,x-forwarded-proto,cookie,authorization,x-seven" }, { "name": "via", "value": "1.1 varnish (varnish/5.1), 1.1 varnish (varnish/5.1)" }, { "name": "x-analytics", "value": "ns=...
...}, { "name": "accept-encoding", "value": "gzip, deflate, br" }, { "name": "accept-language", "value": "en-us,en;q=0.5" }, { "name": "connection", "value": "keep-alive" }, { "name": "cookie", "value": "wmf-last-access=11-jun-2019; wmf-last-access-global=11-jun-2019; mwphp7seed=5c9; geoip=us:ny:
port_jervis:41.38:-74.67:v4" }, { "name": "dnt", "value": "1" }, { "name": "host", "value": "en.wikipedia.org" }, { "name": "referer", "value": "https://www.wikipedia.org/" }, { "name": "te", "value": "trailers" }, { "name": "user-agent", "value": "mozilla/5.0 (wi...
UI Tour - Firefox Developer Tools
it shows icons for the browsers that do sup
port the properties, and notes properties that are experimental or deprecated.
...the "browser compatibility" section of the article gives details of browser sup
port for the property.
Flame Chart - Firefox Developer Tools
there are two main controls you can use to navigate the flame chart: zoom: increase/decrease the selected
portion of the complete profile that's displayed in the flame chart 1) mouse wheel up/down in the flame chart.
... pan: move the selected
portion of the complete profile left and right 1) click and drag the selected
portion in the recording overview pane.
UI Tour - Firefox Developer Tools
the performance tool's ui consists of 4 main pieces: toolbar recordings pane recording overview details pane, which may contain any one of: waterfall call tree flame chart toolbar the toolbar contains buttons to: start and stop a recording im
port a recording you previously saved clear the recordings pane.
... access the settings popup recordings pane the recordings pane lists all the recordings you have loaded, including any you have made in this session and any you have im
ported.
Debugging Firefox Desktop - Firefox Developer Tools
run the debuggee from the command line, passing it the --start-debugger-server option: /path/to/firefox --start-debugger-server passed with no arguments, --start-debugger-server makes the debugger server listen on
port 6000.
... to use a different
port, pass the desired
port number: /path/to/firefox --start-debugger-server 1234 note: in windows, the start-debugger-server call will only have one dash: firefox.exe -start-debugger-server 1234 note: by default, and for security reasons, the devtools.debugger.force-local option is set.
Tips - Firefox Developer Tools
view
port: click the screenshot button () in responsive design mode.
... click the im
port button () to im
port a style sheet or the create button () to create a new one.
Toolbox - Firefox Developer Tools
the array may include the following tools: web console javascript debugger page inspector style editor profiler network monitor note that not all the hosted tools are always listed here: only the tools actually available in this context are shown (for example, not all tools sup
port remote debugging yet, so if the debugging target is not the firefox instance that launched the window, not all the hosted tools will be shown).
... the following tools are not included in the toolbar by default, but you can add them in the settings: highlight painted area 3d view (note that this is not available in firefox 40) scratchpad grab a color from the page take a screenshot of the entire page: take a screenshot of the complete web page and saves it in your downloads directory toggle rulers for the page measure a
portion of the page: measure a part of the website by selecting areas within the page toolbox controls finally there's a row of buttons to: close the window toggle the window between attached to the bottom of the browser window, and attached to the side of the browser window toggle the window between standalone and attached to the browser window access developer tool settings settings see ...
Validators - Firefox Developer Tools
applications and services devedge web tune-up wizard this interface to w3c services guides beginning-to-intermediate web authors through the process of updating content to sup
port netscape 7.x, mozilla and other browsers that sup
port w3c standards.
... html tidy html tidy is a tool that can be used to re
port errors in an html page and to format web pages for better reading.
AbstractRange - Web APIs
second, in order to sup
port the mutability of the dom tree as much as possible, you need a way to represent positions relative to nodes in the tree, rather than simply global positions within the entire document.
... we then finish up by calling clonecontents() on the range to create a new documentfragment object which contains the
portion of the document encompassed by the range.
AnalyserNode.AnalyserNode() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetanalysernode() constructorchrome full sup
port 55edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port 42safari full sup
port 6webview android full su...
...p
port 55chrome android full sup
port 55firefox android full sup
port 53opera android full sup
port 42safari ios full sup
port 6samsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
port ...
AudioContext.baseLatency - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbaselatency experimentalchrome full sup
port 58edge full sup
port ≤79firefox full sup
port 70ie no sup
port noopera full sup
port 45safari no sup
port nowebview android full sup...
...
port 58chrome android full sup
port 58firefox android no sup
port noopera android full sup
port 43safari ios no sup
port nosamsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
AudioContext.createMediaStreamSource() - Web APIs
var pre = document.queryselector('pre'); var video = document.queryselector('video'); var myscript = document.queryselector('script'); var range = document.queryselector('input'); // getusermedia block - grab stream // put it into a mediastreamaudiosourcenode // also output the visuals into a video element if (navigator.mediadevices) { console.log('getusermedia sup
ported.'); navigator.mediadevices.getusermedia ({audio: true, video: true}) .then(function(stream) { video.srcobject = stream; video.onloadedmetadata = function(e) { video.play(); video.muted = true; }; // create a mediastreamaudiosourcenode // feed the htmlmediaelement into it var audioctx = new audiocontext(); v...
... biquadfilter.connect(audioctx.destination); // get new mouse pointer coordinates when mouse is moved // then set new gain value range.oninput = function() { biquadfilter.gain.value = range.value; } }) .catch(function(err) { console.log('the following gum error occured: ' + err); }); } else { console.log('getusermedia not sup
ported on your browser!'); } // dump script to pre element pre.innerhtml = myscript.innerhtml; note: as a consequence of calling createmediastreamsource(), audio playback from the media stream will be re-routed into the processing graph of the audiocontext.
AudioContext.getOutputTimestamp() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetoutputtimestamp experimentalchrome full sup
port 57edge full sup
port ≤79firefox full sup
port 70ie no sup
port noopera full sup
port 44safari no sup
port nowebview android full sup...
...
port 57chrome android full sup
port 57firefox android no sup
port noopera android full sup
port 43safari ios no sup
port nosamsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
AudioListener.dopplerFactor - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.forwardX - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.forwardY - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.forwardZ - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.positionX - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.positionY - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.positionZ - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.setOrientation() - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.setPosition() - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.speedOfSound - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.upX - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.upY - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioListener.upZ - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
AudioWorkletNode - Web APIs
audioworkletnode.
port read only returns a message
port used for bidirectional communication between the node and its associated audioworkletprocessor.
... the other end is available under the
port property of the processor.
AudioWorkletProcessor - Web APIs
properties
port read only returns a message
port used for bidirectional communication between the processor and the audioworkletnode which it belongs to.
... the other end is available under the
port property of the node.
AuthenticatorAttestationResponse - Web APIs
methods authenticatorattestationresponse.gettrans
ports()secure context returns an array of strings describing which trans
port methods (e.g.
... usb, nfc) are believed to be sup
ported with the authenticator.
AuthenticatorResponse.clientDataJSON - Web APIs
it has two properties: status: a string which is either "sup
ported" which indicates the client sup
port token binding but did not negotiate with the relying party or "present" when token binding was used already id: a domstring which is the base64url encoding of the token binding id which was used for the communication.
... should this property be absent, it would indicate that the client does not sup
port token binding.
BaseAudioContext.createConstantSource() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreateconstantsourcechrome full sup
port 56edge full sup
port ≤79firefox full sup
port 53ie no sup
port noopera full sup
port 43safari no sup
port nowebview android full sup...
...
port 56chrome android full sup
port 56firefox android full sup
port 53opera android full sup
port 43safari ios no sup
port nosamsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
port ...
BaseAudioContext.createPanner() - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
Using the Beacon API - Web APIs
e worker myworker.onmessage = function(event) { var msg = event.data; // log worker's send status console.log("worker reply: sendbeacon() status = " + msg); }; } this code snippet is for the worker (worker-using.js): onmessage = function(event) { var msg = event.data; // split the url and data from the message var url = msg[0]; var data = msg[1]; // if the browser sup
ports worker sendbeacon(), then send the beacon; otherwise // return failure message to the global context if (self.navigator.sendbeacon) { var status = self.navigator.sendbeacon(url, data); postmessage(status ?
... "success" : "fail"); } else { postmessage("worker: self.navigator.sendbeacon is unsup
ported"); } } see also beacon api (overview) beacon standard beacon caniuse data ...
Bluetooth.getAvailability() - Web APIs
examples the following snippet prints out a message in the console specifying wheter or not bluetooth is sup
ported: navigator.bluetooth.getavailability().then(available => { if (available) console.log("this device sup
ports bluetooth!"); else console.log("doh!
... bluetooth is not sup
ported"); }); specifications specification status comment web bluetooththe definition of 'getavailability()' in that specification.
CSSStyleDeclaration.getPropertyPriority() - Web APIs
"im
portant") if one exists.
... example the following javascript code checks whether margin is marked as im
portant in a css selector rule: var declaration = document.stylesheets[0].cssrules[0].style; var isim
portant = declaration.getpropertypriority('margin') === 'im
portant'; specifications specification status comment css object model (cssom)the definition of 'cssstyledeclaration.getpropertypriority()' in that specification.
CSSStyleRule.selectorText - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetselectortextchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 9opera full sup
port yessafari full sup
port 6webview android full suppo...
...rt 4.4chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port 1.0legend full sup
port full sup
port ...
Using the CSS Typed Object Model - Web APIs
in browsers that sup
port computedstylemap(), you'll see a list of all the css properties and values.
...appendchild(document.createtextnode( propval )); row.appendchild( cssvalue ); // and the type of unit const cssunit = document.createelement( 'td' ); cssunit.appendchild( document.createtextnode( allcomputedstyles.get( ofinterest[i] ).unit )); row.appendchild( cssunit ); //add the row to the table stylestable.appendchild( row ); } for those of you using a non-sup
porting browser, the above output should looks something like this: property value unit padding-top 0 px margin-bottom 16 px font-size 16 px font-stretch 100 percent animation-duration 0 s animation-iteration-count 1 number width auto undefined height auto undefin...
Cache - Web APIs
// all of the google web fonts are served off of a domain that sup
ports cors, so that isn't an issue here.
... // it is something to keep in mind if you're attempting to cache other resources from a cross-origin // domain that doesn't sup
port cors, though!
CanvasRenderingContext2D.getImageData() - Web APIs
the canvasrenderingcontext2d method getimagedata() of the canvas 2d api returns an imagedata object representing the underlying pixel data for a specified
portion of the canvas.
... example getting image data from a canvas this example draws a rectangle, and then uses getimagedata() to grab a
portion of the canvas.
Manipulating video using canvas - Web APIs
the javascript code is im
ported from a script named processor.js.
... the for loop that begins on line 6 scans through the frame's pixels, pulling out the red, green, and blue values for each pixel, and compares the values against predetermined numbers that are used to detect the green screen that will be replaced with the still background image im
ported from foo.png.
Basic animations - Web APIs
<canvas id="canvas" width="800" height="200"></canvas> mouse following animation <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="view
port" content="width=device-width, initial-scale=1.0"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>document</title> <script> var cn; //= document.getelementbyid('cw'); var c; var u = 10; const m = { x: innerwidth / 2, y: innerheight / 2 }; window.
... z-index: -1; } body { margin: 0; padding: 0; background-color: rgba(0,0,0,0.05); } </style> </head> <body> <canvas id="cw"></canvas> </body> </html> output snake game <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="view
port" content="width=device-width,initial-scale=1"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>nokia 1100:snake..member berries</title> </head> <body> <div class="keypress hide"> <div class="up" onclick="emit(38)">↑</div> <div class="right" onclick="emit(39)">→</div> <div class="left" onclick="emit(37)">←</div> <div class...
Drawing shapes with canvas - Web APIs
drawing rectangles unlike svg, <canvas> only sup
ports two primitive shapes: rectangles and paths (lists of points connected by lines).
...the most im
portant things to note are the use of the fillstyle property on the drawing context, and the use of a utility function (in this case roundedrect()).
Canvas tutorial - Web APIs
today, all major browsers sup
port it.
...the <canvas> element is not sup
ported in some older browsers, but is sup
ported in recent versions of all major browsers.
CloseEvent - Web APIs
note that the 1xxx codes are only websocket-internal and not for the same meaning by the trans
ported data (like when the application-layer protocol is invalid).
... 1003 unsup
ported data the connection is being terminated because the endpoint received data of a type it cannot accept (for example, a text-only endpoint received binary data).
DOMError - Web APIs
notsup
portederror the operation is not sup
ported invalidstateerror the object is in an invalid state.
... namespaceerror the operation is not allowed by namespaces in xml invalidaccesserror the object does not sup
port the operation or argument.
DOMException.code - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcodechrome full sup
port yesedge full sup
port 12firefox full sup
port 1ie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 4opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown ...
DOMException.message - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetmessagechrome full sup
port yesedge full sup
port 12firefox full sup
port 1ie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port 4opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown ...
DOMImplementation.createHTMLDocument() - Web APIs
heframe"); let doc = document.implementation.createhtmldocument("new document"); let p = doc.createelement("p"); p.innerhtml = "this is a new paragraph."; try { doc.body.appendchild(p); } catch(e) { console.log(e); } // copy the new html document into the frame let destdocument = frame.contentdocument; let srcnode = doc.documentelement; let newnode = destdocument.im
portnode(srcnode, true); destdocument.replacechild(newnode, destdocument.documentelement); } the code in lines 4–12 handle creating the new html document and inserting some content into it.
...the next two lines handle im
porting the contents of our new document into the new document's context.
DOMImplementation.hasFeature() - Web APIs
the domimplementation.hasfeature() method returns a boolean flag indicating if a given feature is sup
ported.
... the different implementations fairly diverged in what kind of features were re
ported.
DOMRectReadOnly.fromRect() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfromrect() static functionchrome full sup
port 57edge full sup
port 79firefox full sup
port 69ie no sup
port noopera full sup
port 44safari full sup
port 10.1webview android full su...
...p
port 57chrome android full sup
port 57firefox android no sup
port noopera android full sup
port 43safari ios full sup
port 10.3samsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port ...
DataTransferItem.webkitGetAsEntry() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetwebkitgetasentrychrome full sup
port 13edge full sup
port 14firefox full sup
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android no suppor...
...t nochrome android full sup
port yesfirefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
DedicatedWorkerGlobalScope - Web APIs
workerglobalscope.im
portscripts() im
ports one or more scripts into the worker's scope.
...for example: im
portscripts('foo.js', 'bar.js'); implemented from other places windowbase64.atob() decodes a string of data which has been encoded using base-64 encoding.
DeviceProximityEvent.max - Web APIs
the max property provides the maximum sensing distance the sensor is able to re
port, in centimeters.
... syntax var value = instanceofdeviceproximityevent.max; value a positive number indicating the maximum distance, in centimeters (cm), that the device's proximity sensor is able to detect and re
port.
DeviceProximityEvent.min - Web APIs
the min property provides the minimum distance the sensor can re
port, in centimeters.
... syntax var value = instanceofdeviceproximityevent.min; value a positive number indicating the minimum distance, in centimeters (cm), the device's proximity sensor can re
port.
DeviceProximityEvent - Web APIs
properties deviceproximityevent.max read only the maximum sensing distance the sensor is able to re
port, in centimeters.
... deviceproximityevent.min read only the minimum sensing distance the sensor is able to re
port, in centimeters.
DisplayMediaStreamConstraints.audio - Web APIs
if a boolean is specified, a value of true indicates that an audio track should be included in the stream returned by getdisplaymedia(), if an appropriate audio source exists and the user agent sup
ports audio on display media.
... if no audio source is available, or the user agent doesn't sup
port audio tracks with getdisplaymedia(), the returned mediastream has no audio track, but no error occurs.
Document.createEvent() - Web APIs
gecko sup
ports some non-standard event object aliases, which are listed below.
... event module standard event object gecko also sup
ports text event module textevent textevents keyboard event module keyboardevent keyevents basic events module event events specifications specification status comment domthe definition of 'document.createevent' in that specification.
Document.forms - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetformschrome full sup
port 1edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown ...
Document.fullscreen - Web APIs
the obsolete document interface's fullscreen read-only property re
ports whether or not the document is currently displaying content in full-screen mode.
... example this simple function re
ports whether or not full-screen mode is currently active, using the obsolete fullscreen property.
Document.getElementsByTagNameNS() - Web APIs
</div> </div> <p>some outer text</p> <p>some outer text</p> <button onclick="getallparaelems();"> show all p elements in document</button><br /> <button onclick="div1paraelems();"> show all p elements in div1 element</button><br /> <button onclick="div2paraelems();"> show all p elements in div2 element</button> </body> </html> potential workaround for other browsers which do not sup
port if the desired browser did not sup
port xpath, another approach (such as traversing the dom through all its children, identifying all @xmlns instances, etc.) would be necessary to find all tags with the desired local name and namespace, but xpath is much faster.
... (to accommodate explorer, one could call an xpath wrapper instead of the xpath in the function below (as explorer sup
ports xpath with a different api), such as this wrapper class.) function getelementsbytagnamenswrapper (ns, elname, doc, context) { if (!doc) { doc = document; } if (!context) { context = doc; } var result = doc.evaluate('//*[local-name()="'+elname+'" and namespace-uri() = "'+ns+'"]', context, null, xpathresult.ordered_node_snapshot_type, null); var a = []; for(var i = 0; i < result.snapshotlength; i++) { a[i] = result.snapshotitem(i); } return a; } specifications specification status comment domthe definition of 'document.getelementsbytagnamens' in that specification.
Document.implementation - Web APIs
syntax domimpobj = document.implementation; example var modname = "html"; var modver = "2.0"; var conformtest = document.implementation.hasfeature( modname, modver ); alert( "dom " + modname + " " + modver + " sup
ported?: " + conformtest ); // alerts with: "dom html 2.0 sup
ported?: true" if dom level 2 html module is sup
ported.
... notes the w3c's dom level 1 recommendation only specified the hasfeature method, which is one way to determine if a dom module is sup
ported by a browser (see example above and what does your user agent claim to sup
port?).
Document: keydown event - Web APIs
for example, a lowercase "a" will be re
ported as 65 by keydown and keyup, but as 97 by keypress.
... an uppercase "a" is re
ported as 65 by all events.
Document: keyup event - Web APIs
for example, a lowercase "a" will be re
ported as 65 by keydown and keyup, but as 97 by keypress.
... an uppercase "a" is re
ported as 65 by all events.
Document: pointercancel event - Web APIs
the pointercancel event is fired when the browser determines that there are unlikely to be any more pointer events, or if after the pointerdown event is fired, the pointer is then used to manipulate the view
port by panning, zooming, or scrolling.
...this can happen if, for example, the hardware sup
ports palm rejection to prevent a hand resting on the display while using a stylus from accidentally triggering events.
Document.queryCommandEnabled() - Web APIs
the document.querycommandenabled() method re
ports whether or not the specified editor command is enabled by the browser.
... syntax isenabled = document.querycommandenabled(command); parameters command the command for which to determine sup
port.
Document.width - Web APIs
note: starting in gecko 6.0, document.width is no longer sup
ported.
... not sup
ported by internet explorer.
DocumentFragment.querySelector() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetqueryselectorchrome full sup
port 1edge full sup
port 12firefox full sup
port 3.5ie full sup
port 9opera full sup
port 10safari full sup
port 3.2webview android full su...
...p
port yeschrome android full sup
port yesfirefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 3.2samsung internet android full sup
port yeslegend full sup
port full sup
port see also the documentfragment interface it belongs to.
DocumentOrShadowRoot.activeElement - Web APIs
donec tincidunt, lorem a
porttitor molestie, odio nibh iaculis libero, et accumsan nunc orci eu dui.</textarea> <textarea name="ta-example-two" id="ta-example-two" rows="7" cols="40">this is text area two.
... fusce ullamcorper, nisl ac
porttitor adipiscing, urna orci egestas libero, ut accumsan orci lacus laoreet diam.
DocumentOrShadowRoot.elementsFromPoint() - Web APIs
the elementsfrompoint() method of the documentorshadowroot interface returns an array of all elements at the specified coordinates (relative to the view
port).
... let output = document.getelementbyid("output"); if (document.elementsfrompoint) { let elements = document.elementsfrompoint(30, 20); for (var i = 0; i < elements.length; i++) { output.textcontent += elements[i].localname; if (i < elements.length - 1) { output.textcontent += " < "; } } } else { output.innerhtml = "<span style=\"color: red;\">" + "browser does not sup
port <code>document.elementsfrompoint()</code>" + "</span>"; } specifications specification status shadow domthe definition of 'elementsfrompoint()' in that specification.
DocumentOrShadowRoot.getSelection() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetselection experimentalchrome full sup
port 53edge full sup
port 12firefox full sup
port 63ie full sup
port yesopera full sup
port 40safari full sup
port yeswebview android full ...
...sup
port 53chrome android full sup
port 53firefox android full sup
port 63opera android full sup
port 41safari ios full sup
port yessamsung internet android full sup
port 6.0legend full sup
port full sup
portexperimental.
DocumentOrShadowRoot.nodeFromPoint() - Web APIs
the nodefrompoint() property of the documentorshadowroot interface returns the topmost node at the specified coordinates (relative to the view
port).
... examples html content <div> <p>some text</p> </div> <p>top node at point 30, 20:</p> <div id="output"></div> javascript content var output = document.getelementbyid("output"); if (document.nodefrompoint) { var node = document.nodefrompoint(30, 20); output.textcontent += node.localname; } else { output.innerhtml = "<span style=\"color: red;\">" + "browser does not sup
port <code>document.nodefrompoint()</code>" + "</span>"; } specifications not part of any specification at present.
DocumentOrShadowRoot.nodesFromPoint() - Web APIs
the nodesfrompoint() property of the documentorshadowroot interface returns an array of all nodes at the specified coordinates (relative to the view
port).
...javascript content var output = document.getelementbyid("output"); if (document.nodesfrompoint) { var nodes = document.nodesfrompoint(30, 20); for(var i = 0; i < nodes.length; i++) { output.textcontent += nodes[i].localname; if (i < nodes.length - 1) { output.textcontent += " < "; } } } else { output.innerhtml = "<span style=\"color: red;\">" + "browser does not sup
port <code>document.nodesfrompoint()</code>" + "</span>"; } specifications not part of any specification at present.
Element: keydown event - Web APIs
for example, a lowercase "a" will be re
ported as 65 by keydown and keyup, but as 97 by keypress.
... an uppercase "a" is re
ported as 65 by all events.
Element: keyup event - Web APIs
for example, a lowercase "a" will be re
ported as 65 by keydown and keyup, but as 97 by keypress.
... an uppercase "a" is re
ported as 65 by all events.
Element.scrollHeight - Web APIs
the scrollheight value is equal to the minimum height the element would require in order to fit all the content in the view
port without using a vertical scrollbar.
...in nisi nibh, dapibus ac blandit at,
porta at arcu.
Element.setCapture() - Web APIs
warning: this interface never had much cross-browser sup
port and you probably looking for element.setpointercapture instead, from the pointer events api.
...x; } </style> <script type="text/javascript"> function init() { var btn = document.getelementbyid("mybutton"); if (btn.setcapture) { btn.addeventlistener("mousedown", mousedown, false); btn.addeventlistener("mouseup", mouseup, false); } else { document.getelementbyid("output").innerhtml = "sorry, there appears to be no setcapture sup
port on this browser"; } } function mousedown(e) { e.target.setcapture(); e.target.addeventlistener("mousemove", mousemoved, false); } function mouseup(e) { e.target.removeeventlistener("mousemove", mousemoved, false); } function mousemoved(e) { var output = document.getelementbyid("output"); output.innerhtml = "position: " + e.clientx + "...
Element.slot - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetslotchrome full sup
port 53edge full sup
port ≤79firefox full sup
port 63ie ?
... opera full sup
port yessafari full sup
port 10webview android full sup
port 53chrome android full sup
port 53firefox android full sup
port 63opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port 6.0legend full sup
port full sup
port compatibility unknown co...
ExtendableEvent - Web APIs
es.open(current_caches['prefetch']).then(function(cache) { return cache.addall(urlstoprefetch.map(function(urltoprefetch) { return new request(urltoprefetch, {mode: 'no-cors'}); })).then(function() { console.log('all resources have been fetched and cached.'); }); }).catch(function(error) { console.error('pre-fetching failed:', error); }) ); }); im
portant: when fetching resources, it's very im
portant to use {mode: 'no-cors'} if there is any chance that the resources are served off of a server that doesn't sup
port cors.
... in this example, www.chromium.org doesn't sup
port cors.
ExtendableMessageEvent.source - Web APIs
syntax var mysource = extendablemessageevent.source; value a client, serviceworker or message
port object.
... var
port; self.addeventlistener('push', function(e) { var obj = e.data.json(); if(obj.action === 'subscribe' || obj.action === 'unsubscribe') {
port.postmessage(obj); } else if(obj.action === 'init' || obj.action === 'chatmsg') {
port.postmessage(obj); } }); self.onmessage = function(e) { console.log(e.source);
port = e.
ports[0]; } specifications specification status comment service workersthe definition of 'extendablemessageevent.source' in that specification.
FeaturePolicy - Web APIs
featurepolicy.features returns a list of names of all features sup
ported by the user agent.
... featurepolicy.allowedfeatures returns a list of names of all features sup
ported by the user agent and allowed by the feature policy.
FetchEvent.respondWith() - Web APIs
this means, for example, if a service worker intercepts a stylesheet or worker script, then the provided response.url will be used to resolve any relative @im
port or im
portscripts() subresource loads (bug 1222008).
... if a stylesheet is intercepted, then the final url is used as the base url for resolving relative @im
port loads.
Using Fetch - Web APIs
feature detection fetch api sup
port can be detected by checking for the existence of headers, request, response or fetch() on the window or worker scope.
...} polyfill to use fetch in unsup
ported browsers, there is a fetch polyfill available that recreates the functionality for non-sup
porting browsers.
FileReaderSync.readAsArrayBuffer() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadasarraybufferchrome full sup
port yesedge full sup
port 12firefox full sup
port 8ie full sup
port yesopera full sup
port yessafari full sup
port yeswebview android full...
... sup
port yeschrome android full sup
port yesfirefox android full sup
port 8opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port ...
FileReaderSync.readAsBinaryString() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadasbinarystringchrome full sup
port yesedge full sup
port 12firefox full sup
port 8ie full sup
port yesopera full sup
port yessafari full sup
port yeswebview android full...
... sup
port yeschrome android full sup
port yesfirefox android full sup
port 8opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port ...
FileReaderSync.readAsDataURL() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadasdataurlchrome full sup
port yesedge full sup
port 12firefox full sup
port 8ie full sup
port yesopera full sup
port yessafari full sup
port yeswebview android full...
... sup
port yeschrome android full sup
port yesfirefox android full sup
port 8opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port ...
FileReaderSync.readAsText() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadastextchrome full sup
port yesedge full sup
port 12firefox full sup
port 8ie full sup
port yesopera full sup
port yessafari full sup
port yeswebview android full...
... sup
port yeschrome android full sup
port yesfirefox android full sup
port 8opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port ...
FileSystem.name - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnamechrome full sup
port 7edge full sup
port ≤18firefox full sup
port 50ie no sup
port noopera full sup
port 15safari full sup
port 11.1webview android full ...
...sup
port ≤37chrome android full sup
port 18firefox android full sup
port 50opera android full sup
port 14safari ios full sup
port 11.3samsung internet android full sup
port 1.0legend full sup
port full sup
port no sup
port no sup
port ...
FileSystem.root - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetrootchrome full sup
port 7edge full sup
port ≤18firefox full sup
port 50ie no sup
port noopera full sup
port 15safari full sup
port 11.1webview android full ...
...sup
port ≤37chrome android full sup
port 18firefox android full sup
port 50opera android full sup
port 14safari ios full sup
port 11.3samsung internet android full sup
port 1.0legend full sup
port full sup
port no sup
port no sup
port ...
FileSystemDirectoryEntry.createReader() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcreatereader experimentalchrome full sup
port 13edge full sup
port 79firefox full sup
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full supp...
...ort ≤37chrome android full sup
port 18firefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
FileSystemEntry.filesystem - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilesystem experimentalchrome full sup
port 8edge full sup
port 79firefox full sup
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
FileSystemEntry.fullPath - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfullpath experimentalchrome full sup
port 8edge full sup
port 79firefox full sup
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
FileSystemEntry.getParent() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetparent experimentalchrome full sup
port 8edge full sup
port 79firefox no sup
port noie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full sup
port...
... ≤37chrome android full sup
port 18firefox android no sup
port noopera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
FileSystemEntry.name - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetname experimentalchrome full sup
port 8edge full sup
port 79firefox full sup
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
portexperimental.
FileSystemFileEntry.file() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfilechrome full sup
port 8edge full sup
port 79firefox full sup
port 50ie no sup
port noopera no sup
port nosafari full sup
port 11.1webview android full suppo...
...rt ≤37chrome android full sup
port 18firefox android full sup
port 50opera android no sup
port nosafari ios full sup
port 11.3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
FontFace.display - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdisplay experimentalchrome full sup
port 60edge full sup
port 79firefox full sup
port 58ie ?
... opera full sup
port 47safari full sup
port 11webview android full sup
port 60chrome android full sup
port 60firefox android no sup
port noopera android full sup
port 44safari ios no sup
port nosamsung internet android full sup
port 8.0legend full sup
port full sup
port no sup
port no sup
port ...
Using FormData Objects - Web APIs
the file interface is based on blob, inheriting blob functionality and expanding it to sup
port files on the user's system.
...when no filename is specified (or the parameter isn't sup
ported), the name "blob" is used.
FormData.append() - Web APIs
filename optional the filename re
ported to the server (a usvstring), when a blob or file is passed as the second parameter.
... note: if you specify a blob as the data to append to the formdata object, the filename that will be re
ported to the server in the "content-disposition" header used to vary from browser to browser.
FormData.set() - Web APIs
filename optional the filename re
ported to the server (a usvstring), when a blob or file is passed as the second parameter.
... note: if you specify a blob as the data to append to the formdata object, the filename that will be re
ported to the server in the "content-disposition" header used to vary from browser to browser.
GlobalEventHandlers.onanimationcancel - Web APIs
in browsers that sup
port animationcancel, the event is fired and this handler is called.
... result assembled together, you get this: if your browser sup
ports animationcancel, hiding the box using the button will cause a message to be displayed about the event.
HTMLBaseFontElement - Web APIs
the document text in the default style is rendered in the first font face that the client's browser sup
ports.
... if no font listed is installed on the local system, the browser typically defaults to the pro
portional or fixed-width font for that system.
HTMLCanvasElement.toDataURL() - Web APIs
if the requested type is not image/png, but the returned value starts with data:image/png, then the requested type is not sup
ported.
... chrome also sup
ports the image/webp type.
HTMLCanvasElement - Web APIs
this is only sup
ported in mozilla-based browsers; use the standardized canvas.getcontext('2d', { alpha: false }) instead.
... htmlcanvaselement.getcontext() returns a drawing context on the canvas, or null if the context id is not sup
ported.
HTMLElement.offsetParent - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetoffsetparentchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 8opera full sup
port 8safari full sup
port 3webview android full sup
port...
... 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
HTMLElement.offsetTop - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetoffsettopchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 8opera full sup
port 8safari full sup
port 3webview android full sup
port...
... 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port in compliance with the specification, this property will return null on webkit if the element is hidden (the style.display of this element or any ancestor is "none") or if the style.position of the element itself is set to "fixed".
HTMLElement: pointercancel event - Web APIs
the pointercancel event is fired when the browser determines that there are unlikely to be any more pointer events, or if after the pointerdown event is fired, the pointer is then used to manipulate the view
port by panning, zooming, or scrolling.
...this can happen if, for example, the hardware sup
ports palm rejection to prevent a hand resting on the display while using a stylus from accidentally triggering events.
HTMLHyperlinkElementUtils.host - Web APIs
the htmlhyperlinkelementutils.host property is a usvstring containing the host, that is the hostname, and then, if the
port of the url is nonempty, a ':', and the
port of the url.
... syntax string = object.host; object.host = string; examples var anchor = document.createelement("a"); anchor.href = "https://developer.mozilla.org/htmlhyperlinkelementutils.host" anchor.host == "developer.mozilla.org" anchor.href = "https://developer.mozilla.org:443/htmlhyperlinkelementutils.host" anchor.host == "developer.mozilla.org" // the
port number is not included because 443 is the scheme's default
port anchor.href = "https://developer.mozilla.org:4097/htmlhyperlinkelementutils.host" anchor.host == "developer.mozilla.org:4097" specifications specification status comment html living standardthe definition of 'htmlhyperlinkelementutils.host' in that specification.
HTMLIFrameElement.referrerPolicy - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreferrerpolicychrome full sup
port 51edge full sup
port 79firefox full sup
port 50ie no sup
port noopera full sup
port 38safari full sup
port 11.1webview android full su...
...p
port 51chrome android full sup
port 51firefox android full sup
port 50opera android full sup
port 41safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
port ...
HTMLIFrameElement.src - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsrcchrome full sup
port 43edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port 6webview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown ...
HTMLImageElement.useMap - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetusemapchrome full sup
port 1edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown ...
HTMLImageElement - Web APIs
this string specifies a list of comma-separated conditional sizes for the image; that is, for a given view
port size, a particular image size is to be used.
... the specified image is in a format not sup
ported by the user agent.
HTMLInputElement.stepDown() - Web APIs
valid on all numeric, date, and time input types that sup
port the step attribute, includingdate, month, week, time, datetime-local, number, and range.
... if the form control is non time, date, or numeric in nature, and therefore does not sup
port the step attribute (see the list of sup
ported input types in the the table above), or if the step value is set to any, an invalidstateerror exception is thrown.
HTMLLinkElement.as - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetas experimentalchrome full sup
port 50edge full sup
port 17firefox full sup
port 56ie full sup
port yesopera full sup
port 37safari full sup
port yeswebview android full ...
...sup
port 50chrome android full sup
port 50firefox android full sup
port 56opera android full sup
port 37safari ios full sup
port yessamsung internet android full sup
port 5.0legend full sup
port full sup
portexperimental.
HTMLMediaElement.play() - Web APIs
notsup
portederror the media source (which may be specified as a mediastream, mediasource, blob, or file, for example) doesn't represent a sup
ported media format.
... other exceptions may be re
ported, depending on browser implementation details, media player implementation, and so forth.
HTMLObjectElement.setCustomValidity - Web APIs
additionally you must call the re
portvalidity method on the same element or nothing will happen.
... function validate(inputid) { var input = document.getelementbyid(inputid); var validitystate_object = input.validity; if (validitystate_object.valuemissing) { input.setcustomvalidity('you gotta fill this out, yo!'); input.re
portvalidity(); } else if (input.rangeunderflow) { input.setcustomvalidity('we need a higher number!'); input.re
portvalidity(); } else if (input.rangeoverflow) { input.setcustomvalidity('thats too high!'); input.re
portvalidity(); } else { input.setcustomvalidity(''); input.re
portvalidity(); } } it's vital to set the message to an empty string if there are no errors.
HTMLSelectElement - Web APIs
htmlselectelement.re
portvalidity() this method re
ports the problems with the constraints on the element, if any, to the user.
... living standard since the latest snapshot, html5, it adds the autocomplete property and the re
portvalidity() method.
HTMLTableRowElement - Web APIs
this property was optional and was not very well sup
ported.
...this property was optional and was not very well sup
ported.
HTMLVideoElement - Web APIs
the list of sup
ported media formats varies from one browser to the other.
... you should either provide your video in a single format that all the relevant browsers sup
ports, or provide multiple video sources in enough different formats that all the browsers you need to sup
port are covered.
File drag and drop - Web APIs
note: html drag and drop defines two different apis to sup
port dragging and dropping files.
...in the following drop handler, if the browser sup
ports datatransferitemlist interface, the getasfile() method is used to access each file; otherwise the datatransfer interface's files property is used to access each file.
History.back() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbackchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie full sup
port 10opera full sup
port yessafari full sup
port yeswebview android ful...
...l sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port ...
History.forward() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetforwardchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie full sup
port 10opera full sup
port yessafari full sup
port yeswebview android ful...
...l sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port ...
History.scrollRestoration - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollrestorationchrome full sup
port 46edge full sup
port 79firefox full sup
port 46ie no sup
port noopera full sup
port 33safari full sup
port yeswebview android no suppo...
...rt nochrome android full sup
port 46firefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
port ...
IDBDatabase.onclose - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonclosechrome full sup
port 31notes full sup
port 31notes notes approxedge full sup
port ≤18firefox full sup
port 50ie ?
... opera full sup
port yessafari full sup
port 10.1webview android full sup
port yeschrome android full sup
port 31firefox android full sup
port 50opera android full sup
port yessafari ios full sup
port 10.3samsung internet android full sup
port 2.0legend full sup
port full sup
port compatibility unknown ...
databases - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdatabases experimentalchrome full sup
port 71edge full sup
port 79firefox no sup
port nonotes no sup
port nonotes notes see bug 934640.ie no sup
port noopera full sup
port 58safari ...
... no sup
port nowebview android full sup
port 71chrome android full sup
port 71firefox android no sup
port nonotes no sup
port nonotes notes see bug 934640.opera android full sup
port yessafari ios no sup
port nosamsung internet android full sup
port 10.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
IDBObjectStore.getKey() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetkeychrome full sup
port 48edge full sup
port ≤79firefox full sup
port 51ie ?
... opera full sup
port 45safari full sup
port 10.1webview android full sup
port 48chrome android full sup
port 48firefox android full sup
port 58opera android full sup
port 43safari ios full sup
port 10.3samsung internet android full sup
port 5.0legend full sup
port full sup
port compatibility unknown c...
IDBTransaction.objectStoreNames - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetobjectstorenameschrome full sup
port 48edge full sup
port ≤79firefox full sup
port yesie ?
... opera full sup
port 35safari full sup
port yeswebview android full sup
port 48chrome android full sup
port 48firefox android full sup
port yesopera android full sup
port 35safari ios full sup
port yessamsung internet android full sup
port 5.0legend full sup
port full sup
port compatibility unknown co...
ImageCapture.getPhotoSettings() - Web APIs
the user agent selects the closest width value to this setting if it only sup
ports discrete heights.
...the user agent selects the closest width value to this setting if it only sup
ports discrete widths.
IndexedDB API - Web APIs
this is the main landing page for mdn's indexeddb coverage — here we provide links to the full api reference and usage guides, browser sup
port details, and some explanation of key concepts.
...indexeddb lets you store and retrieve objects that are indexed with a key; any objects sup
ported by the structured clone algorithm can be stored.
InputEvent.getTargetRanges() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgettargetranges experimentalchrome full sup
port 60edge full sup
port 79firefox no sup
port noie no sup
port noopera full sup
port 47safari full sup
port 10.1webview android full supp...
...ort 60chrome android full sup
port 60firefox android no sup
port noopera android full sup
port 44safari ios full sup
port 10.3samsung internet android full sup
port 8.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
IntersectionObserver.IntersectionObserver() - Web APIs
if options isn't specified, the observer uses the document's view
port as the root, with no margin, and a 0% threshold (meaning that even a one-pixel change is enough to trigger a callback).
... you can provide any combination of the following options: root an element or document object which is an ancestor of the intended target, whose bounding rectangle will be considered the view
port.
LayoutShift - Web APIs
properties layoutshift.value returns the impact fraction (fraction of the view
port that was shifted) times the distance fraction (distance moved as a fraction of view
port).
... observer.takerecords(); observer.disconnect(); console.log('cls:', cumulativelayoutshiftscore); } }); } catch (e) { // do nothing if the browser doesn't sup
port this api.
Location: host - Web APIs
the host property of the location interface is a usvstring containing the host, that is the hostname, and then, if the
port of the url is nonempty, a ':', and the
port of the url.
... syntax string = object.host; object.host = string; examples var anchor = document.createelement("a"); anchor.href = "https://developer.mozilla.org/location.host" anchor.host == "developer.mozilla.org" anchor.href = "https://developer.mozilla.org:443/location.host" anchor.host == "developer.mozilla.org" // the
port number is not included because 443 is the scheme's default
port anchor.href = "https://developer.mozilla.org:4097/location.host" anchor.host == "developer.mozilla.org:4097" specifications specification status comment html living standardthe definition of 'host' in that specification.
Long Tasks API - Web APIs
usage var observer = new performanceobserver(function(list) { var perfentries = list.getentries(); for (var i = 0; i < perfentries.length; i++) { // process long task notifications: // re
port back for analytics and monitoring // ...
... interfaces performancelongtasktiming re
ports instances of long tasks.
MIDIInput - Web APIs
use the midiinput interface of the web midi api to access and pass messages to a midi input
port.
... event handlers midiinput.onmidimessage when the current
port receives a midimessage it triggers a call to this event handler.
MSCandidateWindowHide - Web APIs
general info synchronous no bubbles no cancelable no note windows 8.1 and windows 7 imes for certain languages on internet explorer for the desktop might not sup
port this event.
... on internet explorer in the new windows ui, this event is sup
ported in windows 8.1 imes of all languages.
MSCandidateWindowShow - Web APIs
general info synchronous no bubbles no cancelable no note windows 8.1 and windows 7 imes for certain languages on internet explorer for the desktop might not sup
port this event.
... on internet explorer in the new windows ui, this event is sup
ported in windows 8.1 imes of all languages.
MSCandidateWindowUpdate - Web APIs
general info synchronous no bubbles no cancelable no note windows 8.1 and windows 7 imes for certain languages on internet explorer for the desktop might not sup
port this event.
... on internet explorer in the new windows ui, this event is sup
ported in windows 8.1 imes of all languages.
MSSiteModeEvent - Web APIs
*this property is not sup
ported for windows store apps using javascript.
...*this property is not sup
ported for windows store apps using javascript.
MediaCapabilities - Web APIs
methods mediacapabilities.encodinginfo() when passed a valid media configuration, it returns a promise with information as to whether the media type is sup
ported, and whether encoding such media would be smooth and power efficient.
... mediacapabilities.decodinginfo() when passed a valid media configuration, it returns a promise with information as to whether the media type is sup
ported, and whether decoding such media would be smooth and power efficient.
MediaQueryList.matches - Web APIs
examples this example detects view
port orientation changes by creating a media query using the orientation media feature: function addmqlistener(mq, callback) { if (mq.addeventlistener) { mq.addeventlistener("change", callback); } else { mq.addlistener(callback); } } addmqlistener(window.matchmedia("(orientation:landscape)"), event => { if (event.matches) { /* now in landscape orientation */ } else { ...
... /* now in
portrait orientation */ } } ); specifications specification status comment css object model (cssom) view modulethe definition of 'matches' in that specification.
MediaQueryList.onchange - Web APIs
the onchange property of the mediaquerylist interface is an event handler property representing a function that is invoked when the change event fires, i.e when the status of media query sup
port changes.
...}; example var mql = window.matchmedia('(max-width: 600px)'); mql.addeventlistener( "change", (e) => { if (e.matches) { /* the view
port is 600 pixels wide or less */ console.log('this is a narrow screen — less than 600px wide.') } else { /* the view
port is more than than 600 pixels wide */ console.log('this is a wide screen — more than 600px wide.') } }) specifications specification status comment css object model (cssom) view modulethe definition of 'onchange' in that specification.
MediaRecorder() - Web APIs
applications can check in advance if a mimetype is sup
ported by the user agent by calling mediarecorder.istypesup
ported().
... exceptions notsup
portederror the specified mime type is not sup
ported by the user agent.
MediaRecorder.start() - Web APIs
all other errors are re
ported through error events sent to the mediarecorder object.
... notsup
portederror the media stream you're attempting to record is inactive, or one or more of the stream's tracks is in a format that can't be recorded using the current configuration.
MediaSession.setActionHandler() - Web APIs
implement sup
port for each of these in order to allow that type of action to be performed.
... audio.currenttime = math.max(audio.currenttime - skiptime, 0); }); sup
porting multiple actions in one handler function you can also, if you prefer, use a single function to handle multiple action types, by checking the value of the mediasessionactiondetails object's action property: let skiptime = 7; navigator.mediasession.setactionhandler("seekforward", handleseek); navigator.mediasession.setactionhandler("seekbackward", handleseek); function handleseek(details) { ...
MediaSession.setPositionState() - Web APIs
this can be particularly useful if your code implements a player for type of media not directly sup
ported by the browser.
...if the media is still playing when the interval is fired, setpositionstate() is called with an object that specifies the duration, playback rate, and position as re
ported by a mymedia object that describes the track being played.
MediaSessionActionDetails - Web APIs
implement sup
port for each of these in order to allow that type of action to be performed.
... audio.currenttime = math.max(audio.currenttime - skiptime, 0); }); sup
porting multiple actions in one handler function you can also, if you prefer, use a single function to handle multiple action types, by checking the value of the mediasessionactiondetails object's action property: let skiptime = 7; navigator.mediasession.setactionhandler("seekforward", handleseek); navigator.mediasession.setactionhandler("seekbackward", handleseek); function handleseek(details) { ...
MediaSource - Web APIs
static methods mediasource.istypesup
ported() returns a boolean value indicating if the given mime type is sup
ported by the current user agent — this is, if it can successfully create sourcebuffer objects for that mime type.
...ten by nick desaulniers and can be viewed live here (you can also download the source for further investigation.) var video = document.queryselector('video'); var asseturl = 'frag_bunny.mp4'; // need to be specific for blink regarding codecs // ./mp4info frag_bunny.mp4 | grep codec var mimecodec = 'video/mp4; codecs="avc1.42e01e, mp4a.40.2"'; if ('mediasource' in window && mediasource.istypesup
ported(mimecodec)) { var mediasource = new mediasource(); //console.log(mediasource.readystate); // closed video.src = url.createobjecturl(mediasource); mediasource.addeventlistener('sourceopen', sourceopen); } else { console.error('unsup
ported mime type or codec: ', mimecodec); } function sourceopen (_) { //console.log(this.readystate); // open var mediasource = this; var sourcebuffe...
MediaStream.getTracks() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgettracks experimentalchrome full sup
port 45edge full sup
port 12firefox full sup
port yesie no sup
port noopera full sup
port yessafari full sup
port yeswebview android full s...
...up
port 45chrome android full sup
port 45firefox android full sup
port yesopera android no sup
port nosafari ios full sup
port yessamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
MediaStreamTrackAudioSourceNode() - Web APIs
exceptions notsup
portederror the specified context is not an audiocontext.
... video: false }).then(function(stream) { let options = { mediastreamtrack: stream.getaudiotracks()[0]; } let source = new mediastreamtrackaudiosourcenode(audioctx, options); source.connect(audioctx.destination); }).catch(function(err) { console.log('the following gum error occured: ' + err); }); } else { console.log('new getusermedia not sup
ported on your browser!'); } specifications specification status comment web audio apithe definition of 'mediastreamtrackaudiosourcenode()' in that specification.
MediaStreamTrackAudioSourceNode - Web APIs
var pre = document.queryselector('pre'); var video = document.queryselector('video'); var myscript = document.queryselector('script'); var range = document.queryselector('input'); // getusermedia block - grab stream // put it into a mediastreamaudiosourcenode // also output the visuals into a video element if (navigator.mediadevices) { console.log('getusermedia sup
ported.'); navigator.mediadevices.getusermedia ({audio: true, video: true}) .then(function(stream) { video.srcobject = stream; video.onloadedmetadata = function(e) { video.play(); video.muted = true; }; // create a mediastreamaudiosourcenode // feed the htmlmediaelement into it var audioctx = new audiocontext(); v...
... biquadfilter.connect(audioctx.destination); // get new mouse pointer coordinates when mouse is moved // then set new gain value range.oninput = function() { biquadfilter.gain.value = range.value; } }) .catch(function(err) { console.log('the following gum error occured: ' + err); }); } else { console.log('getusermedia not sup
ported on your browser!'); } // dump script to pre element pre.innerhtml = myscript.innerhtml; note: as a consequence of calling createmediastreamsource(), audio playback from the media stream will be re-routed into the processing graph of the audiocontext.
MediaStream Image Capture API - Web APIs
let zoom = document.queryselector('#zoom'); const capabilities = track.getcapabilities(); // check whether zoom is sup
ported or not.
...though a mediastream holds several types of tracks and provides multiple methods for retrieving them, the imagecapture constructor will throw a domexception of type notsup
portederror if mediastreamtrack.kind is not "video".
MediaStream Recording API - Web APIs
if you need or want to check to see if a specific mime type is sup
ported, that's possible as well.
... just call mediarecorder.istypesup
ported().
MediaTrackConstraints.cursor - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.cursor as returned by a call to mediadevices.getsup
portedconstraints().
... let displaymediaoptions = { cursor: "always" }; example: cursor visible during motion with fallback in this example, the cursor property is configured to request that the cursor be visible when in motion, falling back to always being visible if the user agent doesn't sup
port in-motion only cursor rendering.
MediaTrackControls.volume - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.volume as returned by a call to mediadevices.getsup
portedconstraints().
... syntax var constraintsobject = { volume: constraint }; constraintsobject.volume = constraint; value a constraindouble describing the acceptable or required value(s) for an audio track's volume, on a linear scale where 0.0 means silence and 1.0 is the highest sup
ported volume.
MediaTrackSettings.logicalSurface - Web APIs
a visible display surface (that is, a surface for which logicalsurface returns false) is the
portion of a logical display surface which is currently visible onscreen.
... for example, a user agent may choose to allow the user to choose whether to share the entire document (a browser with logicalsurface value of true), or just the currently visible
portion of the document (where the logicalsurface of the browser surface is false).
MediaTrackSettings.volume - Web APIs
the mediatracksettings dictionary's volume property is a double-precision floating-point number indicating the volume of the mediastreamtrack as currently configured, as a value from 0.0 (silence) to 1.0 (maximum sup
ported volume for the device).
... if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.volume as returned by a call to mediadevices.getsup
portedconstraints().
MessageEvent.MessageEvent() - Web APIs
source: an messageeventsource (which can be a windowproxy, message
port, or serviceworker object) representing the message emitter.
...
ports: an array of message
port objects representing the
ports associated with the channel the message is being sent through (where appropriate, e.g.
MessageEvent.source - Web APIs
the source read-only property of the messageevent interface is a messageeventsource (which can be a windowproxy, message
port, or serviceworker object) representing the message emitter.
... syntax let mysource = messageevent.source; value a messageeventsource (which can be a windowproxy, message
port, or serviceworker object) representing the message emitter.
Microdata DOM API - Web APIs
the object's sup
ported property indices are as defined for htmlcollection objects.
... the sup
ported property names consist of the property names of all the elements represented by the collection, in tree order, ignoring later duplicates.
MimeTypeArray - Web APIs
the mimetypearray interface returns an array of mimetype instances, each of which contains information about a sup
ported browser plugins.
... var mimetypes = navigator.mimetype; var flashplugin = mimetypes['video/x-flv']; if (typeof flashplugin === "undefined") { var vid = document.createelement('video'); // use vid.canplaytype() to test for a sup
ported mime type.
MouseEvent.pageX - Web APIs
this includes any
portion of the document not currently visible.
... syntax var pagex = mouseevent.pagex; value a floating-point number of pixels from the left edge of the document at which the mouse was clicked, regardless of any scrolling or view
port positioning that may be in effect.
MutationObserver.observe() - Web APIs
options a mutationobserverinit object providing options that describe which dom mutations should be re
ported to mutationobserver’s callback.
...if you begin watching a subtree of nodes, and a
portion of that subtree is detached and moved elsewhere in the dom, you continue to watch the detached segment of nodes, receiving the same callbacks as before the nodes were detached from the original subtree.
MutationObserverInit.attributeOldValue - Web APIs
syntax var options = { attributeoldvalue: true | false } value a boolean value indicating whether or not the prior value of a changed attribute should be included in the mutationobserver.oldvalue property when re
porting attribute value changes.
... when observe() is called, the specified options are attributes and attributeoldvalue, which means that changes to attribute values will be re
ported, and each mutation record will include the oldvalue property specifying the attribute's previous value.
MutationObserverInit.attributes - Web APIs
syntax var options = { attributes: true | false } value a boolean value indicating whether or not to re
port through the callback any changes to the values of attributes on the node or nodes being monitored.
... when observe() is called, the specified options are attributes and attributeoldvalue, which means that changes to attribute values will be re
ported, and each mutation record will include the oldvalue property specifying the attribute's previous value.
Navigator.maxTouchPoints - Web APIs
the maxtouchpoints read-only property of the navigator interface returns the maximum number of simultaneous touch contact points are sup
ported by the current device.
... syntax touchpoints = navigator.maxtouchpoints; example if (navigator.maxtouchpoints > 1) { // browser sup
ports multi-touch } specifications specification status comment pointer events – level 2the definition of 'maxtouchpoints' in that specification.
Navigator.mediaCapabilities - Web APIs
examples navigator.mediacapabilities.decodinginfo({ type : 'file', audio : { contenttype : "audio/mp3", channels : 2, bitrate : 132700, samplerate : 5200 } }).then(function(result) { console.log('this configuration is ' + (result.sup
ported ?
... '' : 'not ') + 'sup
ported, ' + (result.smooth ?
Navigator.serviceWorker - Web APIs
syntax var workercontainerinstance = navigator.serviceworker; value serviceworkercontainer examples this code checks if the browser sup
ports service workers.
... if ('serviceworker' in navigator) { // sup
ported!
Navigator.share() - Web APIs
the data object passed to canshare() only sup
ports the files property.
... if (navigator.canshare && navigator.canshare({ files: filesarray })) { navigator.share({ files: filesarray, title: 'pictures', text: 'our pictures.', }) .then(() => console.log('share was successful.')) .catch((error) => console.log('sharing failed', error)); } else { console.log(`your system doesn't sup
port sharing files.`); } specifications specification status comment web share apithe definition of 'share()' in that specification.
navigator.hardwareConcurrency - Web APIs
the browser may, however, choose to re
port a lower number of logical cores in order to represent more accurately the number of workers that can run at once, so don't treat this as an absolute measurement of the number of cores in the user's system.
... examples in this example, one worker is created for each logical processor re
ported by the browser and a record is created which includes a reference to the new worker as well as a boolean value indicating whether or not we're using that worker yet; these objects are, in turn, stored into an array for later use.
Online and offline events - Web APIs
firefox 41 updates this property when the os re
ports a change in network connectivity on windows, linux, and os x.
... firefox 41 fires these events when the os re
ports a change in network connectivity on windows, linux, and os x.
NetworkInformation.downlink - Web APIs
note that chrome-based browsers do not conform to the specification, and arbitrarily cap the re
ported downlink at a maximum of 10 mbps as an anti-fingerprinting measure.
... similar caps exist for the re
ported latency.
Node.rootNode - Web APIs
im
portant: for compatibility reasons, this property has been replaced by the node.getrootnode() method.
... example running the following line in sup
porting browsers should return a reference to the html/document node: console.log(document.body.rootnode); notes gecko-based browsers insert text nodes into a document to represent whitespace in the source markup.
Node.textContent - Web APIs
note: textcontent and htmlelement.innertext are easily confused, but the two properties are different in im
portant ways.
...although the names seem similar, there are im
portant differences: textcontent gets the content of all elements, including <script> and <style> elements.
Notification.maxActions - Web APIs
the maxactions attribute of the notification interface returns the maximum number of actions sup
ported by the device and the user agent.
... examples the following snippet logs the maximum number of sup
ported actions.
Notification.permission - Web APIs
examples the following snippet could be used if you wanted to first check whether notifications are sup
ported, then check if permission has been granted for the current origin to send notifications, then request permission if required, before then sending a notification.
... function notifyme() { // let's check if the browser sup
ports notifications if (!("notification" in window)) { console.log("this browser does not sup
port desktop notification"); } // let's check whether notification permissions have alredy been granted else if (notification.permission === "granted") { // if it's okay let's create a notification var notification = new notification("hi there!"); } // otherwise, we need to ask the user for permission else if (notification.permission !== 'denied' || notification.permission === "default") { notification.requestpermission(function (permission) { // if the user accepts, let's create a notification if (permission === "granted") { var notification = new notification("hi there!"); } }); ...
Notification.requestPermission() - Web APIs
possible values for this string are: granted denied default examples assume this basic html: <button onclick="notifyme()">notify me!</button> it's possible to send a notification as follows — here we present a fairly verbose and complete set of code you could use if you wanted to first check whether notifications are sup
ported, then check if permission has been granted for the current origin to send notifications, then request permission if required, before then sending a notification.
... function notifyme() { // let's check if the browser sup
ports notifications if (!("notification" in window)) { alert("this browser does not sup
port desktop notification"); } // let's check whether notification permissions have already been granted else if (notification.permission === "granted") { // if it's okay let's create a notification var notification = new notification("hi there!"); } // otherwise, we need to ask the user for permission else if (notification.permission !== "denied") { notification.requestpermission().then(function (permission) { // if the user accepts, let's create a notification if (permission === "granted") { var notification = new notification("hi there!"); } }); } // at last, if the user has denied...
Notification - Web APIs
examples assume this basic html: <button onclick="notifyme()">notify me!</button> it's possible to send a notification as follows — here we present a fairly verbose and complete set of code you could use if you wanted to first check whether notifications are sup
ported, then check if permission has been granted for the current origin to send notifications, then request permission if required, before then sending a notification.
... function notifyme() { // let's check if the browser sup
ports notifications if (!("notification" in window)) { alert("this browser does not sup
port desktop notification"); } // let's check whether notification permissions have already been granted else if (notification.permission === "granted") { // if it's okay let's create a notification var notification = new notification("hi there!"); } // otherwise, we need to ask the user for permission else if (notification.permission !== "denied") { notification.requestpermission().then(function (permission) { // if the user accepts, let's create a notification if (permission === "granted") { var notification = new notification("hi there!"); } }); } // at last, if the user has denied...
Notifications API - Web APIs
these are outside the top-level browsing context view
port, so therefore can be displayed even when the user has switched tabs or moved to a different app.
... concepts and usage on sup
ported platforms, showing a system notification generally involves two things.
OfflineAudioCompletionEvent.renderedBuffer - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetrenderedbufferchrome full sup
port 14edge full sup
port 12firefox full sup
port 25ie no sup
port noopera full sup
port 15safari full sup
port 6webview android full suppo...
...rt yeschrome android full sup
port 18firefox android full sup
port 26opera android full sup
port 14safari ios full sup
port yessamsung internet android full sup
port 1.0legend full sup
port full sup
port no sup
port no sup
port ...
OfflineAudioContext.OfflineAudioContext() - Web APIs
all user agents are required to sup
port a range of 22050hz to 96000hz, and may sup
port a wider range than that.
... it is im
portant to note that, whereas you can create a new audiocontext using the new audiocontext() constructor with no arguments, the offlineaudiocontext() constructor requires three arguments, since it needs to create an audiobuffer.
OffscreenCanvas.getContext() - Web APIs
the offscreencanvas.getcontext() method returns a drawing context for an offscreen canvas, or null if the context identifier is not sup
ported.
...see bug 801176 for canvas 2d api sup
port from workers.
PannerNode.distanceModel - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
PannerNode.maxDistance - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
PannerNode.panningModel - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
PannerNode.setOrientation() - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
PannerNode.setPosition() - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
PannerNode.setVelocity() - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
PannerNode - Web APIs
to see a complete implementation, check out our panner-node example (view the source code) — this demo trans
ports you to the 2.5d "room of metal", where you can play a track on a boom box and then walk around the boom box to see how the sound changes!
...if it sup
ports those, or older methods (like audiolistener.setorientation()) if it still sup
ports those but not the new properties.
ParentNode.childElementCount - Web APIs
example var foo = document.getelementbyid('foo'); if (foo.childelementcount > 0) { // do something } polyfill for ie8 & ie9 & safari this property is completely unsup
ported prior to ie9.
... in ie9 and safari, it is unsup
ported in the document and documentfragment objects.
PaymentAddress.city - Web APIs
the city read-only property of the paymentaddress interface returns a string containing the city or town
portion of the address.
... syntax var paymentcity = paymentaddress.city; value a domstring indicating the city or town
portion of the address described by the paymentaddress object.
PaymentAddress.regionCode - Web APIs
the regioncode read-only attribute of the paymentaddress interface returns a one-, two-, or three-alphanumeric code (domstring) representing the region of the address (e.g., "ca" for california, or "11" for lisbon,
portugal).
... syntax var regioncode = paymentaddress.regioncode; value a domstring indicating the one to three character alphanumeric code representing the region
portion of the address.
performance.setResourceTimingBufferSize() - Web APIs
example function setresourcetimingbuffersize(maxsize) { if (performance === undefined) { log("browser does not sup
port web performance"); return; } var sup
ported = typeof performance.setresourcetimingbuffersize == "function"; if (sup
ported) { log("...
...performance.setresourcetimingbuffersize() = not sup
ported"); } } specifications specification status comment resource timing level 1the definition of 'setresourcetimingbuffersize()' in that specification.
Performance.timeOrigin - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettimeorigin experimentalchrome full sup
port 62edge full sup
port 16firefox full sup
port 53ie ?
... opera full sup
port 49safari no sup
port nowebview android full sup
port 62chrome android full sup
port 62firefox android full sup
port 53opera android full sup
port 46safari ios no sup
port nosamsung internet android full sup
port 8.0legend full sup
port full sup
port no sup
port no sup
port ...
PerformanceEntry.entryType - Web APIs
longtask performancelongtasktiming domstring re
ports instances of long tasks example the following example shows the use of the entrytype property.
... function run_performanceentry() { // check for feature sup
port before continuing if (performance.mark === undefined) { console.log("performance.mark not sup
ported"); return; } // create a performance entry named "begin" via the mark() method performance.mark("begin"); // check the entrytype of all the "begin" entries var entriesnamedbegin = performance.getentriesbyname("begin"); for (var i=0; i < entriesnamedbegin.length; i++) { var typeofentry = entriesnamedbegin[i].entrytype; console.log("entry is type: " + typeofentry); } } specifications specification status comment performance timeline level 2the definition of 'entrytype' in that specification.
PerformanceResourceTiming.connectStart - Web APIs
d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'connectstart' in that specification.
PerformanceResourceTiming.decodedBodySize - Web APIs
function log_sizes(perfentry){ // check for sup
port of the *size properties and print their values // if sup
ported.
... if ("decodedbodysize" in perfentry) console.log("decodedbodysize = " + perfentry.decodedbodysize); else console.log("decodedbodysize = not sup
ported"); if ("encodedbodysize" in perfentry) console.log("encodedbodysize = " + perfentry.encodedbodysize); else console.log("encodedbodysize = not sup
ported"); if ("transfersize" in perfentry) console.log("transfersize = " + perfentry.transfersize); else console.log("transfersize = not sup
ported"); } function check_performanceentries() { // use getentriesbytype() to just get the "resource" events var p = performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { log_sizes(p[i]); } } specifications specification status comment resource timing level 2the defin...
PerformanceResourceTiming.domainLookupEnd - Web APIs
d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'domainlookupend' in that specification.
PerformanceResourceTiming.domainLookupStart - Web APIs
d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'domainlookupstart' in that specification.
PerformanceResourceTiming.encodedBodySize - Web APIs
function log_sizes(perfentry){ // check for sup
port of the performanceentry.*size properties and print their values // if sup
ported.
... if ("decodedbodysize" in perfentry) console.log("decodedbodysize = " + perfentry.decodedbodysize); else console.log("decodedbodysize = not sup
ported"); if ("encodedbodysize" in perfentry) console.log("encodedbodysize = " + perfentry.encodedbodysize); else console.log("encodedbodysize = not sup
ported"); if ("transfersize" in perfentry) console.log("transfersize = " + perfentry.transfersize); else console.log("transfersize = not sup
ported"); } function check_performanceentries() { // use getentriesbytype() to just get the "resource" events var p = performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { log_sizes(p[i]); } } specifications specification status comment resource timing level 2the defin...
PerformanceResourceTiming.fetchStart - Web APIs
d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'fetchstart' in that specification.
PerformanceResourceTiming.redirectEnd - Web APIs
d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'redirectend' in that specification.
PerformanceResourceTiming.redirectStart - Web APIs
d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'redirectstart' in that specification.
PerformanceResourceTiming.responseStart - Web APIs
d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'responsestart' in that specification.
PerformanceResourceTiming.secureConnectionStart - Web APIs
d properties properties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 1the definition of 'secureconnectionstart' in that specification.
PerformanceResourceTiming.transferSize - Web APIs
function log_sizes(perfentry){ // check for sup
port of the performanceentry.*size properties and print their values // if sup
ported.
... if ("decodedbodysize" in perfentry) console.log("decodedbodysize = " + perfentry.decodedbodysize); else console.log("decodedbodysize = not sup
ported"); if ("encodedbodysize" in perfentry) console.log("encodedbodysize = " + perfentry.encodedbodysize); else console.log("encodedbodysize = not sup
ported"); if ("transfersize" in perfentry) console.log("transfersize = " + perfentry.transfersize); else console.log("transfersize = not sup
ported"); } function check_performanceentries() { // use getentriesbytype() to just get the "resource" events var p = performance.getentriesbytype("resource"); for (var i=0; i < p.length; i++) { log_sizes(p[i]); } } specifications specification status comment resource timing level 2the defin...
PerformanceResourceTiming.workerStart - Web APIs
operties = ["connectstart", "connectend", "domainlookupstart", "domainlookupend", "fetchstart", "redirectstart", "redirectend", "requeststart", "responsestart", "responseend", "secureconnectionstart", "workerstart"]; for (var i=0; i < properties.length; i++) { // check each property var sup
ported = properties[i] in perfentry; if (sup
ported) { var value = perfentry[properties[i]]; console.log("...
..." + properties[i] + " = not sup
ported"); } } } specifications specification status comment resource timing level 2the definition of 'workerstart' in that specification.
PerformanceResourceTiming - Web APIs
the interface also sup
ports the following properties which are listed in the order in which they are recorded for the fetching of a single resource.
... performanceresourcetiming.responseendread only a domhighrestimestamp immediately after the browser receives the last byte of the resource or immediately before the trans
port connection is closed, whichever comes first.
Plugin - Web APIs
methods plugin.item returns the mime type of a sup
ported content type, given the index number into a list of sup
ported types.
... plugin.nameditem returns the mime type of a sup
ported item.
PublicKeyCredentialRequestOptions.allowCredentials - Web APIs
trans
ports optional an array of strings describing the possible trans
ports between the client and the authenticator.
... examples var options = { allowcredentials: [ { trans
ports: ["usb"], type: "public-key", id: new uint8array(26) // actually provided by the server }, { trans
ports: ["internal"], type: "public-key", id: new uint8array(26) // actually provided by the server } ], challenge: new uint8array([/* bytes sent from the server */]) }; navigator.credentials.get({ "publickey": options }) .then(function (credentialin...
PushManager - Web APIs
properties pushmanager.sup
portedcontentencodings returns an array of sup
ported content codings that can be used to encrypt the payload of a push message.
...in a production environment it might make sense to // also re
port information about errors back to the // application server.
PushMessageData.arrayBuffer() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetarraybuffer experimentalchrome full sup
port 50edge full sup
port ≤79firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port ...
... noopera full sup
port 37safari no sup
port nowebview android no sup
port nochrome android full sup
port 50firefox android full sup
port 48opera android full sup
port 37safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
PushMessageData.blob() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetblob experimentalchrome full sup
port 50edge full sup
port ≤79firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port ...
... noopera full sup
port 37safari no sup
port nowebview android no sup
port nochrome android full sup
port 50firefox android full sup
port 48opera android full sup
port 37safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
PushMessageData.json() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetjson experimentalchrome full sup
port 50edge full sup
port ≤79firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port ...
... noopera full sup
port 37safari no sup
port nowebview android no sup
port nochrome android full sup
port 50firefox android full sup
port 48opera android full sup
port 37safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
PushMessageData.text() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettext experimentalchrome full sup
port 50edge full sup
port ≤79firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port ...
... noopera full sup
port 37safari no sup
port nowebview android no sup
port nochrome android full sup
port 50firefox android full sup
port 48opera android full sup
port 37safari ios no sup
port nosamsung internet android full sup
port 5.0legend full sup
port full sup
port no sup
port no sup
portexperimental.
PushSubscription.expirationTime - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetexpirationtimechrome full sup
port 60edge full sup
port 16firefox no sup
port noie no sup
port noopera full sup
port 47safari no sup
port nowebview android no sup
port ...
... nochrome android full sup
port 60firefox android no sup
port noopera android full sup
port 44safari ios no sup
port nosamsung internet android full sup
port 8.0legend full sup
port full sup
port no sup
port no sup
port ...
PushSubscription.getKey() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetgetkey()chrome full sup
port 42edge full sup
port 16firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port ...
... noopera full sup
port 29safari no sup
port nowebview android no sup
port nochrome android full sup
port 42firefox android full sup
port 48opera android full sup
port 29safari ios no sup
port nosamsung internet android full sup
port 4.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
PushSubscription.options - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetoptionschrome full sup
port 42edge full sup
port 16firefox full sup
port 44notes full sup
port 44notes notes extended sup
port releases (esr) before firefox 78 esr do not sup
port service workers and the push api.ie no sup
port ...
... noopera full sup
port 29safari no sup
port nowebview android no sup
port nochrome android full sup
port 42firefox android full sup
port 48opera android full sup
port 29safari ios no sup
port nosamsung internet android full sup
port 4.0legend full sup
port full sup
port no sup
port no sup
portsee implementation n...
PushSubscription.subscriptionId - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsubscriptionidchrome full sup
port 42edge full sup
port ≤18firefox no sup
port noie no sup
port noopera full sup
port 29safari no sup
port nowebview android no sup
port...
... nochrome android full sup
port 42firefox android no sup
port noopera android full sup
port 29safari ios no sup
port nosamsung internet android full sup
port 4.0legend full sup
port full sup
port no sup
port no sup
port ...
RTCConfiguration.certificates - Web APIs
this attribute sup
ports providing multiple certificates because even though a given dtls connection uses only one certificate, providing multiple certificates allows sup
port for multiple encryption algorithms.
... the implementation of rtcpeerconnection will choose which certificate to use based on the algorithms it and the remote peer sup
port, as determined during dtls handshake.
RTCIceCandidate.usernameFragment - Web APIs
this avoids crosstalk among multiple ongoing ice sessions, but, more im
portantly, helps secure ice transactions (and all of webrtc by extension) against attacks that might try to inject themselves into an ice exchange.
...to avoid including candidates obsoleted by an ice restart, we can use code like this: const ssnewcandidate = signalmsg => { let candidate = new rtcicecandidate(signalmsg.candidate); let receivers = pc.getreceivers(); receivers.foreach(receiver => { let parameters = receiver.trans
port.getparameters(); if (parameters.usernamefragment === candidate.usernamefragment) { return; } }); pc.addicecandidate(candidate) .catch(re
porterror); } this walks through the list of the rtcrtpreceiver objects being used to receive ice data, and looks to see if the usernamefragment indicated in the candidate matches any of them.
RTCIceCandidatePair - Web APIs
it is used as the return value from rtcicetrans
port.getselectedcandidatepair() to identify the currently-selected candidate pair identified by the ice agent.
... var icetrans
port = pc.getsenders()[0].trans
port.icetrans
port; var localproto = document.getelementbyid("local-protocol"); var remoteproto = document.getelementbyid("remote-protocol"); icetrans
port.onselectedcandidatepairchange = function(event) { var pair = icetrans
port.getselectedcandidatepair(); localprotocol.innertext = pair.local.protocol.touppercase(); remoteprotocol.innertext = pair.remote.protocol.t...
RTCIceCandidatePairStats.availableIncomingBitrate - Web APIs
the value is re
ported in bits per second and is computed over a 1-second interval.
... note: the returned value is computed using a method similar—but not identical—to the trans
port independent application specific maximum (tias) described in rfc 3890: 6.2.
RTCIceCandidateStats.address - Web APIs
otherwise, the address is presumed to be a fully-qualified domain name, which is resolved first using an aaaa record (assuming ipv6 is available), then using an a record (if no result is found or the device onlu sup
ports ipv4).
...the addition of sup
port for fully-qualified domain names to be used for the address brought about the renaming of the property.
RTCIceCandidateStats.deleted - Web APIs
window.setinterval(function() { mypeerconnection.getstats(null).then(stats => { let statsoutput = ""; stats.foreach(re
port => { if ((stats.type === "local-candidate" || stats.type === "remote.candidate") && !stats.deleted) { statsoutput += `<h2>re
port: ${re
port.type}</h3>\n<strong>id:</strong> ${re
port.id}<br>\n` + `<strong>timestamp:</strong> ${re
port.timestamp}<br>\n`; // now the statistics for this re
port; we intentially drop the ones we // sorted to the top ab...
...ove object.keys(re
port).foreach(statname => { if (statname !== "id" && statname !== "timestamp" && statname !== "type") { statsoutput += `<strong>${statname}:</strong> ${re
port[statname]}<br>\n`; } }); } }); document.queryselector(".stats-box").innerhtml = statsoutput; }); }, 1000); specifications specification status comment identifiers for webrtc's statistics apithe definition of 'rtcicecandidatestats.deleted' in that specification.
RTCIceCandidateStats.networkType - Web APIs
example this example sets up a periodic function using setinterval() that outputs statistics re
ports for candidates that use or would use a cellular data network to a log view.
... window.setinterval(function() { mypeerconnection.getstats(null).then(stats => { let statsoutput = ""; stats.foreach(re
port => { if ((stats.type === "local-candidate" || stats.type === "remote.candidate") && stats.networktype === "cellular") { statsoutput += `<h2>re
port: ${re
port.type}</h3>\n<strong>id:</strong> ${re
port.id}<br>\n` + `<strong>timestamp:</strong> ${re
port.timestamp}<br>\n`; // now the statistics for this re
port; we intentially drop the ones we // sorted to the top above object.keys(re
port).foreach(statname => { if (statname !== "id" && statname !== "timestamp" && statname !== "type") { statsoutput += `<strong>${statname}:</strong> ${re
port[statname]}<br>\n`; } }); ...
RTCIceCandidateStats.priority - Web APIs
during ice negotiation while setting up a webrtc peer connection, the priority values re
ported to the remote peer by a user agent are used to determine which candidates are considered "more desirable".
... specifications specification status comment identifiers for webrtc's statistics apithe definition of 'rtcicecandidatestats.
port' in that specification.
RTCIceCandidateStats.protocol - Web APIs
syntax protocol = rtcicecandidatestats.protocol; value the value is one of the members of the rtciceprotocol enumerated string type: tcp the candidate, if selected, would use tcp as the trans
port protocol for its data.
... udp the candidate will use the udp trans
port protocol for its data.
RTCIceCandidateStats.relayProtocol - Web APIs
the possible values are: tcp tcp (trans
port control protocol) is being used to communicate with the turn server.
... tls tls (trans
port layer security) is being used to communicate with the turn server.
RTCInboundRtpStreamStats.nackCount - Web APIs
a nack (negative acknowledgement, also called "generic nack") packet tells the sender that one or more of the rtp packets it sent were lost in trans
port.
... syntax var nackcount = rtcinboundrtpstreamstats.nackcount; value an integer value indicating how many times the receiver sent a nack packet to the sender after detecting that one or more packets were lost during trans
port.
RTCPeerConnection() - Web APIs
icetrans
portpolicy optional the current ice trans
port policy; this must be one of the values from the rtcicetrans
portpolicy enum.
... rtcpmuxpolicy optional the rtcp mux policy to use when gathering ice candidates, in order to sup
port non-multiplexed rtcp.
RTCPeerConnection.createAnswer() - Web APIs
the answer contains information about any media already attached to the session, codecs and options sup
ported by the browser, and any ice candidates already gathered.
... keep in mind that this is part of the signaling process, the trans
port layer for which is an implementation detail that's entirely up to you.
RTCPeerConnection: icecandidate event - Web APIs
indicating the end of a generation of candidates when an ice negotiation session runs out of candidates to propose for a given rtcicetrans
port, it has completed gathering for a generation of candidates.
... indicating that ice gathering is complete once all ice trans
ports have finished gathering candidates and the value of the rtcpeerconnection object's icegatheringstate has made the transition to complete, an icecandidate event is sent with the value of complete set to null.
RTCPeerConnection: icecandidateerror event - Web APIs
when this happens, the server url and the error message are passed to a function called re
portconnectfail() to log or output the connection failure.
... pc.addeventlistener("icecandidateerror", (event) => { if (event.errorcode === 701) { re
portconnectfail(event.url, event.errortext); } }); note that if multiple stun and/or turn servers are provided when creating the connection, this error may happen more than once, if more than one of those servers fails.
RTCPeerConnection.onconnectionstatechange - Web APIs
the aggregate state is a combination of the states of all of the individual network trans
ports being used by the connection.
... example pc.onconnectionstatechange = function(event) { switch(pc.connectionstate) { case "connected": // the connection has become fully connected break; case "disconnected": case "failed": // one or more trans
ports has terminated unexpectedly or in an error break; case "closed": // the connection has been closed break; } } specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcpeerconnection.onconnectionstatechange' in that specification.
RTCPeerConnection.setConfiguration() - Web APIs
this lets you change the ice servers used by the connection and which trans
port policies to use.
... username: "allie@oopcode.com", credential: "topsecretpassword" }] }; mypeerconnection.setconfiguration(restartconfig); mypeerconnection.createoffer({"icerestart": true}).then(function(offer) { return mypeerconnection.setlocaldescription(offer); }) .then(function() { // send the offer to the other peer using the signaling server }) .catch(re
porterror); first, a new rtcconfiguration is created, restartconfig, specifying the new ice server and its credentials.
RTCRemoteOutboundRtpStreamStats - Web APIs
re
portssent an integer value indicating the total number of rtcp sender re
port (sr) blocks that this ssrc has sent.
... usage notes the rtcremoteoutboundrtpstreamstats object's remotetimestamp proeprty provides statistics based on the received data's ntp timestamp taken from an rtcp sender re
port (sr) block.
RTCRtpCodecCapability - Web APIs
properties channels optional an unsigned integer value indicating the maximum number of channels sup
ported by the codec; for example, a codec that sup
ports only mono sound would have a value of 1; stereo codecs would have a 2, etc.
... description rtcrtpcodeccapabilities describes the basic parameters for a single codec sup
ported by the user's device.
RTCRtpEncodingParameters.maxBitrate - Web APIs
in addition, there's no guarantee that the network interface can sup
port the specified bandwidth, in which case the actual bandwidth will be lower.
... this value is computed using the standard trans
port independent application specific maximum (tias) bandwidth as defined by rfc 3890, section 6.2.2; this is the maximum bandwidth needed without considering protocol overheads from ip, tcp or udp, and so forth.
RTCRtpParameters - Web APIs
the rtcrtpparameters dictionary is the basic object describing the parameters of an rtp trans
port.
... headerextensions an array of zero or more rtp header extensions, each identifying an extension sup
ported by the sender or receiver.
RTCRtpReceiver.getStats() - Web APIs
the rtcrtpreceiver method getstats() asynchronously requests an rtcstatsre
port object which provides statistics about incoming traffic on the owning rtcpeerconnection, returning a promise whose fulfillment handler will be called once the results are available.
...the promise's fulfillment handler receives as a parameter a rtcstatsre
port object containing the collected statistics.
RTCRtpReceiver.track - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettrackchrome full sup
port 59edge full sup
port 12firefox full sup
port yesie no sup
port noopera full sup
port 46safari full sup
port yeswebview android full su...
...p
port 59chrome android full sup
port 59firefox android full sup
port yesopera android full sup
port 43safari ios full sup
port yessamsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port ...
RTCRtpSender.dtmf - Web APIs
syntax var dtmfsender = rtcrtpsender.dtmf; value an rtcdtmfsender which can be used to send dtmf over the rtp session, or null if the track being carried by the rtp session or the rtcpeerconnection as a whole doesn't sup
port dtmf.
... only audio tracks can sup
port dtmf, and typically only one audio track per rtcpeerconnection will have an associated rtcdtmfsender example tbd specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcrtpsender.dtmf' in that specification.
RTCRtpSender.setStreams() - Web APIs
function addtrackstostream(stream) { let senders = pc.getsenders(); senders.foreach((sender) => { if (sender.track && (sender.trans
port.state === connected)) { sender.setstreams(stream); } }); } after calling the rtcpeerconnection method getsenders() to get the list of the connection's senders, the addtrackstostream() function iterates over the list.
... for each sender, if the sender's track is non-null and its trans
port's state is connected, we call setstreams() to add the track to the stream specified.
RTCRtpStreamStats.nackCount - Web APIs
a nack (negative acknowledgement, also called "generic nack") packet tells the sender that one or more of the rtp packets it sent were lost in trans
port.
... syntax var nackcount = rtcrtpstreamstats.nackcount; value an integer value indicating how many times the receiver sent a nack packet to the sender after detecting that one or more packets were lost during trans
port.
RTCRtpStreamStats.ssrc - Web APIs
the rtcrtpstreamstats dictionary's ssrc property provides the synchronization source (ssrc), an integer which uniquely identifies the source of the rtp packets whose statistics are covered by the rtcstatsre
port that includes this rtcrtpstreamstats dictionary.
... syntax var ssrc = rtcrtpstreamstats.ssrc; value the synchronization source (ssrc) is a 32-bit integer uniquely identifying the source of the rtp packets whose statistics are covered by the rtcstatsre
port object of which this rtcrtpstreamstats object is a component.
RTCRtpStreamStats - Web APIs
rtcrtpstreamstats is the base class for all rtp-related statistics re
ports.
... trans
portid a domstring uniquely identifying the object which was inspected to produce the rtctrans
portstats object associated with this rtp stream.
ResizeObserver - Web APIs
the resizeobserver interface re
ports changes to the dimensions of an element's content or border box, or the bounding box of an svgelement.
...this shows that you can respond to changes in an element’s size, even if they have nothing to do with the view
port.
ResizeObserverEntry.contentBoxSize - Web APIs
this example includes a green box, sized as a percentage of the view
port size.
... when the view
port size is changed, the box's rounded corners change in pro
portion to the size of the box.
ResizeObserverEntry.contentRect - Web APIs
note that this is better sup
ported than resizeobserverentry.borderboxsize or resizeobserverentry.contentboxsize, but it is left over from an earlier implementation of the resize observer api, is still included in the spec for web compat reasons, and may be deprecated in future versions.
...this uses a simple feature detection test to see if the browser sup
ports the newer resizeobserverentry.contentboxsize property — if so, it uses that to get the sizing data it needs.
ResizeObserverEntry.target - Web APIs
this example includes a green box, sized as a percentage of the view
port size.
... when the view
port size is changed, the box's rounded corners change in pro
portion to the size of the box.
ResizeObserverEntry - Web APIs
note that this is better sup
ported than the above two properties, but it is left over from an earlier implementation of the resize observer api, is still included in the spec for web compat reasons, and may be deprecated in future versions.
...this uses a simple feature detection test to see if the browser sup
ports the newer contentboxsize property — if so, it uses that to get the sizing data it needs.
SVGAnimatedAngle - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedanglechrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port 10webview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port 3samsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedBoolean - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedbooleanchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedEnumeration - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedenumerationchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedInteger - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedintegerchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedLength - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedlengthchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedLengthList - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedlengthlistchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedNumber - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatednumberchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedNumberList - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatednumberlistchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedPathData - Web APIs
svg animated path data interface the svganimatedpathdata interface sup
ports elements which have a 'd' attribute which holds svg path data, and sup
ports the ability to animate that attribute.
... legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknown ...
SVGAnimatedPreserveAspectRatio - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedpreserveaspectratiochrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedRect - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedrectchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedString.baseVal - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbasevalchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie no sup
port noopera full sup
port yessafari full sup
port yeswebview android full ...
...sup
port yeschrome android no sup
port nofirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
port ...
SVGAnimatedTransformList - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvganimatedtransformlistchrome full sup
port yesedge full sup
port ≤18firefox full sup
port 9ie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port 9opera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGFitToViewBox - Web APIs
svg fit to view box interface the svgfittoviewbox interface is used to reflect the viewbox and preserveaspectratio attributes, and is mixed in to other interfaces for elements that sup
port these two attributes.
... legend full sup
port full sup
port no sup
port no sup
port compatibility unknown compatibility unknown ...
SVGGraphicsElement - Web APIs
svggraphicselement.getctm() returns a dommatrix representing the matrix that transforms the current element's coordinate system to its svg view
port's coordinate system.
... svggraphicselement.getscreenctm() returns a dommatrix representing the matrix that transforms the current element's coordinate system to the coordinate system of the svg view
port for the svg document fragment.
SVGLengthList - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvglengthlistchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android no sup
port nochrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
SVGNumberList - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgnumberlistchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown ...
SVGPreserveAspectRatio - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgpreserveaspectratiochrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown ...
SVGTests - Web APIs
the svgtests interface is used to reflect conditional processing attributes and is mixed into other interfaces for elements that sup
port these attributes.
... methods svgtests.hasextension() read only returns true if the browser sup
ports the given extension, specified by a uri.
SVGTransform - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsvgtransformchrome full sup
port yesedge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port yessafari full sup
port yeswebview android full sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port compatibility unknown ...
Screen.orientation - Web APIs
the screen is upside down!"); } else if (orientation === "
portrait-secondary" || orientation === "
portrait-primary") { console.log("mmmh...
... you should rotate your device to landscape"); } else if (orientation === undefined) { console.log("the orientation api isn't sup
ported in this browser :("); } specifications specification status comment screen orientation apithe definition of 'orientation' in that specification.
ScreenOrientation.angle - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetanglechrome full sup
port 38edge full sup
port 79firefox full sup
port 43ie no sup
port noopera full sup
port 25safari no sup
port nowebview android full suppor...
...t 38chrome android full sup
port 38firefox android full sup
port 43opera android full sup
port 25safari ios no sup
port nosamsung internet android full sup
port 3.0legend full sup
port full sup
port no sup
port no sup
port ...
ScreenOrientation.onchange - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetonchangechrome full sup
port 38edge full sup
port 79firefox full sup
port 43ie no sup
port noopera full sup
port 25safari no sup
port nowebview android full suppor...
...t 38chrome android full sup
port 38firefox android full sup
port 43opera android full sup
port 25safari ios no sup
port nosamsung internet android full sup
port 3.0legend full sup
port full sup
port no sup
port no sup
port ...
ScreenOrientation.unlock() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetunlockchrome full sup
port 38edge full sup
port 79firefox full sup
port 43ie no sup
port noopera full sup
port 25safari no sup
port nowebview android full suppor...
...t 38chrome android full sup
port 38firefox android full sup
port 43opera android full sup
port 25safari ios no sup
port nosamsung internet android full sup
port 3.0legend full sup
port full sup
port no sup
port no sup
port ...
Screen Wake Lock API - Web APIs
examples feature detection this code checks for wake lock sup
port and updates the ui accordingly.
... if ('wakelock' in navigator) { issup
ported = true; statuselem.textcontent = 'screen wake lock api sup
ported!'; } else { wakebutton.disabled = true; statuselem.textcontent = 'wake lock is not sup
ported by this browser.'; } requesting a wake lock the following example demonstrates how to request a wakelocksentinel object.
Selection.removeAllRanges() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetremoveallranges experimentalchrome full sup
port yesedge full sup
port 12firefox full sup
port yesie full sup
port yesopera full sup
port yessafari full sup
port yeswebview android fu...
...ll sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
portexperimental.
Selection.removeRange() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetremoverange experimentalchrome full sup
port 58edge full sup
port 12firefox full sup
port yesie ?
... opera full sup
port 45safari no sup
port nowebview android full sup
port 58chrome android full sup
port 58firefox android full sup
port yesopera android full sup
port 43safari ios no sup
port nosamsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port ...
Sensor APIs - Web APIs
the only time anything is shown to the user is when permissions need to be requested and when the sensor type isn't sup
ported by the device.
... console.log('sensor construction was blocked by a feature policy.'); } else if (error.name === 'referenceerror') { console.log('sensor is not sup
ported by the user agent.'); } else { throw error; } } permissions and feature policy sensor readings may not be taken unless the user grants permission to a specific sensor type.
ServiceWorkerGlobalScope - Web APIs
controlled pages can use the message
port.postmessage() method to send messages to service workers.
... the service worker can optionally send a response back via the message
port exposed in event.data.
port, corresponding to the controlled page.
ServiceWorkerMessageEvent.data - Web APIs
im
portant: in modern browsers, this property has been deprecated.
... // set up a message channel to communicate with the sw var channel = new messagechannel(); channel.
port1.onmessage = function(e) { console.log(e); handlechannelmessage(e.data); } mysw = reg.active; mysw.postmessage('hello', [channel.
port2]); }); ...
ServiceWorkerMessageEvent.lastEventId - Web APIs
im
portant: in modern browsers, this property has been deprecated.
... // set up a message channel to communicate with the sw var channel = new messagechannel(); channel.
port1.onmessage = function(e) { console.log(e.lasteventid); handlechannelmessage(e.data); } mysw = reg.active; mysw.postmessage('hello', [channel.
port2]); }); ...
ServiceWorkerMessageEvent.origin - Web APIs
im
portant: in modern browsers, this property has been deprecated.
... // set up a message channel to communicate with the sw var channel = new messagechannel(); channel.
port1.onmessage = function(e) { console.log(e.origin); handlechannelmessage(e.data); } mysw = reg.active; mysw.postmessage('hello', [channel.
port2]); }); ...
ServiceWorkerRegistration.pushManager - Web APIs
the pushmanager property of the serviceworkerregistration interface returns a reference to the pushmanager interface for managing push subscriptions; this includes sup
port for subscribing, getting an active subscription, and accessing push permission status.
...in a production environment it might make sense to // also re
port information about errors back to the // application server.
ServiceWorkerRegistration - Web APIs
examples in this example, the code first checks whether the browser sup
ports service workers and if so registers one.
...r = registration.installing; console.log('a new service worker is being installed:', installingworker); // you can listen for changes to the installing service worker's // state via installingworker.onstatechange }); }) .catch(function(error) { console.log('service worker registration failed:', error); }); } else { console.log('service workers are not sup
ported.'); } specifications specification status comment service workersthe definition of 'serviceworkerregistration' in that specification.
SourceBuffer.changeType() - Web APIs
one scenario in which this is helpful is to sup
port adapting the media source to changing bandwidth availability, by transitioning from one codec to another as resource constraints change.
... notsup
portederror the specified mime type is not sup
ported, or is not sup
ported with the types of sourcebuffer objects present in the mediasource.sourcebuffers list.
SpeechGrammarList.addFromURI() - Web APIs
note that some speech recognition services may sup
port built-in grammars that can be specified by uri.
...the weight means the im
portance of this grammar, or the likelihood that it will be recognised by the speech recognition service.
Streams API concepts - Web APIs
im
portant: byte streams are not implemented anywhere as yet, and questions have been raised as to whether the spec details are in a finished enough state for them to be implemented.
... backpressure an im
portant concept in streams is backpressure — this is the process by which a single stream or a pipe chain regulates the speed of reading/writing.
Using readable streams - Web APIs
browser sup
port 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 sup
ported in chrome at the moment, and that functionality is subject to change.
SubtleCrypto.digest() - Web APIs
sup
ported values are: sha-1 (but don't use this in cryptographic applications) sha-256 sha-384 sha-512.
... sup
ported algorithms digest algorithms, also known as cryptographic hash functions, transform an arbitrarily large block of data into a fixed-size output, usually much shorter than the input.
HTMLSlotElement.assignedSlot - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetassignedslotchrome full sup
port 53edge full sup
port ≤18firefox full sup
port yesie ?
... opera full sup
port 40safari full sup
port 10.1webview android full sup
port 53chrome android full sup
port 53firefox android full sup
port yesopera android full sup
port 41safari ios full sup
port 10.3samsung internet android full sup
port 6.0legend full sup
port full sup
port compatibility unknown ...
TextEncoder - Web APIs
note: there is a polyfill implementation to sup
port non-utf-8 text encodings on github.
... polyfill the below polyfill is compliant with the standard and therefore only sup
ports utf-8.
msManipulationViewsEnabled - Web APIs
the msmanipulationviewsenabled read-only property returns true if manipulation features are sup
port available, such as touch panning and zooming using css rules.
... value returns true if manipulation features are sup
port available, such as touch panning and zooming using css rules.
URL.host - Web APIs
the host property of the url interface is a usvstring containing the host, that is the hostname, and then, if the
port of the url is nonempty, a ':', followed by the
port of the url.
... examples let url = new url('/docs/web/api/url/host'); console.log(url.host); // "developer.mozilla.org" url = new url('https://developer.mozilla.org:443/docs/web/api/url/host'); console.log(url.host); // "developer.mozilla.org" // the
port number is not included because 443 is the scheme's default
port url = new url('https://developer.mozilla.org:4097/docs/web/api/url/host'); console.log(url.host); // "developer.mozilla.org:4097" specifications specification status comment urlthe definition of 'url.host' in that specification.
URLUtilsReadOnly.hostname - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internethostname experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 3.5ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android full sup
port 4opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
URLUtilsReadOnly.href - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internethref experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 3.5ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android full sup
port 4opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
URLUtilsReadOnly.pathname - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpathname experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 3.5ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android full sup
port 4opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
URLUtilsReadOnly.protocol - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetprotocol experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 3.5ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android full sup
port 4opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
URLUtilsReadOnly.search - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsearch experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 3.5ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android full sup
port 4opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
URLUtilsReadOnly.toString() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettostring experimentalchrome no sup
port noedge no sup
port nofirefox full sup
port 3.5ie no sup
port noopera no sup
port nosafari no sup
port nowebview android no sup
port ...
... nochrome android no sup
port nofirefox android full sup
port 4opera android no sup
port nosafari ios no sup
port nosamsung internet android no sup
port nolegend full sup
port full sup
port no sup
port no sup
portexperimental.
USBConfiguration - Web APIs
the usbconfiguration interface of the webusb api provides information about a particular configuration of a usb device and the interfaces that it sup
ports.
... usbconfiguration.interfacesread only returns an array containing instances of the usbinterface describing each interface sup
ported by this configuration.
USBDevice.usbVersionMajor - Web APIs
the usbversionmajor read only property of the usbdevice interface is one of three properties that declare the usb protocol version sup
ported by the device.
... syntax var serialnumber = usbdevice.usbversionmajor value the last of three properties that declare the usb protocol version sup
ported by the device.
USBDevice.usbVersionMinor - Web APIs
the usbversionminor read only property of the usbdevice interface is one of three properties that declare the usb protocol version sup
ported by the device.
... syntax var serialnumber = usbdevice.usbversionminor value the second of three properties that declare the usb protocol version sup
ported by the device.
USBDevice.usbVersionSubminor - Web APIs
the usbversionsubminor read only property of the usbdevice interface is one of three properties that declare the usb protocol version sup
ported by the device.
... syntax var serialnumber = usbdevice.usbversionsubminor value the first of three properties that declare the usb protocol version sup
ported by the device.
User Timing API - Web APIs
interoperability as shown in the performance interface's browser compatibility table, the user timing methods are broadly implemented by desktop and mobile browsers (the only exceptions are desktop safari and mobile safari, however the safari technology preview 24 has sup
port).
... to test your browser's sup
port for this api, run the perf-api-sup
port application.
VRStageParameters - Web APIs
the vrstageparameters interface of the webvr api represents the values describing the the stage area for devices that sup
port room-scale experiences.
... examples var info = document.queryselector('p'); var vrdisplay; navigator.getvrdisplays().then(function(displays) { vrdisplay = displays[0]; var stageparams = vrdisplay.stageparameters; // stageparams is a vrstageparameters object if(stageparams === null) { info.textcontent = 'your vr hardware does not sup
port room-scale experiences.' } else { info.innerhtml = '<strong>display stage parameters</strong>' + '<br>sitting to standing transform: ' + stageparams.sittingtostandingtransform + '<br>play area width (m): ' + stageparams.sizex + '<br>play area depth (m): ' + stageparams.sizey } }); specifications specification status comme...
VideoConfiguration - Web APIs
the videoconfiguration dictionary of the media capabilities api is used to define the video file being tested when calling the mediacapabilities methods encodinginfo() and decodinginfo() to determine whether or not the described video configuration is sup
ported, and how smoothly and how smoooth and power-efficient it can be handled.
...see our web video codec guide for types which may be sup
ported.
WebGL2RenderingContext.getInternalformatParameter() - Web APIs
the webgl2renderingcontext.getinternalformatparameter() method of the webgl 2 api returns information about implementation-dependent sup
port for internal formats.
...possible values: gl.samples: returns a int32array containing sample counts sup
ported for internalformat in descending order.
WebGL2RenderingContext.samplerParameter[if]() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsamplerparameterichrome full sup
port 56edge full sup
port 79firefox full sup
port 51ie no sup
port noopera full sup
port 43safari no sup
port nowebview android full suppor...
...t 58chrome android full sup
port 58firefox android full sup
port 51opera android full sup
port 43safari ios no sup
port nosamsung internet android full sup
port 7.0legend full sup
port full sup
port no sup
port no sup
port ...
WebGL2RenderingContext - Web APIs
webgl2renderingcontext.invalidatesubframebuffer() invalidates
portions of the contents of attachments in a framebuffer webgl2renderingcontext.readbuffer() selects a color buffer as the source for pixels.
... renderbuffers webgl2renderingcontext.getinternalformatparameter() returns information about implementation-dependent sup
port for internal formats.
WebGLRenderingContext.makeXRCompatible() - Web APIs
this is why the webglcontextlost and webglcontextrestored events are used: the first gives you the op
portunity to discard anything you won't need anymore, while the second gives you the op
portunity to load resources and prepare to render the scene in its new context.
...this is im
portant, which we'll explore shortly.
Boilerplate 1 - Web APIs
]</button> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> css body { text-align : center; } canvas { display : block; width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } button { display : block; font-size : inherit; margin : auto; padding : 0.6em; } javascript function getrenderingcontext() { var canvas = document.queryselector("canvas"); canv...
...as.width = canvas.clientwidth; canvas.height = canvas.clientheight; var gl = canvas.getcontext("webgl") || canvas.getcontext("experimental-webgl"); if (!gl) { var paragraph = document.queryselector("p"); paragraph.innerhtml = "failed to get webgl context." + "your browser or device may not sup
port webgl."; return null; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); gl.clearcolor(0.0, 0.0, 0.0, 1.0); gl.clear(gl.color_buffer_bit); return gl; } the source code of this example is also available on github.
Canvas size and WebGL - Web APIs
<p>compare the two canvases.</p> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> body { text-align : center; } canvas { display : inline-block; width : 120px; height : 80px; margin : auto; padding : 0; border : none; background-color : black; } window.addeventlistener("load", function() { "use strict" var firstcanvas = document.getelementsbytagname("canv...
..." + "your browser or device may not sup
port webgl."; return; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); gl.enable(gl.scissor_test); gl.scissor(30, 10, 60, 60); gl.clearcolor(1.0, 1.0, 0.0, 1.0); gl.clear(gl.color_buffer_bit); }); }, false); the source code of this example is also available on github.
Hello GLSL - Web APIs
hello glsl!</p> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> body { text-align : center; } canvas { width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } button { display : block; font-size : inherit; margin : auto; padding : 0.6em; } <script type="x-shader/x-vertex" id="vertex-shader"> #version 100 void main() { gl_position = vec4(0.0, 0.0, 0.0, 1.0); ...
...on getrenderingcontext() { var canvas = document.queryselector("canvas"); canvas.width = canvas.clientwidth; canvas.height = canvas.clientheight; var gl = canvas.getcontext("webgl") || canvas.getcontext("experimental-webgl"); if (!gl) { var paragraph = document.queryselector("p"); paragraph.innerhtml = "failed to get webgl context." + "your browser or device may not sup
port webgl."; return null; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); gl.clearcolor(0.0, 0.0, 0.0, 1.0); gl.clear(gl.color_buffer_bit); return gl; } })(); the source code of this example is also available on github.
Hello vertex attributes - Web APIs
click on the canvas to change the horizontal position of the square.</p> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> body { text-align : center; } canvas { width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } button { display : block; font-size : inherit; margin : auto; padding : 0.6em; } <script type="x-shader/x-vertex" id="vertex-shader"> #version 100 precision highp float; attribute float position; void m...
...on getrenderingcontext() { var canvas = document.queryselector("canvas"); canvas.width = canvas.clientwidth; canvas.height = canvas.clientheight; var gl = canvas.getcontext("webgl") || canvas.getcontext("experimental-webgl"); if (!gl) { var paragraph = document.queryselector("p"); paragraph.innerhtml = "failed to get webgl context." + "your browser or device may not sup
port webgl."; return null; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); gl.clearcolor(0.0, 0.0, 0.0, 1.0); gl.clear(gl.color_buffer_bit); return gl; } })(); the source code of this example is also available on github.
Raining rectangles - Web APIs
you missed <strong>0</strong>.</p> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> body { text-align : center; } canvas { display : block; width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } button { display : block; font-size : inherit; margin : auto; padding : 0.6em; } ;(function(){ "use strict" window.addeventlistener("load", setupanimation, false); var gl, timer, ...
...on getrenderingcontext() { var canvas = document.queryselector("canvas"); canvas.width = canvas.clientwidth; canvas.height = canvas.clientheight; var gl = canvas.getcontext("webgl") || canvas.getcontext("experimental-webgl"); if (!gl) { var paragraph = document.queryselector("p"); paragraph.innerhtml = "failed to get webgl context." + "your browser or device may not sup
port webgl."; return null; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); gl.clearcolor(0.0, 0.0, 0.0, 1.0); gl.clear(gl.color_buffer_bit); return gl; } })(); the source code of this example is also available on github.
Scissor animation - Web APIs
<p>webgl animation by clearing the drawing buffer with solid color and applying scissor test.</p> <button id="animation-onoff"> press here to <strong>[verb goes here]</strong> the animation</button> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> body { text-align : center; } canvas { display : block; width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } button { display : block; font-size : inherit; margin : auto; padding : 0.6em; } ;(function(){ "use strict" window.addeventlistener("load", setupanimation, false); // variables to h...
...on getrenderingcontext() { var canvas = document.queryselector("canvas"); canvas.width = canvas.clientwidth; canvas.height = canvas.clientheight; var gl = canvas.getcontext("webgl") || canvas.getcontext("experimental-webgl"); if (!gl) { var paragraph = document.queryselector("p"); paragraph.innerhtml = "failed to get webgl context." + "your browser or device may not sup
port webgl."; return null; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); gl.clearcolor(0.0, 0.0, 0.0, 1.0); gl.clear(gl.color_buffer_bit); return gl; } })(); the source code of this example is also available on github.
Simple color animation - Web APIs
<p>a simple webgl program that shows color animation.</p> <p>you can click the button below to toggle the color animation on or off.</p> <canvas id="canvas-view">your browser does not seem to sup
port html5 canvas.</canvas> <button id="animation-onoff"> press here to <strong>[verb goes here]</strong> the animation </button> body { text-align : center; } canvas { display : block; width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } button { display : inline-block; font-size : inherit; margin : auto; padding : 0.6...
... stopanimation({type: "click"}); var gl; function drawanimation () { if (!gl) { var canvas = document.getelementbyid("canvas-view"); gl = canvas.getcontext("webgl") ||canvas.getcontext("experimental-webgl"); if (!gl) { clearinterval(timer); alert("failed to get webgl context.\n" + "your browser or device may not sup
port webgl."); return; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); } // get a random color value using a helper function.
Textures from code - Web APIs
simple demonstration of procedural texturing</p> <canvas>your browser does not seem to sup
port html5 canvas.</canvas> body { text-align : center; } canvas { width : 280px; height : 210px; margin : auto; padding : 0; border : none; background-color : black; } button { display : block; font-size : inherit; margin : auto; padding : 0.6em; } <script type="x-shader/x-vertex" id="vertex-shader"> #version 100 precision highp float; attribute vec2 position; void ma...
...on getrenderingcontext() { var canvas = document.queryselector("canvas"); canvas.width = canvas.clientwidth; canvas.height = canvas.clientheight; var gl = canvas.getcontext("webgl") || canvas.getcontext("experimental-webgl"); if (!gl) { var paragraph = document.queryselector("p"); paragraph.innerhtml = "failed to get webgl context." + "your browser or device may not sup
port webgl."; return null; } gl.view
port(0, 0, gl.drawingbufferwidth, gl.drawingbufferheight); gl.clearcolor(0.0, 0.0, 0.0, 1.0); gl.clear(gl.color_buffer_bit); return gl; } })(); the source code of this example is also available on github.
Matrix math for the web - Web APIs
t2[2], result2[3], result3[0], result3[1], result3[2], result3[3] ]; } let's look at this function in action: let somematrix = [ 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 5, 0, 4, 8, 4, 1 ] let identitymatrix = [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ]; // returns a new array equivalent to somematrix let somematrixresult = multiplymatrices(identitymatrix, somematrix); im
portant: these matrix functions are written for clarity of explanation, not for speed or memory management.
....25), // step 6: scale back up translate(0, -200, 0), // step 5: move back up rotatearoundzaxis(-math.pi * 0.5), // step 4: rotate back rotatearoundzaxis(math.pi * 0.5), // step 3: rotate around 90 degrees translate(0, 200, 0), // step 2: move down 100 pixels scale(0.8, 0.8, 0.8), // step 1: scale down ]); why matrices are im
portant matrices are im
portant because they comprise a small set of numbers that can describe a wide range of transformations in space.
WebGL tutorial - Web APIs
webgl enables web content to use an api based on opengl es 2.0 to perform 3d rendering in an html <canvas> in browsers that sup
port it without the use of plug-ins.
...the <canvas> element and webgl are not sup
ported in some older browsers, but are sup
ported in recent versions of all major browsers.
WebGL model view projection - Web APIs
the result should be identical to the last example: cubedemo.prototype.computesimpleprojectionmatrix = function(scalefactor) { this.transforms.projection = [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, scalefactor, 0, 0, 0, scalefactor ]; }; although the result is identical, the im
portant step here is in the vertex shader.
...if you want to read a full explanation of the math behind it check out some of the following links: opengl projection matrix perspective projection trying to understand the math behind the perspective projection matrix in webgl one im
portant thing to note about the perspective projection matrix used below is that it flips the z axis.
WebGL: 2D and 3D graphics for the web - Web APIs
sup
port 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 sup
ports these features.
... the webgl 2 api introduces sup
port for much of the opengl es 3.0 feature set; it's provided through the webgl2renderingcontext interface.
Writing WebSocket client applications - Web APIs
if you want to open a connection and are flexible about the protocols you sup
port, you can specify an array of protocols: var examplesocket = new websocket("wss://www.example.com/socketserver", ["protocolone", "protocoltwo"]); once the connection is established (that is, readystate is open), examplesocket.protocol will tell you which protocol the server selected.
...most browsers now only allow secure websocket connections, and no longer sup
port using them in insecure contexts.
Writing a WebSocket server in C# - Web APIs
tcplistener constructor: tcplistener(system.net.ipaddress localaddr, int
port) localaddr specifies the ip of the listener, and
port specifies the
port.
...ew byte[4] {61, 84, 35, 6}; for (int i = 0; i < encoded.length; i++) { decoded[i] = (byte)(encoded[i] ^ mask[i % 4]); } put together wsserver.cs // // csc wsserver.cs // wsserver.exe using system; using system.net; using system.net.sockets; using system.text; using system.text.regularexpressions; class server { public static void main() { string ip = "127.0.0.1"; int
port = 80; var server = new tcplistener(ipaddress.parse(ip),
port); server.start(); console.writeline("server has started on {0}:{1}, waiting for a connection...", ip,
port); tcpclient client = server.accepttcpclient(); console.writeline("a client connected."); networkstream stream = client.getstream(); // enter to an infinite cycle to be abl...
Writing a WebSocket server in Java - Web APIs
serversocket constructor: serversocket(int
port) when you instantiate the serversocket class, it is bound to the
port number you specified by the
port argument.
... here's an implementation split into parts: im
port java.io.ioexception; im
port java.io.inputstream; im
port java.io.outputstream; im
port java.net.serversocket; im
port java.net.socket; im
port java.security.messagedigest; im
port java.security.nosuchalgorithmexception; im
port java.util.base64; im
port java.util.scanner; im
port java.util.regex.matcher; im
port java.util.regex.pattern; public class websocket { public static void main(string[] args) throws ioexception, nosuchalgorithmexception { serversocket server = new serversocket(80); try { system.out.println("server has started on 127.0.0.1:80.\r\nwaiting for a connection..."); socket client = server.accept(); system.out.println("a client connected."); socket methods: java.net.socket getinputstream() returns an input stream...
The WebSocket API (WebSockets) - Web APIs
jsonrpc-bidirectional: asynchronous rpc which, on a single connection, may have functions ex
ported on the server and, and the same time, on the client (client may call server, server may also call client).
... cowboy: cowboy is a small, fast and modern http server for erlang/otp with websocket sup
port.
Web Animations API Concepts - Web APIs
this article will introduce you to the im
portant concepts behind the waapi, providing you with a theoretical understanding of how it works so you can use it effectively.
...while four out of five browsers sup
ported smil, it only animated svg elements, could not be used from css, and was very complex — often leading to inconsistent implementations.
Web audio spatialization basics - Web APIs
the boombox sits inside a room (defined by the edges of the browser view
port), and in this demo, we can move and rotate it with the provided controls.
...here we are setting the listener to be in the middle of the view
port and slightly in front of our boombox.
Attestation and Assertion - Web APIs
older authenticators (u2f) do not sup
port this output.
... it's im
portant to highlight that the signature for assertion uses a different key pair than attestation.
Web NFC API - Web APIs
note: devices and tags have to be formatted and recorded specifically to sup
port ndef record format to be used with web nfc.
... low-level operations are currently not sup
ported by the api, however there is a public discussion about api that would add such functuionality.
window.cancelAnimationFrame() - Web APIs
examples var requestanimationframe = window.requestanimationframe || window.mozrequestanimationframe || window.webkitrequestanimationframe || window.msrequestanimationframe; var cancelanimationframe = window.cancelanimationframe || window.mozcancelanimationframe; var start = window.mozanimationstarttime; // only sup
ported in ff.
... var myreq; function step(timestamp) { var progress = timestamp - start; d.style.left = math.min(progress / 10, 200) + 'px'; if (progress < 2000) { // it's im
portant to update the requestid each time you're calling requestanimationframe myreq = requestanimationframe(step); } } myreq = requestanimationframe(step); // the cancelation uses the last requestid cancelanimationframe(myreq); specifications specification status comment html living standardthe definition of 'cancelanimationframe()' in that specification.
Window.devicePixelRatio - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdevicepixelratiochrome full sup
port 1edge full sup
port 12firefox full sup
port 18ie full sup
port 11opera full sup
port 11.1safari full sup
port 3webview android full su...
...p
port 1chrome android full sup
port 18firefox android full sup
port 18opera android full sup
port 11.1safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
Window.mozInnerScreenX - Web APIs
summary gets the x coordinate of the top-left corner of the window's view
port, in screen coordinates.
... note: this coordinate is re
ported in css pixels, not in hardware pixels.
Window.mozInnerScreenY - Web APIs
summary gets the y coordinate of the top-left corner of the window's view
port, in screen coordinates.
... note: this coordinate is re
ported in css pixels, not in hardware pixels.
Window: resize event - Web APIs
examples window size logger the following example re
ports the window size each time it is resized.
... <p>resize the browser window to fire the <code>resize</code> event.</p> <p>window height: <span id="height"></span></p> <p>window width: <span id="width"></span></p> const heightoutput = document.queryselector('#height'); const widthoutput = document.queryselector('#width'); function re
portwindowsize() { heightoutput.textcontent = window.innerheight; widthoutput.textcontent = window.innerwidth; } window.onresize = re
portwindowsize; addeventlistener equivalent you could set up the event handler using the addeventlistener() method: window.addeventlistener('resize', re
portwindowsize); specifications specification status document object model (dom) level...
Window.stop() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetstopchrome full sup
port yesedge full sup
port 14firefox full sup
port yesie no sup
port noopera full sup
port yessafari full sup
port yeswebview android full ...
...sup
port yeschrome android full sup
port yesfirefox android full sup
port yesopera android full sup
port yessafari ios full sup
port yessamsung internet android full sup
port yeslegend full sup
port full sup
port no sup
port no sup
port ...
WindowOrWorkerGlobalScope.queueMicrotask() - Web APIs
the im
portance of microtasks comes in its ability to perform tasks asynchronously but in a specific order.
... if (typeof window.queuemicrotask !== "function") { window.queuemicrotask = function (callback) { promise.resolve() .then(callback) .catch(e => settimeout(() => { throw e; })); // re
port exceptions }; } specifications specification status comment html living standardthe definition of 'self.queuemicrotask()' in that specification.
Worker.prototype.postMessage() - Web APIs
if the data to be passed to the worker is unim
portant, null or undefined can be passed explicitly.
... transferable objects are instances of classes like arraybuffer, message
port or imagebitmap objects that can be transferred.
WorkerLocation - Web APIs
urlutilsreadonly.host read only is a domstring containing the host, that is the hostname, a ':', and the
port of the url of the script executed in the worker.
... urlutilsreadonly.
port read only is a domstring containing the
port number of the url of the script executed in the worker.
Sending and Receiving Binary Data - Web APIs
note: sup
port for sending arraybuffer objects using xmlhttprequest was added to gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6).
... add information about other browsers' sup
port here.
XMLHttpRequest.responseType - Web APIs
the values sup
ported by responsetype are the following: "" an empty responsetype string is treated the same as "text", the default type.
... ms-stream the response is part of a streaming download; this response type is only allowed for download requests, and is only sup
ported by internet explorer.
XMLHttpRequest - Web APIs
event handlers onreadystatechange as a property of the xmlhttprequest instance is sup
ported in all browsers.
... more recent browsers, including firefox, also sup
port listening to the xmlhttprequest events via standard addeventlistener() apis in addition to setting on* properties to a handler function.
XPathEvaluator.evaluate() - Web APIs
wrong_document_err if the provided context node is from a document that is not sup
ported by the xpathevaluator, a domexception of type wrong_document_err is raised.
... not_sup
ported_err if the provided context node is not a type permitted as an xpath context node or the request type is not permitted by the xpathevaluator, a domexception of type not_sup
ported_err is raised.
XPathExpression.evaluate() - Web APIs
wrong_document_err if the provided context node is from a document that is not sup
ported by the xpathevaluator, a domexception of type wrong_document_err is raised.
... not_sup
ported_err if the provided context node is not a type permitted as an xpath context node or the request type is not permitted by the xpathevaluator, a domexception of type not_sup
ported_err is raised.
XRPermissionDescriptor.mode - Web APIs
im
portant: the immersive-ar mode is defined by the webxr augmented reality module, which is not yet stable and should not be used other than for testing and experimentation.
...inline sessions don't require special hardware and should be avalable on any user agent offering webxr api sup
port.
XRPermissionDescriptor.requiredFeatures - Web APIs
the xrpermissiondescriptor dictionary's requiredfeatures property should be set prior to calling navigator.permissions.query() to a list of webxr features which must be sup
ported for the app to work.
...this is used for environments in which the user can physically move around, and is sup
ported by all instances of xrsession, both immersive and inline, though it's most useful for inline sessions.
XRPose.emulatedPosition - Web APIs
a hand controller that can directly re
port its position would have a value of false for this property as well.
... this information is im
portant because devices whose position is emulated are prone to their offset drifting relative to the real world space over time.
XRReferenceSpace.getOffsetReferenceSpace() - Web APIs
tele
porting or setting the position of the viewer upon first creating a scene, you may need to set the user's position within the 3d world.
... implementing rotation based on non-xr inputs the input controls sup
ported directly by webxr are all dedicated vr or ar input devices.
XRReferenceSpace: reset event - Web APIs
however, if that kind of "tele
portation" is being used, you actually want to avoid jumping the user's position after tracking recovery, this can introduce additional and potentially jarring jumping.
... instead of allowing this to happen, you can integrate the emulatedposition into the tele
portation offset calculated prior to calling getoffsetreferencespace() to create a new reference space whose updated effective origin is adjusted by the distance the viewer's position jumped since the previous frame.
XRReferenceSpace - Web APIs
it expands upon the base class, xrspace, by adding sup
port for several different tracking behaviors as well as to request a new reference space which describes the offset transform between the tracked object and another location in the world.
...this is used for environments in which the user can physically move around, and is sup
ported by all instances of xrsession, both immersive and inline, though it's most useful for inline sessions.
XRReferenceSpaceType - Web APIs
the xrreferencespacetype enumerated type defines the strings which identify the types of reference spaces sup
ported by webxr.
...this is used for environments in which the user can physically move around, and is sup
ported by all instances of xrsession, both immersive and inline, though it's most useful for inline sessions.
XRSession.cancelAnimationFrame() - Web APIs
example in the example below we see code which starts up a webxr session if immersive vr mode is sup
ported.
... const xr = navigator.xr; let requesthandle = null; let xrsession = null; if (xr) { xr.issessionsup
ported('immersive-vr') .then((issup
ported) => { if (issup
ported) { startxr(); } }); } function framecallback(time, xrframe) { xrsession.requestanimationframe(framecallback); // update and render the frame } async function startxr() { xrsession = xr.requestsession("immersive-vr"); if (xrsession) { stopbutton.onclick = stopxr; requesthandle = xrsession.requestanimat...
XRSession.requestAnimationFrame() - Web APIs
note: a real application should check that the device and the user agent sup
port webxr api at all and then that they both sup
port the desired session type via xr.issessionsup
ported().
... // obtain xr object const xr = navigator.xr // request a new xrsession xr.requestsession("inline").then((xrsession) => { xrsession.requestanimationframe((time, xrframe) => { let viewer = xrframe.getviewerpose(xrreferencespace) gl.bindframebuffer(xrwebgllayer.framebuffer) for (xrview of viewer.views) { let xrview
port = xrwebgllayer.getview
port(xrview) gl.view
port(xrview
port.x, xrview
port.y, xrview
port.width, xrview
port.height) // webgl draw calls will now be rendered into the appropriate view
port.
XRSession.requestReferenceSpace() - Web APIs
this is used for environments in which the user can physically move around, and is sup
ported by all instances of xrsession, both immersive and inline, though it's most useful for inline sessions.
... exceptions rather than throwing true exceptions, requestreferencespace() rejects the returned promise with a domexception whose name is found in the list below: notsup
portederror the requested reference space is not sup
ported.
XRViewerPose.views - Web APIs
im
portant: there is no guarantee that the number of views will remain constant over the lifetime of an xrsession.
... let pose = frame.getviewerpose(xrreferencespace); if (pose) { let gllayer = xrsession.renderstate.baselayer; gl.bindframebuffer(gl.framebuffer, gllayer.framebuffer); gl.clearcolor(0, 0, 0, 1); gl.cleardepth(1); gl.clear(gl.color_buffer_bit, gl.depth_buffer_bit); for (let view of pose.views) { let view
port = gllayer.getview
port(view); gl.view
port(view
port.x, view
port.y, view
port.width, view
port.height); /* render the scene for the eye view.eye */ } } passing each view to getview
port() returns the webgl view
port to apply in order to cause the rendered output to be positioned correctly in the framebuffer for renderijng to the corresponding eye on the output device.
XRWebGLLayer.antialias - Web APIs
the read-only xrwebgllayer property antialias is a boolean value which is true if the rendering layer's frame buffer sup
ports antialiasing.
... syntax let antialiasingsup
ported = xrwebgllayer.antialias; value a boolean value which is true if the webgl rendering layer's frame buffer is configured to sup
port antialiasing.
ARIA Screen Reader Implementors Guide - Accessibility
the intention is to strike a balance between providing useful guidance on how to use the markup's intended meaning while sup
porting live regions as an area for screen readers to innovate and compete.
...this is particularly im
portant for changes in data cells, where the column and row headers provide im
portant contextual information.
Using the alertdialog role - Accessibility
fire an accessible alert event using the operating system's accessibility api if it sup
ports it.
...ndex="0"> <h2 id="dialog1title">your login session is about to expire</h2> <p id="dialog1desc">to extend your session, click the ok button</p> <button>ok</button> </div> </div> working examples: tbd notes aria attributes used alertdialog aria-labelledby aria-describedby related aria techniques using the dialog role using the alert role compatibility tbd: add sup
port information for common ua and at product combinations additional resources ...
Using the aria-labelledby attribute - Accessibility
to improve compatibility with user agents that do not sup
port aria, you can use aria-labelledby with the <label> element (using the for attribute).
...</div> notes the most common accessibility api mapping for a label is the accessible name property used by aria roles all elements of the base markup related aria techniques using the aria-label attribute using the aria-describedby attribute compatibility tbd: add sup
port information for common ua and at product combinations additional resources wai-aria specification for aria-labelledby ...
Using the aria-required attribute - Accessibility
html5 now has the required attribute, but aria-required is still useful for user agents that do not yet sup
port html5.
...> <br/> <label for="streetaddress">street address:</label> <input id="streetaddress" type="text" /> </form> working examples: tooltip example (includes the use of the aria-required attribute) notes used in aria roles combobox gridcell listbox radiogroup spinbutton textbox tree related aria techniques using the aria-invalid attribute compatibility tbd: add sup
port information for common ua and at product combinations additional resources wai-aria specification for aria-required wai-aria authoring practices for forms constraint validation in html5 ...
Using the article role - Accessibility
the aria article role is similar to the html5 article element; however the article element should still be given the aria role of article, since not all assistive technologies sup
port html5 yet.
...lass="content"> <p>a very interesting post</p> </section> <section class="comments"> <div class="comment" role="article"> <p>meaningful comment</p> </div> <div class="comment" role="article"> <p>positive comment</p> </div> </section> </article> notes aria attributes used related aria techniques aria techniques - list of roles compatibility tbd: add sup
port information for common ua and at product combinations additional resources wai-aria specification for the article role ...
Using the group role - Accessibility
fire an accessible group event using the operating system's accessibility api if it sup
ports it.
... aria attributes used group related aria techniques region role compatibility tbd: add sup
port information for common ua and at product combinations additional resources aria authoring practices – accessible name guidance by role – group ...
Using the log role - Accessibility
fire an accessible log event using the operating system's accessibility api if it sup
ports it.
... aria attributes used log related aria techniques marquee role compatibility tbd: add sup
port information for common ua and at product combinations additional resources aria best practices – mplementing live regions: http://www.w3.org/tr/wai-aria-practices/#liveregions ...
ARIA: Complementary role - Accessibility
the complementary landmark role is used to designate a sup
porting section that relates to the main content, yet can stand alone when separated.
... working draft screen reader sup
port tbd ...
ARIA: feed role - Accessibility
keyboard interaction sup
porting the following, or a similar, interface is recommended when focus is inside the feed: page down: move focus to next article.
... recommendation screen reader sup
port coming soon ...
ARIA: form role - Accessibility
im
portant: use an html <form> element to contain your form controls, rather than the aria form role, unless you have a very good reason.
... working draft screen reader sup
port tbd ...
ARIA: grid role - Accessibility
even though both data grids and layout grids employ the same aria roles, states, and properties, differences in their content and purpose surface factors that are im
portant to consider in keyboard interaction design.
... working draft screen reader sup
port tbd ...
ARIA: List role - Accessibility
group a collection of related objects, limited to list items when nested in a list, not im
portant enough to have their own place in a pages table of contents.
... recommendation screen reader sup
port tbd ...
ARIA: Listitem role - Accessibility
group a collection of related objects, limited to list items when nested in a list, not im
portant enough to have their own place in a pages table of contents.
... recommendation screen reader sup
port tbd ...
ARIA: Main role - Accessibility
screen readers use landmark roles to provide keyboard navigation to im
portant sections of a page.
... working draft screen reader sup
port tbd ...
ARIA: search role - Accessibility
best practices prefer html using the <form> element in conjunction with a declaration of role="search" will provide the largest amount of sup
port.
... working draft screen reader sup
port tbd ...
ARIA: dialog role - Accessibility
it is im
portant for developers to ensure that content outside of the modal dialog is inaccessible to all users while the modal dialog is active.
... recommendation screen reader sup
port coming soon ...
ARIA: heading role - Accessibility
although theoretically you can go higher, and some screen readers may sup
port it, the results can be unpredictable with other browser/screen reader combinations.
... screen reader sup
port tbd ...
WAI-ARIA Roles - Accessibility
to be sup
ported, the cell must be nested in an element with the role of row.aria: checkbox rolethe checkbox role is used for checkable interactive controls.
... elements containing role="checkbox" must also include the aria-checked attribute to expose the checkbox's state to assistive technology.aria: comment rolethe comment landmark role semantically denotes a comment/reaction to some content on the page, or to a previous comment.aria: complementary rolethe complementary landmark role is used to designate a sup
porting section that relates to the main content, yet can stand alone when separated.
Accessibility FAQ - Accessibility
mozilla accessibility project what are some of the built-in accessibility features that are currently sup
ported in the browser?
... firefox 3 accessibility features (archive.org) which assistive technologies sup
port firefox and thunderbird?
Keyboard - Accessibility
note: one im
portant exception to this rule is if the element has role="document" applied to it, inside an interactive context (such as role="application").
... see also tabindex global html attribute global event handlers: onkeydown global event handlers: onkeyup interactive elements must be able to be activated using a keyboard if the user can interact with an element using touch or a pointing device, then the element should also sup
port interacting using the keyboard.
Text labels and names - Accessibility
you can change your details at any time in the user account section.</p> <button>close</button> </div> see also role="dialog" role="alertdialog" aria-label aria-labelledby wai-aria: dialog role dialog authoring practices documents must have a title it is im
portant on each html document to include a <title> that describes the page's purpose.
...sup
port for it may be dropped by browsers in the future.
Understandable - Accessibility
success criteria how to conform to the criteria practical resource 3.3.1 error identification (a) when a user is filling out a form or choosing between options, any error that is detected should be clearly re
ported to the user, along with the form control that the error relates to.
... data is checked for errors, and the user is given an op
portunity to correct them.
-webkit-mask-composite - CSS: Cascading Style Sheets
the pixels of the source mask image are rendered only if they overlap a nontransparent
portion of the destination mask image.
...the pixels of the destination mask image are rendered only if they overlap a nontransparent
portion of the destination mask image.
::-moz-range-progress - CSS: Cascading Style Sheets
the ::-moz-range-progress css pseudo-element is a mozilla extension that represents the lower
portion of the track (i.e., groove) in which the indicator slides in an <input> of type="range".
... this
portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob).
::backdrop - CSS: Cascading Style Sheets
the ::backdrop css pseudo-element is a box the size of the view
port which is rendered immediately beneath any element being presented in full-screen mode.
... /* backdrop is only displayed when dialog is opened with dialog.showmodal() */ dialog::backdrop { background: rgba(255,0,0,.25); } all full-screen elements are placed in a last-in/first out (lifo) stack in the top layer, which is a special layer in the view
port which is always rendered last (and therefore on top) before drawing the view
port's contents to the screen.
:defined - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:definedchrome full sup
port 54edge full sup
port 79firefox full sup
port 63ie no sup
port noopera full sup
port 41safari full sup
port 10webview android full supp...
...ort 54chrome android full sup
port 54firefox android full sup
port 63opera android full sup
port 41safari ios full sup
port 10samsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
port ...
:focus-visible - CSS: Cascading Style Sheets
note that firefox sup
ports similar functionality through an older, prefixed pseudo-class — :-moz-focusring.
... <custom-button tabindex="0" role="button">click me</custom-button> custom-button { display: inline-block; margin: 10px; } custom-button:focus { /* provide a fallback style for browsers that don't sup
port :focus-visible */ outline: none; background: lightgrey; } custom-button:focus:not(:focus-visible) { /* remove the focus indicator on mouse-focus for browsers that do sup
port :focus-visible */ background: transparent; } custom-button:focus-visible { /* draw a very noticeable focus style for keyboard-focus on browsers that do sup
port :focus-visible */ outline: 4px dashe...
:host-context() - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:host-context()chrome full sup
port 54edge full sup
port 79firefox no sup
port nonotes no sup
port nonotes notes see bug 1082060.ie no sup
port noopera full sup
port 41safari ...
... no sup
port nowebview android full sup
port 54chrome android full sup
port 54firefox android no sup
port nonotes no sup
port nonotes notes see bug 1082060.opera android full sup
port 41safari ios no sup
port nosamsung internet android full sup
port 6.0legend full sup
port full sup
port no sup
port no sup
portsee implementation notes.see implementation notes.
:link - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:linkchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 3opera full sup
port 3.5safari full sup
port 1webview android full suppo...
...rt 1.5chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 3.2samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
:not() - CSS: Cascading Style Sheets
the ability to list more than one selector is experimental and not yet widely sup
ported.
...w: 2px 2px 3px gold; } /* <p> elements that are not in the class `.fancy` */ p:not(.fancy) { color: green; } /* elements that are not <p> elements */ body :not(p) { text-decoration: underline; } /* elements that are not <div> and not <span> elements */ body :not(div):not(span) { font-weight: bold; } /* elements that are not `.crazy` or `.fancy` */ /* note that this syntax is not well sup
ported yet.
font-stretch - CSS: Cascading Style Sheets
however some fonts, called variable fonts, can sup
port a range of stretching with more or less fine granularity, and this can give the designer a much closer degree of control over the chosen weight.
... related at-rule@font-faceinitial valuenormalcomputed valueas specified formal syntax <font-stretch-absolute>{1,2}where <font-stretch-absolute> = normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | <percentage> examples setting a percentage range for font-stretch the following find a local open sans font or im
port it, and allow using the font for normal, semi-condensed and semi-expanded states.
font-weight - CSS: Cascading Style Sheets
however some fonts, called variable fonts, can sup
port a range of weights with more or less fine granularity, and this can give the designer a much closer degree of control over the chosen weight.
...valueas specified formal syntax <font-weight-absolute>{1,2}where <font-weight-absolute> = normal | bold | <number <a href="/docs/css/value_definition_syntax#brackets" title="brackets: enclose several entities, combinators, and multipliers to transform them as a single component">[1,1000]> examples setting normal font weight in a @font-face rule the following finds a local open sans font or im
port it, and allows using the font for normal font weights.
forced-colors - CSS: Cascading Style Sheets
note: this feature is not sup
ported by any user agent and its specifics are subject to change.
... user preferences currently no user agent implements this feature, although various operating systems do sup
port such preferences and if this media query is ever implemented user agents will likely rely on the settings provided by the operating system in use.
prefers-reduced-data - CSS: Cascading Style Sheets
note: this feature is not sup
ported by any user agent and its specifics are subject to change.
... user preferences currently no user agent implements this feature, although various operating systems do sup
port such preferences and if this media query is ever implemented user agents will likely rely on the settings provided by the operating system.
max-zoom - CSS: Cascading Style Sheets
the max-zoom css descriptor sets the maximum zoom factor of a document defined by the @view
port at-rule.
... formal definition related at-rule@view
portinitial valueautopercentagesthe zoom factor itselfcomputed valueauto, or a non-negative number or percentage as specified formal syntax auto | <number> | <percentage> examples setting max-zoom @view
port { max-zoom: 1.5; } specifications specification status comment css device adaptationthe definition of '"max-zoom" descriptor' in that specification.
min-zoom - CSS: Cascading Style Sheets
the min-zoom css descriptor sets the minimum zoom factor of a document defined by the @view
port at-rule.
... formal definition related at-rule@view
portinitial valueautopercentagesthe zoom factor itselfcomputed valueauto, or a non-negative number or percentage as specified formal syntax auto | <number> | <percentage> examples setting min zoom factor @view
port { min-zoom: 2.0; } specifications specification status comment css device adaptationthe definition of '"min-zoom" descriptor' in that specification.
user-zoom - CSS: Cascading Style Sheets
the user-zoom css descriptor controls whether or not the user can change the zoom factor of a document defined by @view
port.
... mdn understanding wcag, guideline 1.4 explanations understanding success criterion 1.4.4 | understanding wcag 2.0 formal definition related at-rule@view
portinitial valuezoompercentagesrefer to the size of bounding boxcomputed valueas specified formal syntax zoom | fixed examples disabling user zoom @view
port { user-zoom: fixed; } specifications specification status comment css device adaptationthe definition of '"user-zoom" descriptor' in that specification.
zoom - CSS: Cascading Style Sheets
the zoom css descriptor sets the initial zoom factor of a document defined by the @view
port at-rule.
... formal definition related at-rule@view
portinitial valueautopercentagesthe zoom factor itselfcomputed valueauto, or a non-negative number or percentage as specified formal syntax auto | <number> | <percentage> examples setting view
port zoom factor @view
port { zoom: 2.0; } specifications specification status comment css device adaptationthe definition of '"zoom" descriptor' in that specification.
Alternative style sheets - CSS: Cascading Style Sheets
internet explorer also sup
ports this feature (beginning with ie 8), also accessed from view > page style.
...this tells the browser which style sheet title should be selected by default, and makes that default selection apply in browsers that do not sup
port alternate style sheets.
Coordinate systems - CSS: Cascading Style Sheets
client the "client" coordinate system uses as its origin the top-left corner of the view
port or browsing context in which the event occurred.
... displaying the coordinates as we'll see in the html, the inner box (the one we're watching for events on) contains several paragraphs; one for each of the four coordinate systems we'll be re
porting on.
Using CSS animations - CSS: Cascading Style Sheets
because these two times are so im
portant, they have special aliases: from and to.
... if we wanted any custom styling on the <p> element to appear in browsers that don’t sup
port css animations, we would include it here as well; however, in this case we don’t want any custom styling other than the animation effect.
CSS Animations - CSS: Cascading Style Sheets
reference css properties animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function css at-rules @keyframes guides detecting css animation sup
port describes a technique for detecting if a browser sup
ports css animations.
...currently offers a technique for replaying an animation which has already run through to completion, which the api doesn't sup
port inherently.
Box alignment for block, absolutely positioned and table layout - CSS: Cascading Style Sheets
note: at the time of writing (may 2018), there is no real sup
port for the box alignment properties in block layout.
... aligning in these layout methods today as we do not currently have browser sup
port for box alignment in block layout, your options for alignment are either to use one of the existing alignment methods or, to make even a single item inside a container a flex item in order to use the alignment properties as specified in flexbox.
CSS Multi-column Layout - CSS: Cascading Style Sheets
css multi-column layout is a module of css that adds sup
port for multi-column layouts.
... sup
port is included for establishing the number of columns in a layout, as well as how content should flow from column to column, gap sizes between columns, and column dividing lines (known as column rules) along with their appearance.
CSS Containment - CSS: Cascading Style Sheets
note: style containment is "at-risk" in the spec and may not be sup
ported everywhere (it's not currently sup
ported in firefox).
... to gain as much containment as possible use contain: strict, which behaves the same as contain: size layout paint, or perhaps the following to also add style containment in browsers that sup
port it: contain: strict; contain: strict style; reference css properties contain external resources an introduction to css containment ...
CSS Device Adaptation - CSS: Cascading Style Sheets
css device adaptation is a module of css that lets you define the size, zoom factor, and orientation of the view
port.
... reference at-rules @view
port specifications specification status comment css device adaptation working draft initial definition ...
Basic Concepts of grid layout - CSS: Cascading Style Sheets
the remaining space is divided into three and assigned in pro
portion to the two flexible tracks.
...at the present time, some browsers do not sup
port the unprefixed versions which is why the live examples in this guide use grid- prefixed versions.
Box alignment in CSS Grid Layout - CSS: Cascading Style Sheets
if you have ever centered your layout in the view
port, by setting the right and left margin of the container block to auto, you know that an auto margin absorbs all of the available space.
...this will be im
portant to understand, if you develop sites that are then displayed in multiple languages, or if you want to mix languages or writing modes in a design.
CSS grids, logical values, and writing modes - CSS: Cascading Style Sheets
in these guides, i have already touched on an im
portant feature of grid layout: the sup
port for different writing modes that is built into the specification.
...this spec details how we can use these different writing modes in css, not just for the sup
port of languages that have a different writing mode to english, but also for creative purposes.
Relationship of grid layout to other layout methods - CSS: Cascading Style Sheets
f; } <div class="wrapper"> <div class="box1">one</div> <div class="box2">two</div> <div class="box3">three</div> </div> .wrapper { display: grid; grid-template-columns: repeat(3,1fr); align-items: end; grid-auto-rows: 200px; } .box1 { align-self: stretch; } .box2 { align-self: start; } the fr unit and flex-basis we have already seen how the fr unit works to assign a pro
portion of available space in the grid container to our grid tracks.
...in our case, if we remove position: relative from the wrapper above, positioning context is from the view
port, as shown in this image.
Consistent list indentation - CSS: Cascading Style Sheets
in order to understand why this is the case, and more im
portantly how to avoid the problem altogether, it's necessary to examine the details of list construction.
... visually, the markers are outside the content area of the <ul>, but that's not the im
portant part here.
Shapes from box values - CSS: Cascading Style Sheets
the box values allowable as a shape value are: content-box padding-box border-box margin-box the border-radius values are also sup
ported, this means that you can have something in your page with a curved border, and your shape can follow the created shape.
... when to use the box values using box values is a simple way to create shapes, however this is by nature only going to work with very simple shapes that can be defined using the well-sup
ported border-radius property.
Using CSS transitions - CSS: Cascading Style Sheets
before we look at code snippets, you might want to take a look at the live demo (assuming your browser sup
ports transitions).
...the relevant
portions are shown here: a { color: #fff; background-color: #333; transition: all 1s ease-out; } a:hover, a:focus { color: #333; background-color: #fff; } this css establishes the look of the menu, with the background and text colors both changing when the element is in its :hover and :focus states.
Pseudo-elements - CSS: Cascading Style Sheets
however, since this distinction was not present in older versions of the w3c spec, most browsers sup
port both syntaxes for the original pseudo-elements.
... index of standard pseudo-elements ::after (:after) ::backdrop ::before (:before) ::cue ::cue-region ::first-letter (:first-letter) ::first-line (:first-line) ::grammar-error ::marker ::part() ::placeholder ::selection ::slotted() ::spelling-error browser lowest version sup
port of internet explorer 8.0 :pseudo-element 9.0 :pseudo-element ::pseudo-element firefox (gecko) 1.0 (1.0) :pseudo-element 1.0 (1.5) :pseudo-element ::pseudo-element opera 4.0 :pseudo-element 7.0 :pseudo-element ::pseudo-element safari (webkit) 1.0 (85) :pseudo-element ::pseudo-element specifications specification status comment css level 1 r...
Selector list - CSS: Cascading Style Sheets
#main, .content, article { font-size: 1.1em; } selector list invalidation a downside to using selector lists is that the following aren't equivalent: h1 { font-family: sans-serif } h2:maybe-unsup
ported { font-family: sans-serif } h3 { font-family: sans-serif } h1, h2:maybe-unsup
ported, h3 { font-family: sans-serif } this is because a single unsup
ported selector in a selector list invalidates the whole rule.
... h1 { font-family: sans-serif } h2:maybe-unsup
ported { font-family: sans-serif } h3 { font-family: sans-serif } :is(h1, h2:maybe-unsup
ported, h3) { font-family: sans-serif } specifications specification status comment selectors level 4the definition of 'selector lists' in that specification.
Shorthand properties - CSS: Cascading Style Sheets
this works well when these properties use values of different types, as the order has no im
portance, but this does not work as easily when several properties can have identical values.
... note: there is also a newer value, revert, which has limited browser sup
port.
Cubic Bezier Generator - CSS: Cascading Style Sheets
of 0.1 tick on the rulers var scaling; //limitation: scaling is computed once: if canvas.height/canvas.width change it won't be recalculated var dragsm = 0; // drag state machine: 0 = nodrag, others = object being dragged function initcanvas() { // get the canvas element using the dom var canvas = document.getelementbyid('bezier'); // make sure we don't execute when canvas isn't sup
ported if (canvas.getcontext) { // use getcontext to use the canvas for drawing var ctx = canvas.getcontext('2d'); scaling = math.min(canvas.height - rulers - margin, canvas.width - rulers - margin); canvas.onmousedown = mousedown; canvas.onmouseup = mouseup; } else { alert('you need safari or firefox 1.5+ to see this demo.'); } } function...
...result + 0.5 : result; } function drawbeziercurve(x1, y1, x2, y2) { // get the canvas element using the dom var canvas = document.getelementbyid('bezier'); // make sure we don't execute when canvas isn't sup
ported if (canvas.getcontext) { // use getcontext to use the canvas for drawing var ctx = canvas.getcontext('2d'); // clear canvas ctx.clearrect(0, 0, canvas.width, canvas.height); // draw the rulers ctx.beginpath(); ctx.strokestyle = "black"; // draw the y axis ctx.moveto(cx(0), cy(0)); ctx.lineto(cx(1), cy(0));...
background - CSS: Cascading Style Sheets
this is im
portant primarily for screen readers, as a screen reader will not announce its presence and therefore convey nothing to its users.
... candidate recommendation the shorthand property has been extended to sup
port multiple backgrounds and the new background-size, background-origin and background-clip properties.
border-bottom-width - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-bottom-widthchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 4opera full sup
port 3.5safari full sup
port 1webview android full suppo...
...rt 2.3chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port see also the other border-width-related css properties: border-left-width, border-right-width, border-top-width, and border-width.
border-left - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-leftchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 4opera full sup
port 3.5safari full sup
port 1webview android full suppo...
...rt 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
border-right - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-rightchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 5.5opera full sup
port 9.2safari full sup
port 1webview android full sup...
...
port ≤37chrome android full sup
port 18firefox android full sup
port 14opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
border-top - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetborder-topchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 4opera full sup
port 3.5safari full sup
port 1webview android full suppo...
...rt 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
box-flex - CSS: Cascading Style Sheets
if it is greater than 0, the box grows to fill a pro
portion of the available space.
... notes the containing box allocates the available extra space in pro
portion to the flex value of each of the content elements.
clip-path - CSS: Cascading Style Sheets
view-box uses the nearest svg view
port as the reference box.
... if a viewbox attribute is specified for the element creating the svg view
port, the reference box is positioned at the origin of the coordinate system established by the viewbox attribute and the dimension of the size of the reference box is set to the width and height values of the viewbox attribute.
conic-gradient() - CSS: Cascading Style Sheets
browsers sup
porting conic gradients also accept percent values, with 100% equaling 360 degrees, but this is not in the specification.
...this is im
portant primarily for screen readers, as a screen reader will not announce its presence and therefore convey nothing to its users.
contain - CSS: Cascading Style Sheets
note that this value is marked "at-risk" in the spec and may not be sup
ported everywhere.
... <article> <h2>another heading of another article</h2> <img src="graphic.jpg" alt="photo"> <p>more content here.</p> </article> each <article> and <img> is given a border, and the images are floated: img { float: left; border: 3px solid black; } article { border: 1px solid black; } float interference if we were to insert another image at the bottom of the first article, a large
portion of the dom tree may be re-laid out or repainted, and this would also interfere with the layout of the second article: <h1>my blog</h1> <article> <h2>heading of a nice article</h2> <p>content here.</p> <img src="i-just-showed-up.jpg" alt="social"> </article> <article> <h2>another heading of another article</h2> <img src="graphic.jpg" alt="photo"> <p>more content here.</p> </article...
counter() - CSS: Cascading Style Sheets
it is generally used with pseudo-elements, but can be used, theoretically, anywhere a <string> value is sup
ported.
... note: the counter() function can be used with any css property, but sup
port for properties other than content is experimental, and sup
port for the type-or-unit parameter is sparse.
counters() - CSS: Cascading Style Sheets
it is generally used with pseudo-elements, but can be used, theoretically, anywhere a <string> value is sup
ported.
... note: the counters() function can be used with any css property, but sup
port for properties other than content is experimental, and sup
port for the type-or-unit parameter is sparse.
cursor - CSS: Cascading Style Sheets
more than one <url> may be provided as fallbacks, in case some cursor image types are not sup
ported.
...cursor changes using images which are outside the size range sup
ported by the browser will generally just be ignored.
direction - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdirectionchrome full sup
port 2edge full sup
port 12firefox full sup
port 1ie full sup
port 5.5opera full sup
port 9.2safari full sup
port 1webview android full sup...
...
port 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
empty-cells - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetempty-cellschrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 8opera full sup
port 4safari full sup
port 1.2webview android full suppo...
...rt 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 10.1safari ios full sup
port 3.1samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
font-weight - CSS: Cascading Style Sheets
however some fonts, called variable fonts, can sup
port a range of weights with a more or less fine granularity, and this can give the designer a much closer degree of control over the chosen weight.
... for the example below to work, you'll need a browser that sup
ports the css fonts level 4 syntax in which font-weight can be any number between 1 and 1000.
grid-template-columns - CSS: Cascading Style Sheets
each <flex>-sized track takes a share of the remaining space in pro
portion to its flex factor.
... subgrid the subgrid value indicates that the grid will adopt the spanned
portion of its parent grid in that axis.
grid-template-rows - CSS: Cascading Style Sheets
each <flex>-sized track takes a share of the remaining space in pro
portion to its flex factor.
... subgrid the subgrid value indicates that the grid will adopt the spanned
portion of its parent grid in that axis.
justify-content - CSS: Cascading Style Sheets
stretch if the combined size of the items along the main axis is less than the size of the alignment container, any auto-sized items have their size increased equally (not pro
portionally), while still respecting the constraints imposed by max-height/max-width (or equivalent functionality), so that the combined size exactly fills the alignment container along the main axis.
... note: stretch is not sup
ported by flexible boxes (flexbox).
line-break - CSS: Cascading Style Sheets
anywhere there is a soft wrap op
portunity around every typographic character unit, including around any punctuation character or preserved white spaces, or in the middle of words, disregarding any prohibition against line breaks, even those introduced by characters with the gl, wj, or zwj character class or mandated by the word-break property.
... the different wrapping op
portunities must not be prioritized.
mask-border-mode - CSS: Cascading Style Sheets
formal definition initial valuealphaapplies toall elements; in svg, it applies to container elements excluding the defs element and all graphics elementsinheritednocomputed valueas specifiedanimation typediscrete formal syntax luminance | alpha examples basic usage this property doesn't yet seem to have sup
port anywhere.
... when browsers sup
port it, it will specify the type of blending mode used for the mask border — luminance or alpha: mask-border-mode: luminance; mask-border-mode: alpha; specifications specification status comment css masking module level 1the definition of 'mask-border-mode' in that specification.
mask-border - CSS: Cascading Style Sheets
div { width: 200px; background-color: lavender; border: 18px solid salmon; padding: 10px; /* prefixed longhand properties currently sup
ported in chromium -webkit-mask-box-image-source: url(https://udn.realityripple.com/samples/2d/fd08a3134c.png); -webkit-mask-box-image-slice: 30 fill; -webkit-mask-box-image-width: 20px; -webkit-mask-box-image-repeat: round; -webkit-mask-box-image-outset: 1px; */ /* prefixed shorthand property currently sup
ported in chromium */ -webkit-mask-box-image: url("https://udn.realit...
...yripple.com/samples/2d/fd08a3134c.png") /* source */ 30 fill / /* slice */ 20px / /* width */ 1px /* outset */ round; /* repeat */ /* updated standard shorthand property, not sup
ported anywhere yet */ mask-border: url("https://udn.realityripple.com/samples/2d/fd08a3134c.png") /* source */ 30 fill / /* slice */ 20px / /* width */ 1px /* outset */ round; /* repeat */ } result specifications specification status comment css masking module level 1the definition of 'mask-border' in that specification.
mask-clip - CSS: Cascading Style Sheets
view-box uses the nearest svg view
port as reference box.
... if a viewbox attribute is specified for the element creating the svg view
port, the reference box is positioned at the origin of the coordinate system established by the viewbox attribute and the dimension of the reference box is set to the width and height values of the viewbox attribute.
mask-origin - CSS: Cascading Style Sheets
view-box uses the nearest svg view
port as reference box.
... if a viewbox attribute is specified for the element creating the svg view
port, the reference box is positioned at the origin of the coordinate system established by the viewbox attribute and the dimension of the reference box is set to the width and height values of the viewbox attribute.
orphans - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetorphanschrome full sup
port 25edge full sup
port 12firefox no sup
port noie full sup
port 8opera full sup
port 9.2safari full sup
port 1.3webview android full sup...
...
port ≤37chrome android full sup
port 25firefox android no sup
port noopera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.5legend full sup
port full sup
port no sup
port no sup
port see also widows paged media ...
outline-offset - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetoutline-offsetchrome full sup
port 1edge full sup
port 15firefox full sup
port 1.5ie no sup
port noopera full sup
port 9.5safari full sup
port 1.2webview android full su...
...p
port 37chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port no sup
port no sup
port ...
overflow-wrap - CSS: Cascading Style Sheets
soft wrap op
portunities introduced by the word break are considered when calculating min-content intrinsic sizes.
... break-word the same as the anywhere value, with normally unbreakable words allowed to be broken at arbitrary points if there are no otherwise acceptable break points in the line, but soft wrap op
portunities introduced by the word break are not considered when calculating min-content intrinsic sizes.
overflow - CSS: Cascading Style Sheets
no scrollbars are provided, and no sup
port for allowing the user to scroll (such as by dragging or using a scroll wheel) is allowed.
...only sup
ported in webkit-based (e.g., safari) and blink-based (e.g., chrome or opera) browsers.
page-break-after - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpage-break-afterchrome full sup
port 1edge full sup
port 12firefox full sup
port 1notes full sup
port 1notes notes the values avoid, left, and right are unsup
ported.ie full sup
port 4opera full sup
port ...
... 7safari full sup
port 1.2webview android full sup
port 37chrome android full sup
port 18firefox android full sup
port 4notes full sup
port 4notes notes the values avoid, left, and right are unsup
ported.opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
portsee implementation notes.see impl...
page-break-before - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpage-break-beforechrome full sup
port 1edge full sup
port 12firefox full sup
port 1notes full sup
port 1notes notes the values avoid, left, and right are unsup
ported.ie full sup
port 4opera full sup
port ...
... 7safari full sup
port 1.2webview android full sup
port 37chrome android full sup
port 18firefox android full sup
port 4notes full sup
port 4notes notes the values avoid, left, and right are unsup
ported.opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
portsee implementation notes.see impl...
paint() - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpaint()chrome full sup
port 65edge full sup
port 79firefox no sup
port noie no sup
port noopera full sup
port 52safari no sup
port nowebview android full sup
port ...
... 65chrome android full sup
port 65firefox android no sup
port noopera android full sup
port 47safari ios no sup
port nosamsung internet android full sup
port 9.2legend full sup
port full sup
port no sup
port no sup
port see also paintworklet css painting api using the css painting api <image> canvas ...
place-content - CSS: Cascading Style Sheets
im
portant: if the second value is not present, the first value is used for both, provided it is a valid value for both.
... stretch if the combined size of the items is less than the size of the alignment container, any auto-sized items have their size increased equally (not pro
portionally), while still respecting the constraints imposed by max-height/max-width (or equivalent functionality), so that the combined size exactly fills the alignment container formal definition initial valuenormalapplies tomulti-line flex containersinheritednocomputed valueas specifiedanimation typediscrete formal syntax <'align-content'> <'justify-content'>?
<position> - CSS: Cascading Style Sheets
candidate recommendation relists links to both definitions: if css backgrounds and borders module level 3 is sup
ported, its definition of <position> must also be used.
... candidate recommendation defines <position> explicitly and extends it to sup
port offsets from any edge.
repeating-conic-gradient() - CSS: Cascading Style Sheets
browsers sup
porting repeating conic gradients also accept percent values, with 100% equaling 360 degrees, but this is not in the specification.
...this is im
portant primarily for screen readers, as a screen reader will not announce its presence and therefore convey nothing to its users.
right - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetrightchrome full sup
port 1edge full sup
port 12firefox full sup
port 1ie full sup
port 5.5opera full sup
port 5safari full sup
port 1webview android full suppo...
...rt 1chrome android full sup
port 18firefox android full sup
port 4opera android full sup
port 14safari ios full sup
port 1samsung internet android full sup
port 1.0legend full sup
port full sup
port ...
scroll-margin - CSS: Cascading Style Sheets
the value specified for scroll-margin determines how much of the page that's primarily outside the snap
port should remain visible.
... thus, the scroll-margin values represent outsets defining the scroll snap area that is used for snapping this box to the snap
port.
scroll-snap-destination - CSS: Cascading Style Sheets
the scroll-snap-destination css property defines the position in x and y coordinates within the scroll container's visual view
port which element snap points align with.
... /* <position> value */ scroll-snap-destination: 400px 600px; /* global values */ scroll-snap-destination: inherit; scroll-snap-destination: initial; scroll-snap-destination: unset; syntax values <position> specifies the offset of the snap destination from the start edge of the scroll container’s visual view
port.
scrollbar-color - CSS: Cascading Style Sheets
auto default platform rendering for the track
portion of the scrollbar, in the absence of any other related scrollbar color properties.
... note: user agents must apply any scrollbar-color value set on the root element to the view
port.
text-combine-upright - CSS: Cascading Style Sheets
] examples digits the digits value requires less markup than the all value when digits are being combined, but it is currently not very widely sup
ported by browsers.
... html <p lang="ja" class="exampletext">平成20年4月16日に</p> css .exampletext { writing-mode: vertical-lr; text-combine-upright: digits 2; font: 36px serif; } results screenshotlive sample all the all value requires markup around every piece of horizontal text, but it is currently sup
ported by more browsers than the digits value.
text-decoration-skip - CSS: Cascading Style Sheets
note: most other browsers are converging on sup
porting the simpler text-decoration-skip-ink property.
...(this is im
portant in chinese, where underlining is a form of punctuation.) box-decoration the text decoration is skipped over the box's margin, border, and padding areas.
text-decoration - CSS: Cascading Style Sheets
be careful when removing the text decoration on anchors since users often depend on the underline to denote hyperlinks.</p> <p class="underover">this text has lines above <em>and</em> below it.</p> <p class="thick">this text has a really thick purple underline in sup
porting browsers.</p> <p class="blink">this text might blink for you, depending on the browser you use.</p> specifications specification status comment css text decoration module level 4 working draft adds text-decoration-thickness; note that this isn't yet officially part of the shorthand — this is as yet unspecified.
...added sup
port for the value of text-decoration-style.
text-overflow - CSS: Cascading Style Sheets
to clip at the transition between characters you can specify text-overflow as an empty string, if that is sup
ported in your target browsers: text-overflow: '';.
...ntax [ clip | ellipsis | <string> ]{1,2} examples css p { width: 200px; border: 1px solid; padding: 2px 5px; /* both of the following are required for text-overflow */ white-space: nowrap; overflow: hidden; } .overflow-visible { white-space: initial; } .overflow-clip { text-overflow: clip; } .overflow-ellipsis { text-overflow: ellipsis; } .overflow-string { /* not sup
ported in most browsers, see the 'browser compatibility' section below */ text-overflow: " [..]"; } html <p class="overflow-visible">lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> <p class="overflow-clip">lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> <p class="overflow-ellipsis">lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> <p class="overflow-st...
text-rendering - CSS: Cascading Style Sheets
but the geometricprecision property — when fully sup
ported by the rendering engine — lets you scale your text fluidly.
... for large scale factors, you might see less-than-beautiful text rendering, but the size is what you would expect—neither rounded up nor down to the nearest font size sup
ported by windows or linux.
text-transform - CSS: Cascading Style Sheets
note: sup
port for language-specific cases varies between browsers, so check the browser compatibility table.
...the capitalize line in the browser compatibility table contains the version the different engines started to sup
port this now precisely-defined behavior.
transform-box - CSS: Cascading Style Sheets
view-box the nearest svg view
port is used as the reference box.
... if a viewbox attribute is specified for the svg view
port creating element, the reference box is positioned at the origin of the coordinate system established by the viewbox attribute, and the dimension of the reference box is set to the width and height values of the viewbox attribute.
url() - CSS: Cascading Style Sheets
} @im
port url("https://www.example.com/style.css"); @namespace url(http://www.w3.org/1999/xhtml); relative urls, if used, are relative to the url of the stylesheet (not to the url of the web page).
... <url-modifier> in the future, the url() function may sup
port specifying a modifier, an identifier or a functional notation, which alters the meaning of the url string.this is not sup
ported and not fully defined in the specification.
will-change - CSS: Cascading Style Sheets
im
portant: will-change is intended to be used as a last resort, in order to try to deal with existing performance problems.
...so it is im
portant to give the browser some time to actually do the optimizations.
regexp:match() - EXSLT
returns a node set of match elements, each of which has the string value equal to a
portion of the first parameter string as captured by the regular expression.
... if the match isn't a global one, the first match element has the value of the
portion of the string matched by the entire regular expression.
Event reference
messageerror messageevent message
port, web workers, broadcast channel, window a message error is raised when a message is received by an object.
... orientationchange event screen orientation the orientation of the device (
portrait/landscape) has changed.
Ajax - Developer guides
asynchronous javascript and xml, while not a technology in itself, is a term coined in 2005 by jesse james garrett, that describes a "new" approach to using a number of existing technologies together, including html or xhtml, css, javascript, dom, xml, xslt, and most im
portantly the xmlhttprequest object.
... html in xmlhttprequest the xmlhttprequest specification adds html parsing sup
port to xmlhttprequest, which originally sup
ported only xml parsing.
Video player styling basics - Developer guides
as mentioned in the previous article, there is a fallback provided for browsers that do not sup
port the <progress> element; this also needs to be styled appropriately: .controls progress[data-state="fake"] { background:#e6e6e6; height:65%; } .controls progress span { width:0%; height:100%; display:inline-block; background-color:#2a84cd; } a .data-state class is also used here when a <progress> element is being "faked"; when it's in this state the background colour needs to ...
... control visibility the first change is simple: the data-state for showing the video controls when javascript is available to the browser now needs to be set: // display the user defined video controls videocontrols.setattribute('data-state', 'visible'); progress bar sup
port a check also needs to be made to set up the "fake" progress bar if the browser doesn't sup
port the <progress> element: var sup
portsprogress = (document.createelement('progress').max !== undefined); if (!sup
portsprogress) progress.setattribute('data-state', 'fake'); button functionality this section looks at the javascript required for implementing the button functionality.
Orientation and motion data explained - Developer guides
summary when using orientation and motion events, it's im
portant to understand what the values you're given by the browser mean.
... note: on a phone or tablet, the orientation of the device is always considered in relation to the standard orientation of the screen; this is the "
portrait" orientation on most devices.
Touch events (Mozilla experimental) - Developer guides
warning: this experimental api was removed in gecko 18.0 (firefox 18.0 / thunderbird 18.0 / seamonkey 2.15), when sup
port for the standard touch events was implemented.
...you should instead use the standard touch events api, sup
ported since gecko/firefox 6 with multi-touch sup
port added in gecko/firefox 12.
Rich-Text Editing in Mozilla - Developer guides
the rich-text editing sup
port in mozilla 1.3 sup
ports the designmode feature which turns html documents into rich-text editors.
... starting in firefox 3, mozilla also sup
ports internet explorer's contenteditable attribute which allows any element to become editable or non-editable (the latter for when preventing change to fixed elements in an editable environment).
Making content editable - Developer guides
if you want to use a different paragraph separator, the above browsers all sup
port document.execcommand, which provides a defaultparagraphseparator command to allow you to change it.
... for example, to use <p> elements: document.execcommand("defaultparagraphseparator", false, "p"); additionally, firefox sup
ports the non-standard argument, br, for defaultparagraphseparator since firefox 55.
Introduction to Web development - Developer guides
html elements reference guide — a comprehensive guide to html elements with details on how browsers sup
port them css getting started with css — an absolute beginners guide to css covers basic concepts and fundamentals css reference guide — a complete guide to css with details on the level of gecko/firefox sup
port for each.
... sitepoint a reliable reference site for learning html, css and javascript which also mentions feature sup
port across different browsers and known browser bugs.
Optimization and performance - Developer guides
when building modern web apps and sites, it's im
portant to make your content perform well.
...making web performance a priority by considering web performance throughout the development process is im
portant in ensuring users get the best user experience possible.
HTML attribute: multiple - HTML: Hypertext Markup Language
some browsers sup
port the appearance of the list of options from the associated <datalist> for subsequent email addresses when multiple is present.
...the selection of non-contiguous is not as well sup
ported: items should be able to be selected and deselected by pressing space , but sup
port varies between browsers.
<a>: The Anchor element - HTML: Hypertext Markup Language
links are not restricted to http-based urls — they can use any url scheme sup
ported by browsers: sections of a page with fragment urls pieces of media files with media fragments telephone numbers with tel: urls email addresses with mailto: urls while web browsers may not sup
port other url schemes, web sites can with registerprotocolhandler() hreflang hints at the human language of the linked url.
... link that opens a new tab/window <a target="_blank" href="https://www.wikipedia.org"> wikipedia (opens in new tab) </a> link to a non-html resource <a href="2017-annual-re
port.ppt"> 2017 annual re
port (powerpoint) </a> if an icon is used to signify link behavior, make sure it has alt text: <a target="_blank" href="https://www.wikipedia.org"> wikipedia <img alt="(opens in new tab)" src="newtab.svg"> </a> <a href="2017-annual-re
port.ppt"> 2017 annual re
port <img alt="(powerpoint file)" src="ppt-icon.svg"> </a> webaim: links and hypertext - hypertext lin...
<abbr>: The Abbreviation element - HTML: Hypertext Markup Language
permitted parents any element that accepts phrasing content implicit aria role no corresponding role permitted aria roles any dom interface htmlelement attributes this element only sup
ports the global attributes.
...this is especially im
portant in languages with more than two numbers, such as arabic, but is also relevant in english.
<input type="password"> - HTML: Hypertext Markup Language
value a domstring representing a password, or empty events change and input sup
ported common attributes autocomplete, inputmode, maxlength, minlength, pattern, placeholder, readonly, required, and size idl attributes selectionstart, selectionend, selectiondirection, and value methods select(), setrangetext(), and setselectionrange() value the value attribute contains a domstring whose value is the current contents of the text editing control be...
... additional attributes in addition to the attributes that operate on all <input> elements regardless of their type, password field inputs sup
port the following attributes: attribute description maxlength the maximum length the value may be, in utf-16 characters minlength the minimum length in characters that will be considered valid pattern a regular expression the value must match in order to be valid placeholder an example value to display in the field when the field is emp...
<keygen> - HTML: Hypertext Markup Language
(note that only a subset of the curves named there may actually be sup
ported in any particular browser.) if the keyparams parameter string is not a recognized curve name string, then a curve is chosen according to the user's chosen key strength (low, medium, high), using the curve named "secp384r1" for high, and the curve named "secp256r1" for medium keys.
...if the user's browser is configured to sup
port cryptographic hardware (e.g.
<noembed>: The Embed Fallback element (Obsolete) - HTML: Hypertext Markup Language
the <noembed> element is an obsolete, non-standard way to provide alternative, or "fallback", content for browsers that do not sup
port the <embed> element or do not sup
port the type of embedded content an author wishes to use.
... examples the message inside <noembed> tag will appear only when your browser does not sup
port <embed> tag.
<pre>: The Preformatted Text element - HTML: Hypertext Markup Language
the text is typically rendered using a non-pro
portional ("monospace") font.
... example html <p>using css to change the font color is easy.</p> <pre> body { color: red; } </pre> result accessibility concerns it is im
portant to provide an alternate description for any images or diagrams created using preformatted text.
<style>: The Style Information element - HTML: Hypertext Markup Language
in the same manner as <link> elements, <style> elements can include media attributes that contain media queries, allowing you to selectively apply internal stylesheets to your document depending on media features such as view
port width.
...und-color: blue; padding: 5px; border: 1px solid black; } </style> <style> p { color: blue; background-color: yellow; } </style> </head> <body> <p>this is my paragraph.</p> </body> </html> including a media query in this example we build on the previous one, including a media attribute on the second <style> element so it is only applied when the view
port is less than 500px in width.
<summary>: The Disclosure Summary element - HTML: Hypertext Markup Language
see the browser compatibility section for details, as not all browsers sup
port full functionality of this element yet.
... html in summaries this example adds some semantics to the <summary> element to indicate the label as im
portant: <details open> <summary><strong>overview</strong></summary> <ol> <li>cash on hand: $500.00</li> <li>current invoice: $75.30</li> <li>due date: 5/6/19</li> </ol> </details> specifications specification status comment html living standardthe definition of '<summary>' in that specification.
itemtype - HTML: Hypertext Markup Language
google and other major search engines sup
port the schema.org vocabulary for structured data.
...they must only be specified on elements with an itemscope attribute, whose itemtype attribute specifies a vocabulary not sup
porting global identifiers for items, as defined by that vocabulary's specification.
tabindex - HTML: Hypertext Markup Language
from html 4.01 specification, the attribute is now sup
ported on all elements (global attributes).
... recommendation only sup
ported on <a>, <area>, <button>, <input>, <object>, <select>, and <textarea>.
title - HTML: Hypertext Markup Language
here will show nothing.</p> </div> result accessibility concerns use of the title attribute is highly problematic for: people using touch-only devices people navigating with keyboards people navigating with assistive technology such as screen readers or magnifiers people experiencing fine motor control impairment people with cognitive concerns this is due to inconsistent browser sup
port, compounded by the additional assistive technology parsing of the browser-rendered page.
... recommendation sup
ported on all elements but <base>, <basefont>, <head>, <html>, <meta>, <param>, <script>, and <title>.
Link types - HTML: Hypertext Markup Language
if the most appropriate icon is later found to be inappropriate, for example because it uses an unsup
ported format, the browser proceeds to the next-most appropriate, and so on.
... <link> <a>, <area>, <form> im
port html im
ports <link> <a>, <area>, <form> index obsolete since html5 indicates that the page is part of a hierarchical structure and that the hyperlink leads to the top level resource of that structure.
Quirks Mode and Standards Mode - HTML: Hypertext Markup Language
this is essential in order to sup
port websites that were built before the widespread adoption of web standards.
...note however that serving your pages as application/xhtml+xml will cause internet explorer 8 to show a download dialog box for an unknown format instead of displaying your page, as the first version of internet explorer with sup
port for xhtml is internet explorer 9.
HTTP conditional requests - HTTP
building a system of etags that creates weak validation may be complex, as it involves knowing the im
portance of the different elements of a page, but is very useful towards optimizing cache performance.
... integrity of a partial download partial downloading of files is a functionality of http that allows to resume previous operations, saving bandwidth and time, by keeping the already obtained information: a server sup
porting partial downloads broadcasts this by sending the accept-ranges header.
List of default Accept values - HTTP
user agent value comment firefox earlier than 3.6 no sup
port 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 sup
port for <video> values for audio resources when an audio file is requested, like via the <audio> html element, most browsers use specific values.
... user agent value comment firefox 3.6 and later audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5 see bug 489071 source safari, chrome */* source internet explorer 8 or earlier no sup
port for <audio> internet explorer 9 ?
Using HTTP cookies - HTTP
for more information about cookie prefixes and the current state of browser sup
port, see the prefixes section of the set-cookie reference article.
...(see samesite cookies, above.) in browsers that sup
port samesite, this has the effect of ensuring that the authentication cookie is not sent with cross-origin requests, so such a request is effectively unauthenticated to the application server.
Accept-Encoding - HTTP
even if both the client and the server sup
ports the same compression algorithms, the server may choose not to compress the body of a response, if the identity value is also acceptable.
...it doesn't mean that any algorithm is sup
ported; merely that no preference is expressed.
Alt-Svc - HTTP
an alternative service is defined by a protocol/host/
port combination.
... <alt-authority> the quoted string specifying the alternative authority which consists of an optional host override, a colon, and a mandatory
port number.
CSP: upgrade-insecure-requests - HTTP
the upgrade-insecure-requests directive will not ensure that users visiting your site via links on third-party sites will be upgraded to https for the top-level navigation and thus does not replace the strict-trans
port-security (hsts) header, which should still be set with an appropriate max-age to ensure that users are not subject to ssl stripping attacks.
... <img src="https://example.com/image.png"> <img src="https://not-example.com/image.png"> navigational upgrades to third-party resources brings a significantly higher potential for breakage, these are not upgraded: <a href="https://example.com/">home</a> <a href="http://not-example.com/">home</a> finding insecure requests with the help of the content-security-policy-re
port-only header and the re
port-uri directive, you can set-up an enforced policy and a re
ported policy like this: content-security-policy: upgrade-insecure-requests; default-src https: content-security-policy-re
port-only: default-src https:; re
port-uri /endpoint that way, you still upgrade insecure requests on your secure site, but the only monitoring policy is violated and re
ports insecure resource...
Cross-Origin-Embedder-Policy - HTTP
if a cross origin resource sup
ports cors, the crossorigin attribute or the cross-origin-resource-policy header must be used to load it without being blocked by coep.
... to check if cross origin isolation has been successful, you can test against the crossoriginisolated property available to window and worker contexts: if (crossoriginisolated) { // post sharedarraybuffer } else { // do something else } avoiding coep blockage with cors if you enable coep using require-corp and have a cross origin resource that needs to be loaded, it needs to sup
port cors and you need to explicitly mark the resource as loadable from another origin to avoid blockage from coep.
Digest - HTTP
header type response header forbidden header name no syntax digest: <digest-algorithm>=<digest-value> digest: <digest-algorithm>=<digest-value>,<digest-algorithm>=<digest-value> directives <digest-algorithm> sup
ported digest algorithms are defined in rfc 3230 and rfc 5843, and include sha-256 and sha-512.
... some of the sup
ported algorithms, including unixsum and md5 are subject to collisions and are thus not suitable for applications in which collision-resistance is im
portant.
Forwarded - HTTP
this can be either: an ip address (v4 or v6, optionally with a
port, and ipv6 quoted and enclosed in square brackets), an obfuscated identifier (such as "_hidden" or "_secret"), or "unknown" when the preceding entity is not known (and you still want to indicate that forwarding of the request was made).
... examples using the forwarded header forwarded: for="_mdn" # case insensitive forwarded: for="[2001:db8:cafe::17]:4711" # separated by semicolon forwarded: for=192.0.2.60;proto=http;by=203.0.113.43 # multiple values can be appended using a comma forwarded: for=192.0.2.43, for=198.51.100.17 transitioning from x-forwarded-for to forwarded if your application, server, or proxy sup
ports the standardized forwarded header, the x-forwarded-for header can be replaced.
Large-Allocation - HTTP
firefox has moved to a multiprocess architecture, and this architecture is required in order to sup
port the large-allocation header.
... firefox currently only sup
ports the large-allocation header in our 32-bit windows builds, as memory fragmentation is not an issue in 64-bit builds.
Referrer-Policy - HTTP
https://example.com/otherpage https://example.com/page https://mozilla.org https://example.com/ http://example.org (no referrer) unsafe-url https://example.com/page?q=123 anywhere https://example.com/page?q=123 specifying a fallback policy if you want to specify a fallback policy in any case the desired policy hasn't got wide enough browser sup
port, use a comma-separated list with the desired policy specified last: referrer-policy: no-referrer, strict-origin-when-cross-origin in the above scenario, no-referrer will only be used if strict-origin-when-cross-origin is not sup
ported by the browser.
... specifying multiple values is only sup
ported in the referrer-policy http header, and not in the referrerpolicy attribute.
Transfer-Encoding - HTTP
http/2 doesn't sup
port http 1.1's chunked transfer encoding mechanism, as it provides its own, more efficient, mechanisms for data streaming.
...the http/1.1 standard also recommends that the servers sup
porting this content-encoding should recognize x-gzip as an alias, for compatibility purposes.
Upgrade-Insecure-Requests - HTTP
header type request header forbidden header name no syntax upgrade-insecure-requests: 1 examples a client's request signals to the server that it sup
ports the upgrade mechanisms of upgrade-insecure-requests: get / http/1.1 host: example.com upgrade-insecure-requests: 1 the server can now redirect to a secure version of the site.
... a vary header can be used so that the site isn't served by caches to clients that don’t sup
port the upgrade mechanism.
Via - HTTP
header type general header forbidden header name yes syntax via: [ <protocol-name> "/" ] <protocol-version> <host> [ ":" <
port> ] or via: [ <protocol-name> "/" ] <protocol-version> <pseudonym> directives <protocol-name> optional.
... <host> and <
port> public proxy url and
port.
405 Method Not Allowed - HTTP
the hypertext transfer protocol (http) 405 method not allowed response status code indicates that the request method is known by the server but is not sup
ported by the target resource.
... the server must generate an allow header field in a 405 response containing a list of the target resource's currently sup
ported methods.
HTTP
though often based on a tcp/ip layer, it can be used on any reliable trans
port layer, that is, a protocol that doesn't lose messages silently like udp does.
... http cache caching is very im
portant for fast web sites.
About JavaScript - JavaScript
it is a prototype-based, multi-paradigm scripting language that is dynamic, and sup
ports object-oriented, imperative, and functional programming styles.
...in a nutshell, javascript is a dynamic scripting language sup
porting prototype based object construction.
Grammar and types - JavaScript
let mylist = ['home', , 'school', , ]; understanding the behavior of extra commas is im
portant to understanding javascript as a language.
... enhanced object literals in es2015, object literals are extended to sup
port setting the prototype at construction, shorthand for foo: foo assignments, defining methods, making super calls, and computing property names with expressions.
Keyed collections - JavaScript
everything exposed on the instance and prototype is public; everything else is inaccessible from the outside world because privates is not ex
ported from the module.
...}; module.ex
ports = public; sets set object set objects are collections of values.
Numbers and dates - JavaScript
octal syntax isn't part of ecmascript 5, but it's sup
ported in all browsers by prefixing the octal number with a zero: 0644 === 420 and "\045" === "%".
... in ecmascript 2015, octal numbers are sup
ported if they are prefixed with 0o, e.g.: var a = 0o10; // es2015: 8 hexadecimal numbers hexadecimal number syntax uses a leading zero followed by a lowercase or uppercase latin letter "x" (0x or 0x).
Groups and ranges - JavaScript
this becomes im
portant when capturing groups are nested.
...using named groups let personlist = `first_name: john, last_name: doe first_name: jane, last_name: smith`; let regexpnames = /first_name: (?<firstname>\w+), last_name: (?<lastname>\w+)/mg; let match = regexpnames.exec(personlist); do { console.log(`hello ${match.groups.firstname} ${match.groups.lastname}`); } while((match = regexpnames.exec(personlist)) !== null); note: not all browsers sup
port this feature; refer to the compatibility table.
Using Promises - JavaScript
you might see this expressed with arrow functions instead: dosomething() .then(result => dosomethingelse(result)) .then(newresult => dothirdthing(newresult)) .then(finalresult => { console.log(`got the final result: ${finalresult}`); }) .catch(failurecallback); im
portant: always return results, otherwise callbacks won't catch the result of a previous promise (with arrow functions () => x is short for () => { return x; }).
...im
portantly, if dosomethingcritical() fails, its error is caught by the final (outer) catch only.
Classes - JavaScript
class rectangle { constructor(height, width) { this.height = height; this.width = width; } } hoisting an im
portant difference between function declarations and class declarations is that function declarations are hoisted and class declarations are not.
...sup
port in browsers is limited, but the feature can be used through a build step with systems like babel.
Functions - JavaScript
defining method functions getter and setter functions you can define getters (accessor methods) and setters (mutator methods) on any standard built-in object or user-defined object that sup
ports the addition of new properties.
... in strict mode, all browsers that sup
port es2015 handle this the same way: zero is defined only if shoulddefinezero is true, and only in the scope of the if-block.
Array.prototype[@@iterator]() - JavaScript
examples iteration using for...of loop html <ul id="letterresult"> </ul> javascript var arr = ['a', 'b', 'c']; var earr = arr[symbol.iterator](); var letterresult = document.getelementbyid('letterresult'); // your browser must sup
port for..of loop // and let-scoped variables in for loops // const and var could also be used for (let letter of earr) { letterresult.innerhtml += "<li>" + letter + "</li>"; } result alternative iteration var arr = ['a', 'b', 'c', 'd', 'e']; var earr = arr[symbol.iterator](); console.log(earr.next().value); // a console.log(earr.next().value); // b console.log(earr.next().value); // c console.
... function logiterable(it) { if (!(symbol.iterator in object.getprototypeof(it) /* or "symbol.iterator in object.__proto__" or "it[symbol.iterator]" */)) { console.log(it, ' is not an iterable object...'); return; } var iterator = it[symbol.iterator](); // your browser must sup
port for..of loop // and let-scoped variables in for loops // const and var could also be used for (let letter of iterator) { console.log(letter); } } // array logiterable(['a', 'b', 'c']); // a // b // c // string logiterable('abc'); // a // b // c logiterable(123); // 123 " is not an iterable object..." specifications specification ecmascript (ecma-262)the de...
Array.prototype.map() - JavaScript
you can work around this by inserting the following code at the beginning of your scripts, allowing use of map in implementations which do not natively sup
port it.
... // in browsers that sup
port object.defineproperty, use the following: // object.defineproperty(a, k, { // value: mappedvalue, // writable: true, // enumerable: true, // configurable: true // }); // for best browser sup
port, use the following: a[k] = mappedvalue; } // d.
Array.prototype.push() - JavaScript
examples adding elements to an array the following code creates the s
ports array containing two elements, then appends two elements to it.
... let s
ports = ['soccer', 'baseball'] let total = s
ports.push('football', 'swimming') console.log(s
ports) // ['soccer', 'baseball', 'football', 'swimming'] console.log(total) // 4 merging two arrays this example uses apply() to push all elements from a second array.
Array.prototype.slice() - JavaScript
the slice() method returns a shallow copy of a
portion of an array into a new array object selected from start to end (end not included) where start and end represent the index of items in that array.
... examples return a
portion of an existing array let fruits = ['banana', 'orange', 'lemon', 'apple', 'mango'] let citrus = fruits.slice(1, 3) // fruits contains ['banana', 'orange', 'lemon', 'apple', 'mango'] // citrus contains ['orange','lemon'] using slice> in the following example, slice creates a new array, newcar, from mycar.
Date() constructor - JavaScript
sup
port for rfc 2822 format strings is by convention only.
... sup
port for iso 8601 formats differs in that date-only strings (e.g.
Intl.DateTimeFormat() constructor - JavaScript
unicode extension are sup
ported (for example "en-us-u-ca-buddhist").
...implementations are required to sup
port at least the following subsets: weekday, year, month, day, hour, minute, second weekday, year, month, day year, month, day year, month month, day hour, minute, second hour, minute implementations may sup
port other subsets, and requests will be negotiated against all available subset-representation combinations to find the best match.
Intl.DateTimeFormat - JavaScript
static methods intl.datetimeformat.sup
portedlocalesof() returns an array containing those of the provided locales that are sup
ported without having to fall back to the runtime's default locale.
...ic speaking countries uses real arabic digits console.log(new intl.datetimeformat('ar-eg').format(date)); // → "١٩/١٢/٢٠١٢" // for japanese, applications may want to use the japanese calendar, // where 2012 was the year 24 of the heisei era console.log(new intl.datetimeformat('ja-jp-u-ca-japanese').format(date)); // → "24/12/19" // when requesting a language that may not be sup
ported, such as // balinese, include a fallback language, in this case indonesian console.log(new intl.datetimeformat(['ban', 'id']).format(date)); // → "19/12/2012" using options the date and time formats can be customized using the options argument: var date = new date(date.utc(2012, 11, 20, 3, 0, 0, 200)); // request a weekday along with a long date var options = { weekday: 'long', year: 'nu...
Intl.NumberFormat - JavaScript
static methods intl.numberformat.sup
portedlocalesof() returns an array containing those of the provided locales that are sup
ported without having to fall back to the runtime's default locale.
...chinese decimal console.log(new intl.numberformat('zh-hans-cn-u-nu-hanidec').format(number)); // → 一二三,四五六.七八九 // when requesting a language that may not be sup
ported, such as // balinese, include a fallback language, in this case indonesian console.log(new intl.numberformat(['ban', 'id']).format(number)); // → 123.456,789 using options the results can be customized using the options argument: var number = 123456.789; // request a currency format console.log(new intl.numberformat('de-de', { style: 'currency', currency: 'eur' }).format(number)); // →...
JSON - JavaScript
nan and infinity are unsup
ported.
...by default, all instances of undefined are replaced with null, and other unsup
ported native data types are censored.
Map - JavaScript
however, there are im
portant differences that make map preferable in certain cases: map object accidental keys a map does not contain any keys by default.
...[...mymap]) // or use the keys() or values() iterators, and convert them to an array console.log(array.from(mymap.keys())) // ["key1", "key2"] cloning and merging maps just like arrays, maps can be cloned: let original = new map([ [1, 'one'] ]) let clone = new map(original) console.log(clone.get(1)) // one console.log(original === clone) // false (useful for shallow comparison) im
portant: keep in mind that the data itself is not cloned.
Math.round() - JavaScript
description if the fractional
portion of the argument is greater than 0.5, the argument is rounded to the integer with the next higher absolute value.
... if the fractional
portion is exactly 0.5, the argument is rounded to the next integer in the direction of +∞.
Number.prototype.toFixed() - JavaScript
syntax numobj.tofixed([digits]) parameters digits optional the number of digits to appear after the decimal point; this may be a value between 0 and 20, inclusive, and implementations may optionally sup
port a larger range of values.
...implementations are allowed to sup
port larger and smaller values as chosen.
Promise() constructor - JavaScript
the promise constructor is primarily used to wrap functions that do not already sup
port promises.
... therefore, the code within the executor has the op
portunity to perform some operation and then reflect the operation's outcome(if the value is not another promise object) as either "fulfilled" or "rejected" by terminating with an invocation of either the resolutionfunc or the rejectionfunc, respectively.
handler.get() - JavaScript
interceptions this trap can intercept these operations: property access: proxy[foo]and proxy.bar inherited property access: object.create(proxy)[foo] reflect.get() invariants if the following invariants are violated, the proxy will throw a typeerror: the value re
ported for a property must be the same as the value of the corresponding target object property if the target object property is a non-writable, non-configurable own data property.
... the value re
ported for a property must be undefined if the corresponding target object property is a non-configurable own accessor property that has undefined as its [[get]] attribute.
handler.has() - JavaScript
interceptions this trap can intercept these operations: property query: foo in proxy inherited property query: foo in object.create(proxy) with check: with(proxy) { (foo); } reflect.has() invariants if the following invariants are violated, the proxy will throw a typeerror: a property cannot be re
ported as non-existent, if it exists as a non-configurable own property of the target object.
... a property cannot be re
ported as non-existent, if it exists as an own property of the target object and the target object is not extensible.
Proxy - JavaScript
the object also sup
ports an extra property called latestbrowser both as a getter and a setter.
...get the "doccookies" object here: https://developer.mozilla.org/docs/dom/document.cookie#a_little_framework.3a_a_complete_cookies_reader.2fwriter_with_full_unicode_sup
port */ var doccookies = new proxy(doccookies, { get: function (otarget, skey) { return otarget[skey] || otarget.getitem(skey) || undefined; }, set: function (otarget, skey, vvalue) { if (skey in otarget) { return false; } return otarget.setitem(skey, vvalue); }, deleteproperty: function (otarget, skey) { if (skey in otarget) { return false; } return otarget.removeitem(s...
String.prototype.codePointAt() - JavaScript
polyfill the following extends strings to include the codepointat() function as specified in ecmascript 2015 for browsers without native sup
port.
...https://mths.be/codepointat v0.2.0 by @mathias */ if (!string.prototype.codepointat) { (function() { 'use strict'; // needed to sup
port `apply`/`call` with `undefined`/`null` var defineproperty = (function() { // ie 8 only sup
ports `object.defineproperty` on dom elements try { var object = {}; var $defineproperty = object.defineproperty; var result = $defineproperty(object, object, object) && $defineproperty; } catch(error) {} return result; }()); var codepointat = function(position) { if (this == null) { throw typeerror(); } var string = string(this); var size = string.length; // `tointeger` var index = position ?
String.fromCodePoint() - JavaScript
polyfill the string.fromcodepoint() method has been added to ecmascript 2015 and may not be sup
ported in all web browsers or environments yet.
...= codeunits.push( (codepoint >> 10) + 0xd800, // highsurrogate (codepoint % 0x400) + 0xdc00 // lowsurrogate ); } if (codelen >= 0x3fff) { result += stringfromcharcode.apply(null, codeunits); codeunits.length = 0; } } return result + stringfromcharcode.apply(null, codeunits); }; try { // ie 8 only sup
ports `object.defineproperty` on dom elements object.defineproperty(string, "fromcodepoint", { "value": fromcodepoint, "configurable": true, "writable": true }); } catch(e) { string.fromcodepoint = fromcodepoint; } }(string.fromcharcode)); examples using fromcodepoint() valid input: string.fromcodepoint(42); // "*" string.fromcodepoint(65, 90); // "az" st...
String.prototype.localeCompare() - JavaScript
let items = ['réservé', 'premier', 'cliché', 'communiqué', 'café', 'adieu']; items.sort( (a, b) => a.localecompare(b, 'fr', {ignorepunctuation: true})); // ['adieu', 'café', 'cliché', 'communiqué', 'premier', 'réservé'] check browser sup
port for extended arguments the locales and options arguments are not sup
ported in all browsers yet.
... to check whether an implementation sup
ports them, use the "i" argument (a requirement that illegal language tags are rejected) and look for a rangeerror exception: function localecomparesup
portslocales() { try { 'foo'.localecompare('bar', 'i'); } catch (e) { return e.name === 'rangeerror'; } return false; } using locales the results provided by localecompare() vary between languages.
String.prototype.substr() - JavaScript
the substr() method returns a
portion of the string, starting at the specified index and extending for a given number of characters afterwards.
... polyfill microsoft's jscript does not sup
port negative values for the start index.
parseInt() - JavaScript
ecmascript 5 clarifies that 10 (decimal) should be used, but not all browsers sup
port this yet.
...and, because older browsers must be sup
ported, always specify a radix.
Unary plus (+) - JavaScript
integers in both decimal and hexadecimal (0x-prefixed) formats are sup
ported.
... negative numbers are sup
ported (though not for hex).
delete operator - JavaScript
however, it is im
portant to consider the following scenarios: if the property which you are trying to delete does not exist, delete will not have any effect and will return true.
...console.log(delete func); // false cross-browser notes although ecmascript makes iteration order of objects implementation-dependent, it may appear that all major browsers sup
port an iteration order based on the earliest added property coming first (at least for properties not on the prototype).
for...in - JavaScript
array iteration and for...in note: for...in should not be used to iterate over an array where the index order is im
portant.
...therefore, it is better to use a for loop with a numeric index (or array.prototype.foreach() or the for...of loop) when iterating over arrays where the order of access is im
portant.
with - JavaScript
where performance is im
portant, 'with' should only be used to encompass code blocks that access members of the specified object.
...so, in a javascript environment that sup
ports ecmascript 2015, the values reference inside the with statement could resolve to [1,2,3].values.
JavaScript shells - JavaScript
shelljs -
portable unix shell commands for node.js list of javascript shells the following javascript shells work with mozilla.
... firefox has a built-in javascript console, which sup
port multi-line editing.
orientation - Web app manifests
note: orientation and/or its specific values might not be sup
ported by a user agent on various display modes because sup
porting them does not make sense for the particular context.
... values orientation can take one of the following values: any natural landscape landscape-primary landscape-secondary
portrait
portrait-primary
portrait-secondary examples "orientation": "
portrait-primary" specification specification status comment feedback web app manifestthe definition of 'orientation' in that specification.
Using images in HTML - Web media technologies
it sup
ports a wide range of attributes that control how the image behaves and allows you to add im
portant information like alt text for people who don't see the image.
... image file type and format guide a guide to the various image file types commonly sup
ported by web browsers including details about their individual use cases, capabilities, and compatibility factors.
Animation performance and frame rate - Web Performance
while it is not always possible to maintain 60fps, it is im
portant to maintain a high and steady frame rate for all animations.
...compared with the version that uses margin, we're not spending any time time in layout or (more im
portantly in this case) in paint: in this case, using transform significantly improved the site's performance, and the performance tools were able to show how and why it did.
Recommended Web Performance Timings: How long is too long? - Web Performance
there are different suggested times for initially loading the page versus loading additional assets, responding to user interaction, and ensuring smooth animations: idling goal browsers are single threaded (though background threads are sup
ported for web workers).
... responsiveness goal when the user interacts with content, it is im
portant to provide feedback and acknowledge the user's response or interaction and to do so within 100ms, preferably within 50ms.
Applying SVG effects to HTML content - SVG: Scalable Vector Graphics
modern browsers sup
port using svg within css styles to apply graphical effects to html content.
... for example, if your css is in a file named default.css, it can look like this: .target { clip-path: url(resources.svg#c1); } the svg is then im
ported from a file named resources.svg, using the clip path with the id c1.
SVG Conditional Processing Attributes - SVG: Scalable Vector Graphics
value: false|true; animatable: no requiredextensions list all the browser specific capabilities that must be sup
ported by the borwser to be allowed to render the associated element.
... value: a list of space-separated uri; animatable: no requiredfeatures deprecated since svg 2 list all the features, as defined is the svg 1.1 specification, that must be sup
ported by the borwser to be allowed to render the associated element..
begin - SVG: Scalable Vector Graphics
a valid event-value consists of an element id followed by a dot and one of the sup
ported events for that element.
... all valid events (not necessarily sup
ported by all elements) are defined by the dom and html specifications.
calcMode - SVG: Scalable Vector Graphics
the default mode is linear, however if the attribute does not sup
port linear interpolation (e.g.
...this is only sup
ported for values that define a linear numeric range, and for which some notion of "distance" between points can be calculated (e.g.
end - SVG: Scalable Vector Graphics
a valid event-value consists of an element id followed by a dot and one of the sup
ported events for that element.
... all valid events (not necessarily sup
ported by all elements) are defined by the dom and html specifications.
overflow - SVG: Scalable Vector Graphics
if the overflow property has the value hidden or scroll, a clip of the exact size of the svg view
port is applied.
... when scroll is specified on an <svg> element, a scrollbar or panner is normally shown for the svg view
port whether or not any of its content is clipped.
requiredExtensions - SVG: Scalable Vector Graphics
determines whether all of the named extensions are sup
ported by the user agent.
... if all of the given extensions are sup
ported, then the attribute evaluates to true; otherwise, the current element and its children are skipped and thus will not be rendered.
string - SVG: Scalable Vector Graphics
the string attribute is a hint to the user agent, and specifies a list of formats that the font referenced by the parent <font-face-uri> element sup
ports.
... only one element is using this attribute: <font-face-format> usage notes value <anything> default value none animatable no <anything> this value specifies a list of formats that are sup
ported by the font referenced by the parent <font-face-uri> element.
stroke-opacity - SVG: Scalable Vector Graphics
="4" stroke="green" stroke-opacity="50%" /> <!-- stroke opacity as a css property --> <circle cx="35" cy="5" r="4" stroke="green" style="stroke-opacity: .3;" /> </svg> usage notes value [0-1] | <percentage> default value 1 animatable yes note: svg2 introduces percentage values for stroke-opacity, however, it is not widely sup
ported yet (see browser compatibility below) as a consequence, it is best practices to set opacity with a value in the range [0-1].
... it's im
portant to know that the stroke partially covers the fill of a shape, so a stroke with an opacity different than 1 will partially show the fill underneath.
x - SVG: Scalable Vector Graphics
value <length> | <percentage> default value -10% animatable yes foreignobject for <foreignobject>, x defines the x coordinate of the uper left corner of its view
port.
... svg for <svg>, x defines the x coordinate of the uper left corner of its view
port.
y - SVG: Scalable Vector Graphics
value <length> | <percentage> default value -10% animatable yes foreignobject for <foreignobject>, y defines the y coordinate of the uper left corner of its view
port.
... svg for <svg>, y defines the y coordinate of the uper left corner of its view
port.
<clipPath> - SVG: Scalable Vector Graphics
--> <circle cx="40" cy="35" r="35" /> </clippath> <!-- the original black heart, for reference --> <path id="heart" d="m10,30 a20,20,0,0,1,50,30 a20,20,0,0,1,90,30 q90,60,50,90 q10,60,10,30 z" /> <!-- only the
portion of the red heart inside the clip circle is visible.
...*/ @keyframes openyourheart {from {r: 0} to {r: 60px}} #myclip circle { animation: openyourheart 15s infinite; } a clipping path is conceptually equivalent to a custom view
port for the referencing element.
<cursor> - SVG: Scalable Vector Graphics
the png format is recommended because it sup
ports the ability to define a transparency mask via an alpha channel.
... if a different image format is used, this format should sup
port the definition of a transparency mask (two options: provide an explicit alpha channel or use a particular pixel color to indicate transparency).
SVG In HTML Introduction - SVG: Scalable Vector Graphics
(another style rule makes an error message appear.) this approach has the following points in its favor: we have taken a regular html form that could have been part of an existing web site, and added an attractive, interactive background the approach is backwards compatible to browsers that do not sup
port svg; simply, no background appears in them it's very simple and performs very well the picture dynamically sizes itself to the required size in an intelligent way we can have declarative style rules applying to both html and svg the same script manipulates both html and svg the document is entirely standards-based to add a linked image with dom methods to an embedded svg element, one has ...
...in this case our picture is laid out in a 100 by 100 view
port.
Texts - SVG: Scalable Vector Graphics
basics we have seen in the introducing example, that the text element can be used to put arbitrary text in svg documents: <text x="10" y="10">hello world!</text> the x and y attributes determine, where in the view
port the text will appear.
... other text-related elements tspan this element is used to mark up sub-
portions of a larger text.
Securing your site - Web security
user information security how to turn off form autocompletion form fields sup
port autocompletion in gecko; that is, their values can be remembered and automatically brought back the next time the user visits your site.
... http strict trans
port security the strict-trans
port-security: http header lets a website specify that it may only be accessed using https.
Types of attacks - Web security
in sup
porting browsers, this will have the effect of ensuring that the session cookie is not sent along with cross-site requests and so the request is effectively unauthenticated to the application server.
... alternatively, if the parent domain does not use http strict-trans
port-security with includesubdomains set, a user subject to an active mitm (perhaps connected to an open wifi network) could be served a response with a set-cookie header from a non-existent sub-domain.
Weak signature algorithms - Web security
as new attacks are found and improvements in available technology make attacks more feasible, the use of older algorithms is discouraged and sup
port for them is eventually removed.
... md5 sup
port for md5 based signatures was removed in early 2012.
xml:base - XML: Extensible Markup Language
sup
port was removed from blink (chrome and opera) in 2015: chromium bug 341854 blink-dev mailing list post and from firefox 66 in bug 903372.
... work-arounds xml:base sup
port in old browsers https://gist.github.com/leonderijke/c5cf7c5b2e424c0061d2 specifications specification status comment xml base (second edition) recommendation ...
Axes - XPath
the following is an extremely brief description of the thirteen available axes and the degree of sup
port available in gecko.
... namespace (not sup
ported) indicates all the nodes that are in scope for the context node.
Functions - XPath
xslt/xpath reference: xslt elements, exslt functions, xpath functions, xpath axes the following is an annotated list of core xpath functions and xslt-specific additions to xpath, including a description, syntax, a list of arguments, result-type, source in the appropriate w3c recommendation, and degree of present gecko sup
port.
... boolean() ceiling() choose() concat() contains() count() current() xslt-specific document() xslt-specific element-available() false() floor() format-number() xslt-specific function-available() generate-id() xslt-specific id() (partially sup
ported) key() xslt-specific lang() last() local-name() name() namespace-uri() normalize-space() not() number() position() round() starts-with() string() string-length() substring() substring-after() substring-before() sum() system-property() xslt-specific translate() true() unparsed-entity-url() xslt-specific (not sup
ported) ...
<xsl:fallback> - XSLT: Extensible Stylesheet Language Transformations
xslt/xpath reference: xslt elements, exslt functions, xpath functions, xpath axes the <xsl:fallback> element specifies what template to use if a given extension (or, eventually, newer version) element is not sup
ported.
... defined xslt, section 15 gecko sup
port not sup
ported at this time.
Advanced Example - XSLT: Extensible Stylesheet Language Transformations
<div>8</div> <div>9</div> <div>10</div> </div> // javascript var xslref; var xslloaded = false; var xsltprocessor = new xsltprocessor(); var mydom; var xmlref = document.implementation.createdocument("", "", null); function sort() { if (!xslloaded){ p = new xmlhttprequest(); p.open("get", "example2.xsl", false); p.send(null); xslref = p.responsexml; xsltprocessor.im
portstylesheet(xslref); xslloaded = true; } // create a new xml document in memory xmlref = document.implementation.createdocument("", "", null); // we want to move a part of the dom from an html document to an xml document.
... // im
portnode is used to clone the nodes we want to process via xslt - true makes it do a deep clone var mynode = document.getelementbyid("example"); var clonednode = xmlref.im
portnode(mynode, true); // after cloning, we append xmlref.appendchild(clonednode); // set the sorting parameter in the xsl file var sortval = xsltprocessor.getparameter(null, "myorder"); if (sortval == "" || sortval == "descending") xsltprocessor.setparameter(null, "myorder", "ascending"); else xsltprocessor.setparameter(null, "myorder", "descending"); // initiate the transformation var fragment = xsltprocessor.transformtofragment(xmlref, document); // clear the contents document.getelementbyid("example").innerhtml = ""; mydom = fragment; // add the new content from the trans...
Basic Example - XSLT: Extensible Stylesheet Language Transformations
the .xsl file is then im
ported (xsltprocessor.im
portstylesheet(xslstylesheet)) and the transformation run (xsltprocessor.transformtofragment(xmldoc, document)).
... figure 6 : example var xslstylesheet; var xsltprocessor = new xsltprocessor(); var mydom; var xmldoc; function init(){ // load the xslt file, example1.xsl var myxmlhttprequest = new xmlhttprequest(); myxmlhttprequest.open("get", "example1.xsl", false); myxmlhttprequest.send(null); xslstylesheet = myxmlhttprequest.responsexml; xsltprocessor.im
portstylesheet(xslstylesheet); // load the xml file, example1.xml myxmlhttprequest = new xmlhttprequest(); myxmlhttprequest.open("get", "example1.xml", false); myxmlhttprequest.send(null); xmldoc = myxmlhttprequest.responsexml; var fragment = xsltprocessor.transformtofragment(xmldoc, document); document.getelementbyid("example").innerhtml = ""; mydom = fragment; document.getele...
Converting WebAssembly text format to wasm - WebAssembly
a first look at the text format let’s look at a simple example of this — the following program im
ports a function called im
ported_func from a module called im
ports, and ex
ports a function called ex
ported_func: (module (func $i (im
port "im
ports" "im
ported_func") (param i32)) (func (ex
port "ex
ported_func") i32.const 42 call $i ) ) the webassembly function ex
ported_func is ex
ported for use in our environment (e.g.
...when it is called, it calls an im
ported javascript function called im
ported_func, which is run with the value (42) provided as a parameter.
selection - Archive of obsolete content
to learn more about private windows, how to opt into private browsing, and how to sup
port private browsing, refer to the documentation for the private-browsing module.
self - Archive of obsolete content
loadreason this property contains of the following strings describing the reason your add-on was loaded: install enable startup upgrade downgrade isprivatebrowsingsup
ported this property indicates whether or not the add-on sup
ports private browsing.
url - Archive of obsolete content
for example: var url = require("sdk/url").url("https://developer.mozilla.org/add-ons?example=true&visible=yes#top"); console.log(url.host); // developer.mozilla.org
port the
port number of the url, null if none was specified.
content/symbiont - Archive of obsolete content
usage a symbiont loads the specified contenturl and content scripts into a frame, and sets up an asynchronous channel between the content scripts and the add-on code, enabling them to exchange messages using the
port or postmessage apis.
Canvas code snippets - Archive of obsolete content
'beziercurveto', 'clearrect', 'clip', 'closepath', 'drawimage', 'fill', 'fillrect', 'filltext', 'lineto', 'moveto', 'quadraticcurveto', 'rect', 'restore', 'rotate', 'save', 'scale', 'settransform', 'stroke', 'strokerect', 'stroketext', 'transform', 'translate']; var gettermethods = ['createpattern', 'drawfocusring', 'ispointinpath', 'measuretext', // drawfocusring not currently sup
ported // the following might instead be wrapped to be able to chain their child objects 'createimagedata', 'createlineargradient', 'createradialgradient', 'getimagedata', 'putimagedata' ]; var props = ['canvas', 'fillstyle', 'font', 'globalalpha', 'globalcompositeoperation', 'linecap', 'linejoin', 'linewidth', 'miterlimit', 'shadowoffsetx', 'shadowoffsety', 'shadowblur', 'sha...
JavaScript Debugger Service - Archive of obsolete content
jsd.errorhook = { onerror: function(message, filename, lineno, colno, flags, errnum, exc) { dump(message + "@" + filename + "@" + lineno + "@" + colno + "@" + errnum + "\n"); // check message type var jsdierrorhook = components.interfaces.jsdierrorhook; var messagetype; if (flags & jsdierrorhook.re
port_error) messagetype = "error"; if (flags & jsdierrorhook.re
port_warning) messagetype = "warning"; if (flags & jsdierrorhook.re
port_exception) messagetype = "uncaught-exception"; if (flags & jsdierrorhook.re
port_strict) messagetype += "-strict"; dump(messagetype + "\n"); return false; // trigger debughook // return true; if you do not wish to trigger debughook } }; // ...
View Source for XUL Applications - Archive of obsolete content
im
porting gviewsourceutils xul applications wanting to show the source code for documents should im
port 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 im
ports that script.
Windows - Archive of obsolete content
similarly, you can get the current inner window id using the nsidomwindowutils attribute currentinnerwindowid: var util = win.queryinterface(components.interfaces.nsiinterfacerequestor).getinterface(components.interfaces.nsidomwindowutils); var windowid = util.currentinnerwindowid; programatically modifying html when attempting to modify html elements, it is im
portant to specify the namespace.
XML-related code snippets - Archive of obsolete content
how to create a dom tree using xmlhttprequest parsing and serializing xml using xpath jxon (lossless javascript xml object notation) xsl transforms xlink xinclude xml:id xml:base sup
port in old browsers xpointer svg namespaces, or why http://www.mozilla.org/keymaster/gat...re.is.only.xul is at the top of every xul document.
XPath - Archive of obsolete content
turntype,result); //contextnode should be used in the one in which it was created //add by mooring 2008-11-15 16:00 china var xhr = new ajax('post','demo.xml',parsexml,'xml'); //ajax is a class written by javascript which return responsexml object to parsexml function function parsexml(obj)//obj is the returnxml object now { if(!obj.documentelement) { alert("your browser does't sup
port this script!"); return; } var fields = [];//store the results if(window.activexobject) { var tobj = obj.documentelement.selectnodes("/root/field/item"); for(var i=0;i<tobj.length; i++) { fields.push(tobj[i].text); } } else { var tobj = obj.evaluate("/root/field/item",obj.documentelement,null, xpathresult.any_type, null); var tmp = tobj.iteratenext(); while(tmp) { ...
findbar - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata close() return type: no return value closes the notification or findbar and removes it from its e...
List of commands - Archive of obsolete content
ser:addbookmarkas browser:addgroupmarkas browser:back browser:editpage browser:find browser:findagain browser:findprev browser:forward browser:home browser:managebookmark browser:open browser:openfile browser:print browser:printpreview browser:savepage browser:searchinternet browser:sendpage browser:uploadfile cmd_bm_copy cmd_bm_cut cmd_bm_delete cmd_bm_expandfolder cmd_bm_ex
port cmd_bm_find cmd_bm_im
port cmd_bm_managefolder cmd_bm_movebookmark cmd_bm_newbookmark cmd_bm_newfolder cmd_bm_newseparator cmd_bm_open cmd_bm_openinnewtab cmd_bm_openinnewwindow cmd_bm_paste cmd_bm_properties cmd_bm_rename cmd_bm_selectall cmd_bm_setnewbookmarkfolder cmd_bm_setnewsearchfolder cmd_bm_setpersonaltoolbarfolder cmd_bm_sortfolder cmd_bm_sortfolderbyname cmd_close c...
setSelectionRange - Archive of obsolete content
« xul reference home setselectionrange( start, end ) return type: no return value sets the selected
portion of the textbox, where the start argument is the index of the first character to select and the end argument is the index of the character after the selection.
Methods - Archive of obsolete content
t.getattributenodens dom:element.getattributens dom:element.getelementsbytagname dom:element.getelementsbytagnamens dom:element.getfeature fixme: brokenlink dom:element.getuserdata dom:element.hasattribute dom:element.hasattributens dom:element.hasattributes dom:element.haschildnodes dom:element.insertbefore dom:element.isequalnode dom:element.issamenode dom:element.issup
ported dom:element.lookupnamespaceuri dom:element.lookupprefix dom:element.normalize dom:element.removeattribute dom:element.removeattributenode dom:element.removeattributens dom:element.removechild dom:element.removeeventlistener dom:element.replacechild dom:element.setattribute dom:element.setattributenode dom:element.setattributenodens dom:element.setattributens dom:elem...
Namespaces - Archive of obsolete content
it holds and allows disambiguation of items having the same name." if you are familiar with c++ namespaces, java packages, perl packages, or python module im
porting, you are already familiar with the namespace concept.
Node - Archive of obsolete content
ce_node 5 short entity_node 6 short processing_instruction_node 7 short comment_node 8 short document_node 9 short document_type_node 10 short document_fragment_node 11 short notation_node 12 methods node appendchild ( node newchild ) node clonenode ( boolean deep ) boolean hasattributes ( ) boolean haschildnodes ( ) node insertbefore ( node newchild , node refchild ) boolean issup
ported ( string feature , string version ) void normalize ( ) node removechild ( node oldchild ) node replacechild ( node newchild , node oldchild ) ...
MenuItems - Archive of obsolete content
hence, -moz-image-region is not applied to the menu itself, but one level lower: <menuitem id="add-bookmark" class="menuitem-iconic" label="add bookmark" image="addbookmark.png"/> #add-bookmark { list-style-image: url('addbookmark.png'); } #add-bookmark .menu-iconic-icon { -moz-image-region: rect(0px, 16px, 16px, 0px) !im
portant; } #add-bookmark:hover .menu-iconic-icon { -moz-image-region: rect(16px, 16px, 32px, 0px) !im
portant; } this behavior is fundamentally different to other html elements, such as <li> or <div> where list-style-image and -moz-image-region can be applied at the same element level.
Window icons - Archive of obsolete content
older versions to sup
port 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 Parser in Python/source - Archive of obsolete content
im
port sys, glob, xmllib im
port os, re el_list = {} w = open('res.html', 'w') # unfortunately, i had to put this hack in here to suppress the printing out of the resolved namespace: # "xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul window", etc.
XULBrowserWindow - Archive of obsolete content
in order to do so it implements the following interfaces: nsisup
ports nsixulbrowserwindow nsiwebprogresslistener nsiwebprogresslistener2 nsisup
portsweakreference note: this page is not complete at this time.
XML - Archive of obsolete content
only quite recently have the standards out of which xul was fashioned matured to a level where they might really be powerful and flexible enough to sup
port the sort of development that xul provides for.
XUL Event Propagation - Archive of obsolete content
events are used for different purposes, but they play a particularly im
portant role in creating interactive xul-based user interfaces, since it is events that bring the information about user actions to the code behind the interface.
action - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
assign - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
bbox - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
binding - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related tbd ...
bindings - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related tbd ...
box - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements vbox, hbox ...
broadcaster - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
broadcasterset - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
browser - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata addprogresslistener( listener ) return type: no return value add a progress l...
caption - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements groupbox, checkbox ...
checkbox - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related interfaces nsiaccessibleprovider, nsidomxulcheckboxelement ...
colorpicker - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related interfaces nsidomxulcontrolelement bugs the onchange event only fires if attribute ty...
column - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements grid, columns, rows, row ...
columns - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements grid, column, rows, row.
command - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related xul:list of commands ...
commandset - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
conditions - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
content - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata relacionados tbd ...
datepicker - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related interfaces nsidomxulcontrolelement ...
deck - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related stack ...
description - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes header a class used for headings.
dialog - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata acceptdialog() return type: no return value accepts the dialog and closes it, similar to p...
dialogheader - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements dialog, window ...
dropmarker - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
editor - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related interfaces nsiaccessibleprovider ...
grippy - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
groupbox - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related interfaces nsiaccessibleprovider ...
hbox - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements box, vbox ...
key - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata details on key, keycode, and modifiers attributes for example, consider the following key: <key ke...
keyset - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
label - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes the following classes may be used to style the element.
listbox - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata additemtoselection( item ) return type: no return value selects the given item, without desele...
listcell - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes listcell-iconic use this class to have an image appear on the listcell.
listcol - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements listbox, listcell, listcols, listhead, listheader, listitem ...
listcols - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements listbox, listcell, listcol, listhead, listheader, listitem ...
listhead - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements listbox, listcell, listcol, listcols, listheader, listitem ...
listheader - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements listbox, listcell, listcol, listcols, listhead, listitem ...
listitem - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes the following classes may be used to style the element.
member - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
menu - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata appenditem( label, value ) return type: element creates a new item and adds it ...
menubar - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements menu, menuitem, menulist, menupopup, menuseparator interfaces nsiaccessibl...
menuitem - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes menuitem-iconic use this class to have an image appear on the menuitem.
menulist - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata appenditem( label, value, description ) return type: element creates a new menuitem element and a...
menuseparator - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements menu, menubar, menuitem, menulist, menupopup interfaces nsiaccessibleprovi...
notificationbox - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata appendnotification( label , value , image , priority , buttons, eventcallback ) return type: elem...
observes - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
page - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
param - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
popupset - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements popup, menupopup ...
preference - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata events change when a preference value changes, an onchange/change event is fired on the <prefere...
prefpane - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata events paneload this event is fired on the pane element when the pane is fully loaded ...
progressmeter - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related interfaces nsiaccessibleprovider ...
query - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
queryset - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
radio - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements radiogroup, checkbox interfaces nsiaccessibleprovider, nsidomxulselectcont...
radiogroup - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata appenditem( label, value ) return type: element creates a new item and adds it...
resizer - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
row - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements grid, columns, column, rows.
rows - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements grid, columns, column, row.
rule - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
scale - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata decrease() return type: no return value decreases the value of the scale or num...
script - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
scrollbar - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
scrollbox - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
scrollcorner - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
separator - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes the following classes may be used to style the element.
spacer - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements separator, splitter ...
spinbuttons - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
splitter - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes the following classes may be used to style the element.
stack - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related deck ...
statusbar - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements statusbarpanel interfaces nsiaccessibleprovider ...
<statusbarpanel> - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes the following classes may be used to style the element.
stringbundle - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related xul property files ...
stringbundleset - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
tab - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata notes note: prior to gecko 1.9, disabling tabs fails; even while disabled, they still accept event...
tabbox - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements tabs, tab, tabpanels, tabpanel.
tabbrowser - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata addprogresslistener( listener ) return type: no return value add a progress lis...
tabpanel - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements tabbox, tabs, tab, tabpanels.
tabpanels - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements tabbox, tabs, tab, tabpanel.
tabs - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata advanceselectedtab( dir, wrap ) return type: no return value if the argument dir is set to 1, th...
template - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
textnode - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
timepicker - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related interfaces nsidomxulcontrolelement ...
titlebar - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
toolbarbutton - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements toolbar, toolbargrippy, toolbaritem, toolbarpalette, toolbarseparator, tool...
toolbargrippy - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements toolbar, toolbarbutton, toolbaritem, toolbarpalette, toolbarseparator, toolbars...
toolbaritem - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements toolbar, toolbarbutton, toolbargrippy, toolbarpalette, toolbarseparator, toolba...
toolbarpalette - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements toolbar, toolbarbutton, toolbargrippy, toolbaritem, toolbarseparator, toolbarse...
toolbarseparator - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements toolbar, toolbarbutton, toolbargrippy, toolbaritem, toolbarpalette, t...
toolbarset - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements toolbar, toolbarbutton, toolbargrippy, toolbaritem, toolbarpalette, t...
toolbarspacer - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements toolbar, toolbarbutton, toolbargrippy, toolbaritem, toolbarpalette, toolbarsepa...
toolbarspring - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements toolbar, toolbarbutton, toolbargrippy, toolbaritem, toolbarpalette, t...
treecell - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements tree, treecols, treecol, treechildren, treeitem, treerow and treeseparator.
treechildren - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata example <tree flex="1"> <treecols> <treecol id="sender" label="sender" flex="1"/> <treec...
treecol - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata style classes the following class may be used to style the element.
treecols - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements tree, treecol, treechildren, treeitem, treerow, treecell and treeseparator.
treeitem - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements tree, treecols, treecol, treechildren, treerow, treecell and treeseparator.
treerow - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements tree, treecols, treecol, treechildren, treeitem, treecell and treeseparator.
treeseparator - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements tree, treecols, treecol, treechildren, treeitem, treerow and treecell.
triple - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
vbox - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements box, hbox ...
where - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata ...
wizard - Archive of obsolete content
ocus, getattribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata « xul reference home advance( pageid ) return type: no return value call this method to ...
wizardpage - Archive of obsolete content
ribute(), getattributenode(), getattributenodens(), getattributens(), getboundingclientrect(), getclientrects(), getelementsbyattribute, getelementsbyattributens, getelementsbyclassname(), getelementsbytagname(), getelementsbytagnamens(), getfeature, getuserdata, hasattribute(), hasattributens(), hasattributes(), haschildnodes(), insertbefore(), isdefaultnamespace(), isequalnode, issamenode, issup
ported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related wizard ...
XUL - Archive of obsolete content
xul periodic table this collection of xul demos used to be available as a web page, but can no longer be viewed in firefox since sup
port for remote xul was disabled.
Creating a Windows Inno Setup installer for XULRunner applications - Archive of obsolete content
[setup] appname=my app appvername=my app 1.0 apppublisher=mark finkle apppublisherurl=http://developer.mozilla.org/en/docs/getting_started_with_xulrunner appsup
porturl=http://developer.mozilla.org/en/docs/getting_started_with_xulrunner appupdatesurl=http://developer.mozilla.org/en/docs/getting_started_with_xulrunner defaultdirname={pf}\my app defaultgroupname=my app allownoicons=yes outputdir=..\build\output outputbasefilename=myapp-1.0-win32 ; setupiconfile= compression=lzma solidcompression=yes [languages] name: english; messagesfile: compiler:default.isl...
mozbrowserscrollviewchange
details the details property returns an anonymous javascript object with the following properties: state a domstring representing the current state of scrolling in the view
port — available values are started and stopped.
CSS <display-xul> component
firefox sup
ports the following -moz- prefixed xul display values: syntax -moz-box obsolete since gecko 64 xul box, mostly equivalent to flex -moz-inline-box obsolete since gecko 64 xul inline box, mostly equivalent to inline-flex -moz-grid obsolete since gecko 62 xul grid -moz-inline-grid obsolete since gecko 62 xul inline grid -moz-grid-group obsolete since gecko 62 xul grid group -moz-grid-line obsolete since gecko 62 xul grid line -moz-stack obsolete since gecko 62 xul stack -moz-inline-stack obsolete since gecko 62 xul inline stack -moz-deck obsolete since gecko 62 xul deck -moz-popup obsolete since gecko 62 xul popup all xul display values, with the exception of -moz-box and -moz-inline-box, have been removed in bug 1288572.
Chrome-only CSS reference
::-moz-tree-rowthe ::-moz-tree-row css pseudo-element is used to select 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() @sup
ports functionthe -moz-bool-pref() @sup
ports condition is available to gecko chrome and ua stylesheets to check if a boolean preference is enabled.css <display-xul> component</display-xul>firefox sup
ports 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.
How to investigate Disconnect failures
check if firefox crashed: windows: [user]/appdata\roaming\mozilla\firefox\crash re
ports ubuntu: [user/home]/.mozilla/firefox/crash re
ports and there we can check by timestamp if firefox crashed when we had the disconnect.
Introduction to Layout in Mozilla
original document information author(s): chris waterson last updated date: june 10, 2002 copyright information:
portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Addon
fulldescription read only string developercomments read only string eula read only string icon64url read only string sup
porturl read only string contributionurl read only string contributionamount read only string averagerating read only number reviewcount read only integer reviewurl read only string totaldownloads read only integer weeklydownloads read only integer dailyusers ...
AddonUpdateChecker
to im
port the addonupdatechecker, use: components.utils.im
port("resource://gre/modules/addonupdatechecker.jsm"); method overview updateinfo getcompatibilityupdate(in updateinfo updates[], in string version, in boolean ignorecompatibility, in string appversion, in string platformversion) updateinfo getnewestcompatibleupdate(in updateinfo updates[], in string appversion, in string platformversion) void checkforupdates(in string id, in string type, in string updatekey, string url, in updatechecklistener listener) constants const...
Add-on Repository
to im
port the add-on repository code module, use: components.utils.im
port("resource://gre/modules/addonrepository.jsm"); method overview string getrecommendedurl() string getsearchurl(in string searchterms) void cancelsearch() void retrieverecommendedaddons(in integer maxresults, in searchcallback callback) void searchaddons(in string searchterms, in integer...
Dict.jsm
to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/dict.jsm"); creating a dictionary you can create a new, empty dictionary by simply calling the dict() constructor: var newdict = new dict(); if you wish, you may also pass in an object literal of key/value pairs with which to initialize the dictionary: var someobj = {}; var newdict = new dict({key1: "foo", key2: someobj}); note that values may be any javascript object type.
DownloadLastDir.jsm
to use this, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/downloadlastdir.jsm"); if you are using addon sdk, you can im
port the code module as: let { cu } = require("chrome"); let downloadlastdir = cu.im
port("resource://gre/modules/downloadlastdir.jsm").downloadlastdir; once you've im
ported the module, you can then use the downloadlastdir object it ex
ports.
DownloadSummary
for downloads that do not have a known final size, the number of bytes currently transferred is re
ported as part of this property.
FileUtils.jsm
to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/fileutils.jsm"); the file constructor if you have a path to a file (or directory) you want to obtain an nsifile for, you can do so using the file constructor, like this: var f = new fileutils.file(mypath); method overview nsifile getfile(string key, array patharray, bool followlinks); nsifile getdir(string key, array patharray, bool shouldcreate, bool followlinks); nsifileoutputstream openfileoutputstream(nsifile file, int modeflags); nsifileoutputstream openatomicfileoutputstream(nsifile file, int modeflags); nsifileoutputs...
FxAccountsOAuthClient.jsm
components.utils.im
port("resource://gre/modules/fxaccountsoauthclient.jsm"); creating a new fxaccountsoauthclient new fxaccountsoauthclient(object options); method overview launchwebflow(); teardown(); attributes parameters object returns the set of parameters that initialized the firefox accounts oauth flow.
FxAccountsProfileClient.jsm
components.utils.im
port("resource://gre/modules/fxaccountsprofileclient.jsm"); creating a new fxaccountsprofileclient new fxaccountsprofileclient(object options); method overview fetchprofile(); attributes serverurl url profiler server url.
Http.jsm
httprequest sup
ports the following parameters: name meaning headers an array of headers postdata this can be: a string: send it as is an array of parameters: encode as form values null/undefined: no post data.
ISO8601DateUtils.jsm
to use this, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/iso8601dateutils.jsm"); once you've im
ported the module, you can then use the iso8601dateutils object it ex
ports.
JavaScript OS.Constants
emfile too many open files in the process enametoolong name too long enfile too many open files on the system enoent no such file or directory enomem cannot allocate memory enospc no space on device enotdir is not a directory enxio device no configured or does not sup
port operation eopnotsupp (not always available under windows) operation not sup
ported.
Deferred
function deferred() { // update 062115 for typeof if (typeof(promise) != 'undefined' && promise.defer) { //need im
port of promise.jsm for example: cu.im
port('resource:/gree/modules/promise.jsm'); return promise.defer(); } else if (typeof(promiseutils) != 'undefined' && promiseutils.defer) { //need im
port of promiseutils.jsm for example: cu.im
port('resource:/gree/modules/promiseutils.jsm'); return promiseutils.defer(); } else { /* a method to resolve the associated promise with the value passed.
PromiseUtils.jsm
to use it, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource://gre/modules/promiseutils.jsm"); method overview deferred defer(); methods defer() creates a new pending promise and provides methods to resolve or reject this promise.
Services.jsm
to use it, you first need to im
port the code module into your javascript scope: const {services} = chromeutils.im
port("resource://gre/modules/services.jsm"); then you can obtain references to services by simply accessing them from the services object ex
ported by the code module.
SourceMap.jsm
get a reference to the module: let sourcemap = {}; components.utils.im
port('resource:///modules/devtools/sourcemap.jsm', sourcemap); sourcemapconsumer a sourcemapconsumer instance represents a parsed source map which we can query for information about the original file positions by giving it a file position in the generated source.
Timer.jsm
to use timer.jsm, first im
port it: components.utils.im
port("resource://gre/modules/timer.jsm"); then call settimeout and cleartimeout just as you would in a dom window, for example: let timeoutid = settimeout(function() { console.log("hello!"); }, 500); cleartimeout(timeoutid); similarly, you can use setinterval and clearinterval like so: let intervalid = setinterval(function() { console.log("happening every 500ms!"); }, 500); clearinterval(intervalid); ...
WebChannel.jsm
components.utils.im
port("resource://gre/modules/webchannel.jsm"); constructor webchannel(string webchannelid, nsiuri originorpermission); 2nd argument is a valid origin that should be part of requests for this channel.
openLocationLastURL.jsm
to use this, you first need to im
port the code module into your javascript scope: components.utils.im
port("resource:///modules/openlocationlasturl.jsm"); once you've im
ported the module, you can then use the openlocationlasturl object it ex
ports.
Localizing with Mercurial
you can install mercurial via mac
ports through the terminal, like so: $ sudo
port install mercurial you can also install it by downloading the dmg package from the hg download page.
Localizing with Pontoon
info menu gives im
portant information, like the anticipated project timeline and a list of keyboard shortcuts.
XPCOM glue classes
this is done using the functions addref() and release(), which respectively modify a variable of type nsautorefcnt, which basically is a wrapper around a count of the number of references refering to the class.nsstringclass declarationnsstring externalclass declarationnsstringcontainer (external)class declarationnssup
portsweakreferenceinherit from this c++ class to add canonical sup
port for nsisup
portsweakreference.nsxpidlcstringclass declarationnsxpidlstringclass declarationpromiseflatcstring (external)class declarationpromiseflatstring (external)class declaration ...
IAccessible2
iserviceprovider *pservice = null; hr = pacc->queryinterface(iid_iserviceprovider, (void **)&pservice); if(succeeded(hr)) { iaccessible2 *pia2 = null; hr = pservice->queryservice(iid_iaccessible, iid_iaccessible2, (void**)&pia2); if (succeeded(hr) && pia2) { // the control sup
ports iaccessible2.
IAccessibleAction
1.0 66 introduced gecko 1.9 inherits from: iunknown last changed in gecko 1.9 (firefox 3) every accessible object that can be manipulated via the native gui beyond the methods available either in the msaa iaccessible interface or in the set of iaccessible2 interfaces (other than this iaccessibleaction interface) should sup
port the iaccessibleaction interface in order to provide assistive technology access to all the actions that can be performed by the object.
IAccessibleValue
1.0 66 introduced gecko 1.9 inherits from: iunknown last changed in gecko 1.9 (firefox 3) the iaccessiblevalue interface represents a single numerical value and should be implemented by any class that sup
ports numerical value like progress bars and spin boxes.
IJSDebugger
1.0 66 introduced gecko 9.0 inherits from: nsisup
ports last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) implemented by: @mozilla.org/jsdebugger;1 as a service: var jsdebugger = components.classes["@mozilla.org/jsdebugger;1"] .createinstance(components.interfaces.ijsdebugger); note: you should almost never directly use this service; instead, you should use the javascript code module that does this for you.
amIInstallCallback
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void oninstallended(in astring aurl, in print32 astatus); methods oninstallended() called when an install completes or fails.
amIInstallTrigger
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports 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 installchrome(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.
amIWebInstallInfo
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void install(); attributes attribute type description installs nsivariant an array of addoninstall objects.
amIWebInstallListener
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) method overview boolean onwebinstallblocked(in nsidomwindow awindow, in nsiuri auri, [array, size_is(acount)] in nsivariant ainstalls, [optional] in pruint32 acount); void onwebinstalldisabled(in nsidomwindow awindow, in nsiuri auri, [array, size_is(acount)] in nsivariant ainstalls, [optional] in pruint3...
amIWebInstallPrompt
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) method overview void confirm(in nsidomwindow awindow, in nsiuri auri, [array, size_is(acount)] in nsivariant ainstalls, [optional] in pruint32 acount); prior to gecko 8.0, all references to nsidomwindow used in this interface were nsidomwindow.
amIWebInstaller
1.0 66 introduced gecko 2.0 inherits from: nsisup
ports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) method overview boolean installaddonsfromwebpage(in astring amimetype, in nsidomwindow awindow, in nsiuri areferer, [array, size_is(ainstallcount)] in wstring auris, [array, size_is(ainstallcount)] in wstring ahashes, [array, size_is(ainstallcount)] in wstring anames, [array, size_is(ainstallcount)] in wstring aicons, [optional] in amiinstallcallback acallback, [optional] in pruint32 ainstallcount); boolean isinstallenabled(in astring amimetype, in nsiuri areferer); note: prio...
imgIDecoder
inherits from: nsisup
ports last changed in gecko 1.7 this interface is the base class for decoders for specific image formats.
imgIEncoder
id initfromdata([array, size_is(length), const] in pruint8 data, in unsigned long length, in pruint32 width, in pruint32 height, in pruint32 stride, in pruint32 inputformat, in astring outputoptions); void startimageencode(in pruint32 width, in pruint32 height, in pruint32 inputformat, in astring outputoptions); constants possible values for input format (note that not all image formats sup
port saving alpha channels): constant value description input_format_rgb 0 input is rgb each pixel is represented by three bytes: r, g, and b (in that order, regardless of host endianness) input_format_rgba 1 input is rgb each pixel is represented by four bytes: r, g, and b (in that order, regardless of host endianness).
imgIRequest
constants constant value description status_none 0x0 nothing to re
port.
mozIAsyncHistory
1.0 66 introduced gecko 24.0 inherits from: nsisup
ports last changed in gecko 24.0 (firefox 24.0 / thunderbird 24.0 / seamonkey 2.21) implemented by: @mozilla.org/browser/history;1 as a service: var asynchistory = components.classes["@mozilla.org/browser/history;1"] .getservice(components.interfaces.moziasynchistory); method overview void getplacesinfo(in jsval aplaceidentifiers, in mozivisitinfocallback acallback); void isurivisited(in nsiuri auri, in mozivisitedstatuscallback acallback); void updateplaces(in moziplaceinfo, [optional] in mozivisitinfocallback acallback); me...
initDataTypes - Web APIs
the mediakeysystemconfiguration.initdatatypes read-only property returns a list of sup
ported initialization data type names.
videoCapabilities - Web APIs
the mediakeysystemconfiguration.videocapabilities read-only property returns an array of sup
ported video type and capability pairs.
MediaPositionState.position - Web APIs
if the media is still playing when the interval is fired, setpositionstate() is called with an object that specifies the duration, playback rate, and position as re
ported by a mymedia object that describes the track being played.
MediaQueryList.addListener() - Web APIs
examples var para = document.queryselector('p'); var mql = window.matchmedia('(max-width: 600px)'); function screentest(e) { if (e.matches) { /* the view
port is 600 pixels wide or less */ para.textcontent = 'this is a narrow screen — less than 600px wide.'; document.body.style.backgroundcolor = 'red'; } else { /* the view
port is more than than 600 pixels wide */ para.textcontent = 'this is a wide screen — more than 600px wide.'; document.body.style.backgroundcolor = 'blue'; } } mql.addlistener(screentest); specifications ...
MediaQueryList.removeListener() - Web APIs
examples var mql = window.matchmedia('(max-width: 600px)'); function screentest(e) { if (e.matches) { /* the view
port is 600 pixels wide or less */ para.textcontent = 'this is a narrow screen — less than 600px wide.'; document.body.style.backgroundcolor = 'red'; } else { /* the view
port is more than than 600 pixels wide */ para.textcontent = 'this is a wide screen — more than 600px wide.'; document.body.style.backgroundcolor = 'blue'; } } mql.addlistener(screentest); // later on, wh...
MediaQueryListEvent.matches - Web APIs
examples var mql = window.matchmedia('(max-width: 600px)'); function screentest(e) { if (e.matches) { /* the view
port is 600 pixels wide or less */ para.textcontent = 'this is a narrow screen — less than 600px wide.'; document.body.style.backgroundcolor = 'red'; } else { /* the view
port is more than than 600 pixels wide */ para.textcontent = 'this is a wide screen — more than 600px wide.'; document.body.style.backgroundcolor = 'blue'; } } mql.addlistener(screentest); specifications...
MediaQueryListEvent.media - Web APIs
examples var mql = window.matchmedia('(max-width: 600px)'); function screentest(e) { if (e.matches) { /* the view
port is 600 pixels wide or less */ para.textcontent = 'this is a narrow screen — less than 600px wide.'; document.body.style.backgroundcolor = 'red'; } else { /* the view
port is more than than 600 pixels wide */ para.textcontent = 'this is a wide screen — more than 600px wide.'; document.body.style.backgroundcolor = 'blue'; } console.log(e.media); } mql.addlistener(screentest); specifications specification ...
MediaQueryListEvent - Web APIs
examples var mql = window.matchmedia('(max-width: 600px)'); function screentest(e) { if (e.matches) { /* the view
port is 600 pixels wide or less */ para.textcontent = 'this is a narrow screen — less than 600px wide.'; document.body.style.backgroundcolor = 'red'; } else { /* the view
port is more than than 600 pixels wide */ para.textcontent = 'this is a wide screen — more than 600px wide.'; document.body.style.backgroundcolor = 'blue'; } } mql.addlistener(screentest); specifications ...
MediaRecorder: error event - Web APIs
the mediarecorder interface's error event is fired when an error occurs: for example because recording wasn't allowed or was attempted using an unsup
ported codec.
MediaRecorder.onerror - Web APIs
notsup
portederror an attempt was made to instantiate a mediarecorder using a mime type that isn't sup
ported on the user's device; one or more of the requested container, codecs, or profiles as well as other information may be invalid.
MediaRecorder.stream - Web APIs
example if (navigator.getusermedia) { console.log('getusermedia sup
ported.'); navigator.getusermedia ( // constraints - only audio needed for this app { audio: true }, // success callback function(stream) { var mediarecorder = new mediarecorder(stream); var mystream = mediarecorder.stream; console.log(mystream); ...
MediaSession - Web APIs
the mediasession interface of the media session api allows a web page to provide custom behaviors for standard media playback interactions, and to re
port metadata that can be sent by the user agent to the device or operating system for presentation in standardized user interface elements.
MediaSource.MediaSource() - Web APIs
example written by nick desaulniers (view the full demo live, or download the source for further investigation.) var video = document.queryselector('video'); var asseturl = 'frag_bunny.mp4'; // need to be specific for blink regarding codecs // ./mp4info frag_bunny.mp4 | grep codec var mimecodec = 'video/mp4; codecs="avc1.42e01e, mp4a.40.2"'; if ('mediasource' in window && mediasource.istypesup
ported(mimecodec)) { var mediasource = new mediasource; //console.log(mediasource.readystate); // closed video.src = url.createobjecturl(mediasource); mediasource.addeventlistener('sourceopen', sourceopen); } else { console.error('unsup
ported mime type or codec: ', mimecodec); } ...
MediaSource.endOfStream() - Web APIs
xample the following snippet is from a simple example written by nick desaulniers (view the full demo live, or download the source for further investigation.) var asseturl = 'frag_bunny.mp4'; // need to be specific for blink regarding codecs // ./mp4info frag_bunny.mp4 | grep codec var mimecodec = 'video/mp4; codecs="avc1.42e01e, mp4a.40.2"'; if ('mediasource' in window && mediasource.istypesup
ported(mimecodec)) { var mediasource = new mediasource; //console.log(mediasource.readystate); // closed video.src = url.createobjecturl(mediasource); mediasource.addeventlistener('sourceopen', sourceopen); } else { console.error('unsup
ported mime type or codec: ', mimecodec); } function sourceopen (_) { //console.log(this.readystate); // open var mediasource = this; var sourcebuffer ...
MediaSource.readyState - Web APIs
example the following snippet is from a simple example written by nick desaulniers (view the full demo live, or download the source for further investigation.) if ('mediasource' in window && mediasource.istypesup
ported(mimecodec)) { var mediasource = new mediasource; //console.log(mediasource.readystate); // closed video.src = url.createobjecturl(mediasource); mediasource.addeventlistener('sourceopen', sourceopen); } else { console.error('unsup
ported mime type or codec: ', mimecodec); } function sourceopen (_) { //console.log(this.readystate); // open var mediasource = this; var sourcebuffer ...
MediaStreamAudioSourceNode() - Web APIs
o: true, video: false }).then(function(stream) { var options = { mediastream : stream } var source = new mediastreamaudiosourcenode(audioctx, options); source.connect(audioctx.destination); }).catch(function(err) { console.log('the following gum error occured: ' + err); }); } else { console.log('new getusermedia not sup
ported on your browser!'); } specifications specification status comment web audio apithe definition of 'mediastreamaudiosourcenode()' in that specification.
MediaStreamTrack.getCapabilities() - Web APIs
syntax const capabilities = track.getcapabilities() return value a mediatrackcapabilities object which specifies the value or range of values which are sup
ported for each of the user agent's sup
ported constrainable properties.
MediaStreamTrack - Web APIs
candidate recommendation additional properties for isolated track sup
port media capture and streamsthe definition of 'mediastreamtrack' in that specification.
MediaStreamTrackAudioSourceOptions.mediaStreamTrack - Web APIs
video: false }).then(function(stream) { let options = { mediastreamtrack: stream.getaudiotracks()[0]; } let source = new mediastreamtrackaudiosourcenode(audioctx, options); source.connect(audioctx.destination); }).catch(function(err) { console.log('the following gum error occured: ' + err); }); } else { console.log('new getusermedia not sup
ported on your browser!'); } specifications specification status comment web audio apithe definition of 'mediastreamtrackaudiosourceoptions.mediastream' in that specification.
MediaTrackConstraints.aspectRatio - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.aspectratio as returned by a call to mediadevices.getsup
portedconstraints().
MediaTrackConstraints.autoGainControl - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.autogaincontrol as returned by a call to mediadevices.getsup
portedconstraints().
MediaTrackConstraints.channelCount - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.channelcount as returned by a call to mediadevices.getsup
portedconstraints().
MediaTrackConstraints.deviceId - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.deviceid as returned by a call to mediadevices.getsup
portedconstraints().
MediaTrackConstraints.displaySurface - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.displaysurface as returned by a call to mediadevices.getsup
portedconstraints().
MediaTrackConstraints.echoCancellation - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.echocancellation as returned by a call to mediadevices.getsup
portedconstraints().
MediaTrackConstraints.facingMode - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.facingmode as returned by a call to mediadevices.getsup
portedconstraints().
MediaTrackConstraints.frameRate - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.framerate as returned by a call to mediadevices.getsup
portedconstraints().
MediaTrackConstraints.groupId - Web APIs
if needed, you can determine whether or not this constraint is sup
ported by checking the value of mediatracksup
portedconstraints.groupid as returned by a call to mediadevices.getsup
portedconstraints().
Window: unhandledrejection event - Web APIs
window.addeventlistener("unhandledrejection", event => { console.warn(`unhandled promise rejection: ${event.reason}`); }); you can also use the onunhandledrejection event handler property to set up the event listener: window.onunhandledrejection = event => { console.warn(`unhandled promise rejection: ${event.reason}`); }; preventing default handling many environments (such as node.js) re
port unhandled promise rejections to the console by default.
WindowOrWorkerGlobalScope.atob() - Web APIs
example const encodeddata = window.btoa('hello, world'); // encode a string const decodeddata = window.atob(encodeddata); // decode the string polyfill you can use a polifill from https://github.com/maxart2501/base64-js/blob/master/base64.js for browsers that don't sup
port it.
WindowOrWorkerGlobalScope.btoa() - Web APIs
= 0; i < bytes.length; i++) { bytes[i] = binary.charcodeat(i); } return string.fromcharcode(...new uint16array(bytes.buffer)); } const decoded = atob(encoded); const original = frombinary(decoded); console.log(original); // ☸☹☺☻☼☾☿ polyfill you can use a polifill from https://github.com/maxart2501/base64-js/blob/master/base64.js for browsers that don't sup
port it.
WindowOrWorkerGlobalScope.origin - Web APIs
examples executed from inside a worker script, the following snippet will log the worker's global scope's origin to the console each time it receives a message onmessage = function() { console.log(self.origin); }; if the origin is not a scheme/host/
port tuple (say you are trying to run it locally, i.e.
WorkerGlobalScope.location - Web APIs
rved at localhost:8000 console.log(location); inside a worker (which would basically be the equivalent of self.console.log(self.location);, as these are being called on the worker scope, which can be referenced with workerglobalscope.self), you will get a workerlocation object written to the console — something like the following: workerlocation {hash: "", search: "", pathname: "/worker.js",
port: "8000", hostname: "localhost"…} hash: "" host: "localhost:8000" hostname: "localhost" href: "http://localhost:8000/worker.js" origin: "http://localhost:8000" pathname: "/worker.js"
port: "8000" protocol: "http:" search: "" __proto__: workerlocation you could use this location object to return more information about the document's location, as you might do with a normal loc...
Worklet.addModule() - Web APIs
= new audiocontext(); const audioworklet = audioctx.audioworklet; await audioworklet.addmodule('modules/bypassfilter.js', { credentials: 'omit', }); paintworklet example css.paintworklet.addmodule('https://mdn.github.io/houdini-examples/csspaint/intro/worklets/hilite.js'); once a paintworklet is included, the css paint() function can be used to include the image created by the worklet: @sup
ports (background-image: paint(id)) { h1 { background-image: paint(hollowhighlights, filled, 3px); } } specifications specification status comment worklets level 1the definition of 'addmodule()' in that specification.
XDomainRequest - Web APIs
it was removed in internet explorer 10 in favor of using xmlhttprequest with proper cors; if you are targeting internet explorer 10 or later, or wish to sup
port any other browser, you need to use standard http access control.
XMLDocument.load() - Web APIs
as of at least gecko 1.9, this no longer sup
ports cross-site loading of documents (use xmlhttprequest or fetch() instead).
Using XMLHttpRequest in IE6 - Web APIs
in all modern browsers, you can create a new xmlhttprequest object using the following code: var request = new xmlhttprequest() however, if you need to also sup
port internet explorer 6 and older, you need to extend your code like this: if (window.xmlhttprequest) { //firefox, opera, ie7, and other browsers will use the native object var request = new xmlhttprequest(); } else { //ie 5 and 6 will use the activex control var request = new activexobject("microsoft.xmlhttp"); } see also using xmlhttprequest ...
XMLHttpRequest.getAllResponseHeaders() - Web APIs
an example of what a raw header string looks like: date: fri, 08 dec 2017 21:04:30 gmt\r\n content-encoding: gzip\r\n x-content-type-options: nosniff\r\n server: meinheld/0.6.1\r\n x-frame-options: deny\r\n content-type: text/html; charset=utf-8\r\n connection: keep-alive\r\n strict-trans
port-security: max-age=63072000\r\n vary: cookie, accept-encoding\r\n content-length: 6502\r\n x-xss-protection: 1; mode=block\r\n each line is terminated by both carriage return and line feed characters (\r\n).
Object.assign() - JavaScript
polyfill this polyfill doesn't sup
port symbol properties, since es5 doesn't have symbols anyway: if (typeof object.assign !== 'function') { // must be writable: true, enumerable: false, configurable: true object.defineproperty(object, "assign", { value: function assign(target, varargs) { // .length of function is 2 'use strict'; if (target === null || target === undefined) { throw new typeerror('cannot con...
Object.isExtensible() - JavaScript
description objects are extensible by default: they can have new properties added to them, and (in engines that sup
port __proto__) their __proto__ property can be modified.
Object.keys() - JavaScript
polyfill to add compatible object.keys sup
port in older environments that do not natively sup
port it, copy the following snippet: // from /docs/web/javascript/reference/global_objects/object/keys if (!object.keys) { object.keys = (function() { 'use strict'; var hasownproperty = object.prototype.hasownproperty, hasdontenumbug = !({ tostring: null }).propertyisenumerable('tostring'), dontenums = [ 'tostring'...
Object.values() - JavaScript
polyfill to add compatible object.values sup
port in older environments that do not natively sup
port it, you can find a polyfill in the tc39/proposal-object-values-entries or in the es-shims/object.values repositories.
Reflect.construct() - JavaScript
false console.log(obj1 instanceof otherclass) // true console.log(obj2 instanceof otherclass) // true //another example to demonstrate below: function func1(a, b, c, d) { console.log(arguments[3]); } function func2(d, e, f, g) { consol.log(arguments[3]); } let obj1 = reflect.construct(func1, ['i', 'love', 'my', 'india']) obj1 however, while the end result is the same, there is one im
portant difference in the process.
String.prototype.charAt() - JavaScript
ogate without preceding high surrogate' } let prev = str.charcodeat(i - 1) // (could change last hex to 0xdb7f to treat high private surrogates // as single characters) if (0xd800 > prev || prev > 0xdbff) { throw 'low surrogate without preceding high surrogate' } // return the next character instead (and increment) return [str.charat(i + 1), i + 1] } fixing charat() to sup
port non-basic-multilingual-plane (bmp) characters while the previous example may be more useful for programs that must sup
port non-bmp characters (since it does not require the caller to know where any non-bmp character might appear), in the event that one does wish, in choosing a character by index, to treat the surrogate pairs within a string as the single characters they represent, one can use th...
String.prototype.match() - JavaScript
using named capturing groups in browsers which sup
port named capturing groups, the following code captures "fox" or "cat" into a group named "animal": const paragraph = 'the quick brown fox jumps over the lazy dog.
String.prototype.normalize() - JavaScript
// 1 console.log(string2.length); // 2 string1 = string1.normalize('nfkd'); string2 = string2.normalize('nfkd'); console.log(string1); // ff <- visual appearance changed console.log(string2); // ff console.log(string1 === string2); // true console.log(string1.length); // 2 console.log(string2.length); // 2 when applying compatibility normalization it's im
portant to consider what you intend to do with the strings, since the normalized form may not be appropriate for all applications.
Symbol() constructor - JavaScript
the symbol() constructor returns a value of type symbol, but is incomplete as a constructor because it does not sup
port the syntax "new symbol()" and it is not intended to be subclassed.
TypedArray.prototype[@@iterator]() - JavaScript
examples iteration using for...of loop var arr = new uint8array([10, 20, 30, 40, 50]); // your browser must sup
port for..of loop // and let-scoped variables in for loops for (let n of arr) { console.log(n); } alternative iteration var arr = new uint8array([10, 20, 30, 40, 50]); var earr = arr[symbol.iterator](); console.log(earr.next().value); // 10 console.log(earr.next().value); // 20 console.log(earr.next().value); // 30 console.log(earr.next().value); // 40 console.log(earr.next().value); // 50 specifications specification ecma...
TypedArray.prototype.entries() - JavaScript
examples iteration using for...of loop var arr = new uint8array([10, 20, 30, 40, 50]); var earray = arr.entries(); // your browser must sup
port for..of loop // and let-scoped variables in for loops for (let n of earray) { console.log(n); } alternative iteration var arr = new uint8array([10, 20, 30, 40, 50]); var earr = arr.entries(); console.log(earr.next().value); // [0, 10] console.log(earr.next().value); // [1, 20] console.log(earr.next().value); // [2, 30] console.log(earr.next().value); // [3, 40] console.log(earr.next().value)...
TypedArray.from() - JavaScript
polyfill you can partially work around this by inserting the following code at the beginning of your scripts, allowing use of much of the functionality of from() in implementations that do not natively sup
port it.